Class: Searcher
- Inherits:
-
Object
- Object
- Searcher
- Defined in:
- lib/search_geometry_iowa/searcher.rb
Instance Attribute Summary collapse
-
#range ⇒ Object
Returns the value of attribute range.
-
#section ⇒ Object
Returns the value of attribute section.
-
#tier ⇒ Object
Returns the value of attribute tier.
Instance Method Summary collapse
- #call_url(url) ⇒ Object
- #format_url ⇒ Object
- #geo_server_url ⇒ Object
- #get_response ⇒ Object
-
#initialize(tier, range, section) ⇒ Searcher
constructor
A new instance of Searcher.
- #match_me(str, first_letter, last_letter) ⇒ Object
- #sanitize_str(str) ⇒ Object
- #transform_to_multipolygon(response) ⇒ Object
- #valid_params? ⇒ Boolean
Constructor Details
#initialize(tier, range, section) ⇒ Searcher
Returns a new instance of Searcher.
6 7 8 9 10 11 |
# File 'lib/search_geometry_iowa/searcher.rb', line 6 def initialize(tier, range, section) @tier = sanitize_str tier @range = sanitize_str range @section = sanitize_str section raise 'Invalid parameters' unless valid_params? end |
Instance Attribute Details
#range ⇒ Object
Returns the value of attribute range.
4 5 6 |
# File 'lib/search_geometry_iowa/searcher.rb', line 4 def range @range end |
#section ⇒ Object
Returns the value of attribute section.
4 5 6 |
# File 'lib/search_geometry_iowa/searcher.rb', line 4 def section @section end |
#tier ⇒ Object
Returns the value of attribute tier.
4 5 6 |
# File 'lib/search_geometry_iowa/searcher.rb', line 4 def tier @tier end |
Instance Method Details
#call_url(url) ⇒ Object
42 43 44 |
# File 'lib/search_geometry_iowa/searcher.rb', line 42 def call_url(url) Net::HTTP.get(URI.parse(url)) end |
#format_url ⇒ Object
35 36 37 38 39 40 |
# File 'lib/search_geometry_iowa/searcher.rb', line 35 def format_url url = "/geoserver/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=plss:plss" url = url + "&cql_filter=(township%20=%20%27#{@tier}%27" url = url + "%20AND%20range%20=%20%27#{@range}%27AND%20section%20=%20#{@section})" geo_server_url + url + "&outputFormat=text/javascript&srsName=EPSG:4326" end |
#geo_server_url ⇒ Object
17 18 19 |
# File 'lib/search_geometry_iowa/searcher.rb', line 17 def geo_server_url GEOSERVER[:url] end |
#get_response ⇒ Object
31 32 33 |
# File 'lib/search_geometry_iowa/searcher.rb', line 31 def get_response call_url(format_url) end |
#match_me(str, first_letter, last_letter) ⇒ Object
27 28 29 |
# File 'lib/search_geometry_iowa/searcher.rb', line 27 def match_me(str, first_letter, last_letter) str.match(/#{first_letter}[0-9]{1,2}(#{last_letter})/) end |
#sanitize_str(str) ⇒ Object
13 14 15 |
# File 'lib/search_geometry_iowa/searcher.rb', line 13 def sanitize_str(str) URI.escape str.to_s.upcase end |
#transform_to_multipolygon(response) ⇒ Object
47 48 49 50 51 |
# File 'lib/search_geometry_iowa/searcher.rb', line 47 def transform_to_multipolygon(response) response.gsub!(/(\[){3}(.*)(\]){3}/, "[#{response.match(/(\[){3}(.*)(\]){3}/)}]") response.gsub!(/Polygon/, 'MultiPolygon') response end |
#valid_params? ⇒ Boolean
21 22 23 24 25 |
# File 'lib/search_geometry_iowa/searcher.rb', line 21 def valid_params? return false if @tier.nil? || @range.nil? return true if match_me(@tier, 'T', 'N|S') && match_me(@range, 'R', 'W|E') false end |