Initial commit
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
require_relative 'input_type_resolver'
|
||||
|
||||
require_relative 'cities_text_text_points'
|
||||
require_relative 'cities_column_text_points'
|
||||
require_relative 'cities_text_column_points'
|
||||
require_relative 'cities_column_column_points'
|
||||
require_relative 'admin0_text_polygons'
|
||||
require_relative 'admin1_text_polygons'
|
||||
require_relative 'admin1_column_polygons'
|
||||
require_relative 'postalcode_text_points'
|
||||
require_relative 'postalcode_column_points'
|
||||
require_relative 'postalcode_text_polygon'
|
||||
require_relative 'postalcode_column_polygon'
|
||||
require_relative 'ipaddress_text_point'
|
||||
|
||||
module CartoDB
|
||||
module InternalGeocoder
|
||||
|
||||
class QueryGeneratorFactory
|
||||
|
||||
class QueryGeneratorNotImplemented < StandardError; end
|
||||
|
||||
class << self
|
||||
private :new
|
||||
|
||||
def get(internal_geocoder, input_type=nil)
|
||||
input_type ||= InputTypeResolver.new(internal_geocoder).type
|
||||
|
||||
case input_type
|
||||
when [:namedplace, :text, nil, :point]
|
||||
CitiesTextTextPoints.new internal_geocoder
|
||||
when [:namedplace, :text, :text, :point]
|
||||
CitiesTextTextPoints.new internal_geocoder
|
||||
when [:namedplace, :text, :column, :point]
|
||||
CitiesTextColumnPoints.new internal_geocoder
|
||||
when [:namedplace, :column, nil, :point]
|
||||
CitiesColumnTextPoints.new internal_geocoder
|
||||
when [:namedplace, :column, :text, :point]
|
||||
CitiesColumnTextPoints.new internal_geocoder
|
||||
when [:namedplace, :column, :column, :point]
|
||||
CitiesColumnColumnPoints.new internal_geocoder
|
||||
when [:admin0, :text, nil, :polygon]
|
||||
Admin0TextPolygons.new internal_geocoder
|
||||
when [:admin1, :text, nil, :polygon]
|
||||
Admin1TextPolygons.new internal_geocoder
|
||||
when [:admin1, :column, nil, :polygon]
|
||||
Admin1ColumnPolygons.new internal_geocoder
|
||||
when [:postalcode, :text, nil, :point]
|
||||
PostalcodeTextPoints.new internal_geocoder
|
||||
when [:postalcode, :column, nil, :point]
|
||||
PostalcodeColumnPoints.new internal_geocoder
|
||||
when [:postalcode, :text, nil, :polygon]
|
||||
PostalcodeTextPolygon.new internal_geocoder
|
||||
when [:postalcode, :column, nil, :polygon]
|
||||
PostalcodeColumnPolygon. new internal_geocoder
|
||||
when [:ipaddress, :text, nil, :point]
|
||||
IpAddressTextPoint.new internal_geocoder
|
||||
else
|
||||
raise QueryGeneratorNotImplemented. new "QueryGenerator not implemented for input type #{input_type}"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
end # QueryGeneratorFactory
|
||||
|
||||
end # InternalGeocoder
|
||||
end #CartoDB
|
||||
Reference in New Issue
Block a user