Class: Geocoda::Client
- Inherits:
-
Object
- Object
- Geocoda::Client
- Defined in:
- lib/geocoda-ruby/client.rb
Instance Attribute Summary collapse
-
#api_key ⇒ Object
Returns the value of attribute api_key.
Class Method Summary collapse
- .base_address ⇒ Object
- .coord_address ⇒ Object
- .coord_url(lat, lon) ⇒ Object
- .gem_version_string ⇒ Object
- .geocode_address ⇒ Object
- .geocode_url(address) ⇒ Object
- .layer_url(name) ⇒ Object
- .layers_url ⇒ Object
- .location_address ⇒ Object
- .nearby_url(layer, lat, lon) ⇒ Object
- .record_history_url(layer, name) ⇒ Object
- .record_url(layer, name) ⇒ Object
- .records_url(layer) ⇒ Object
- .storage_address ⇒ Object
- .version ⇒ Object
Instance Method Summary collapse
- #coord(lat, lon) ⇒ Object
- #delete_layer(name) ⇒ Object
- #delete_record(layer, name) ⇒ Object
- #geocode(address) ⇒ Object
-
#initialize(api_key) ⇒ Client
constructor
A new instance of Client.
- #layer(name) ⇒ Object
- #layers ⇒ Object
- #nearby_bounding_box(layer, latitude, longitude, swlat, swlon, nelat, nelon) ⇒ Object
- #nearby_radius(layer, latitude, longitude, radius) ⇒ Object
- #record(layer, name) ⇒ Object
- #record_history(layer, name) ⇒ Object
- #records(layer) ⇒ Object
- #save_layer(name, payload = {}) ⇒ Object
- #save_point(layer, name, latitude, longitude) ⇒ Object
- #save_record(layer, name, payload) ⇒ Object
- #save_records(layer, payload) ⇒ Object
Constructor Details
#initialize(api_key) ⇒ Client
Returns a new instance of Client.
17 18 19 |
# File 'lib/geocoda-ruby/client.rb', line 17 def initialize(api_key) @api_key = api_key end |
Instance Attribute Details
#api_key ⇒ Object
Returns the value of attribute api_key.
15 16 17 |
# File 'lib/geocoda-ruby/client.rb', line 15 def api_key @api_key end |
Class Method Details
.base_address ⇒ Object
171 172 173 |
# File 'lib/geocoda-ruby/client.rb', line 171 def base_address "https://api.geocoda.com/v1" end |
.coord_address ⇒ Object
183 184 185 |
# File 'lib/geocoda-ruby/client.rb', line 183 def coord_address "#{location_address}/coord" end |
.coord_url(lat, lon) ⇒ Object
195 196 197 |
# File 'lib/geocoda-ruby/client.rb', line 195 def coord_url(lat, lon) "#{coord_address}/#{lat},#{lon}" end |
.gem_version_string ⇒ Object
167 168 169 |
# File 'lib/geocoda-ruby/client.rb', line 167 def gem_version_string "geocoda-gem/#{version}" end |
.geocode_address ⇒ Object
179 180 181 |
# File 'lib/geocoda-ruby/client.rb', line 179 def geocode_address "#{location_address}/geocode" end |
.geocode_url(address) ⇒ Object
191 192 193 |
# File 'lib/geocoda-ruby/client.rb', line 191 def geocode_url(address) "#{geocode_address}/#{URI.encode(address)}" end |
.layer_url(name) ⇒ Object
203 204 205 |
# File 'lib/geocoda-ruby/client.rb', line 203 def layer_url(name) "#{layers_url}/#{URI.encode(name)}" end |
.layers_url ⇒ Object
199 200 201 |
# File 'lib/geocoda-ruby/client.rb', line 199 def layers_url "#{storage_address}/layers" end |
.location_address ⇒ Object
175 176 177 |
# File 'lib/geocoda-ruby/client.rb', line 175 def location_address "#{base_address}/loc" end |
.nearby_url(layer, lat, lon) ⇒ Object
219 220 221 |
# File 'lib/geocoda-ruby/client.rb', line 219 def nearby_url(layer, lat, lon) "#{records_url(layer)}/nearby/#{lat},#{lon}" end |
.record_history_url(layer, name) ⇒ Object
215 216 217 |
# File 'lib/geocoda-ruby/client.rb', line 215 def record_history_url(layer, name) "#{record_url(layer, name)}/history" end |
.record_url(layer, name) ⇒ Object
211 212 213 |
# File 'lib/geocoda-ruby/client.rb', line 211 def record_url(layer, name) "#{records_url(layer)}/#{URI.encode(name)}" end |
.records_url(layer) ⇒ Object
207 208 209 |
# File 'lib/geocoda-ruby/client.rb', line 207 def records_url(layer) "#{storage_address}/records/#{URI.encode(layer)}" end |
.storage_address ⇒ Object
187 188 189 |
# File 'lib/geocoda-ruby/client.rb', line 187 def storage_address "#{base_address}/storage" end |
.version ⇒ Object
163 164 165 |
# File 'lib/geocoda-ruby/client.rb', line 163 def version Geocoda::VERSION end |
Instance Method Details
#coord(lat, lon) ⇒ Object
31 32 33 34 35 36 37 38 39 |
# File 'lib/geocoda-ruby/client.rb', line 31 def coord(lat, lon) request = RestClient::Request.new(:method => :get, :url => Geocoda::Client::coord_url(lat, lon), :user => api_key, :password => "x") raw = request.execute JSON::parse(raw) end |
#delete_layer(name) ⇒ Object
70 71 72 73 74 75 76 77 |
# File 'lib/geocoda-ruby/client.rb', line 70 def delete_layer(name) request = RestClient::Request.new(:method => :delete, :url=>Geocoda::Client::layer_url(name), :user => api_key, :password => "x") body = request.execute JSON::parse(body) end |
#delete_record(layer, name) ⇒ Object
124 125 126 127 128 129 130 131 |
# File 'lib/geocoda-ruby/client.rb', line 124 def delete_record(layer, name) request = RestClient::Request.new(:method => :delete, :url=>Geocoda::Client::record_url(layer, name), :user => api_key, :password => "x") body = request.execute JSON::parse(body) end |
#geocode(address) ⇒ Object
21 22 23 24 25 26 27 28 29 |
# File 'lib/geocoda-ruby/client.rb', line 21 def geocode(address) request = RestClient::Request.new(:method => :get, :url => Geocoda::Client::geocode_url(address), :user => api_key, :password => "x") raw = request.execute JSON::parse(raw) end |
#layer(name) ⇒ Object
50 51 52 53 54 55 56 57 |
# File 'lib/geocoda-ruby/client.rb', line 50 def layer(name) request = RestClient::Request.new(:method => :get, :url=>Geocoda::Client::layer_url(name), :user => api_key, :password => "x") body = request.execute JSON::parse(body) end |
#layers ⇒ Object
41 42 43 44 45 46 47 48 |
# File 'lib/geocoda-ruby/client.rb', line 41 def layers() request = RestClient::Request.new(:method => :get, :url=>Geocoda::Client::layers_url, :user => api_key, :password => "x") body = request.execute JSON::parse(body) end |
#nearby_bounding_box(layer, latitude, longitude, swlat, swlon, nelat, nelon) ⇒ Object
152 153 154 155 156 157 158 159 160 |
# File 'lib/geocoda-ruby/client.rb', line 152 def nearby_bounding_box(layer, latitude, longitude, swlat, swlon, nelat, nelon) query_string = "?bounding_box=#{swlat},#{swlon},#{nelat},#{nelon}" request = RestClient::Request.new(:method => :get, :url=>Geocoda::Client::nearby_url(layer, latitude, longitude) + query_string, :user => api_key, :password => "x") body = request.execute JSON::parse(body) end |
#nearby_radius(layer, latitude, longitude, radius) ⇒ Object
142 143 144 145 146 147 148 149 150 |
# File 'lib/geocoda-ruby/client.rb', line 142 def nearby_radius(layer, latitude, longitude, radius) query_string = "?radius=#{radius}" request = RestClient::Request.new(:method => :get, :url=>Geocoda::Client::nearby_url(layer, latitude, longitude) + query_string, :user => api_key, :password => "x") body = request.execute JSON::parse(body) end |
#record(layer, name) ⇒ Object
88 89 90 91 92 93 94 95 |
# File 'lib/geocoda-ruby/client.rb', line 88 def record(layer, name) request = RestClient::Request.new(:method => :get, :url=>Geocoda::Client::record_url(layer, name), :user => api_key, :password => "x") body = request.execute JSON::parse(body) end |
#record_history(layer, name) ⇒ Object
133 134 135 136 137 138 139 140 |
# File 'lib/geocoda-ruby/client.rb', line 133 def record_history(layer, name) request = RestClient::Request.new(:method => :get, :url=>Geocoda::Client::record_history_url(layer, name), :user => api_key, :password => "x") body = request.execute JSON::parse(body) end |
#records(layer) ⇒ Object
79 80 81 82 83 84 85 86 |
# File 'lib/geocoda-ruby/client.rb', line 79 def records(layer) request = RestClient::Request.new(:method => :get, :url=>Geocoda::Client::records_url(layer), :user => api_key, :password => "x") body = request.execute JSON::parse(body) end |
#save_layer(name, payload = {}) ⇒ Object
59 60 61 62 63 64 65 66 67 68 |
# File 'lib/geocoda-ruby/client.rb', line 59 def save_layer(name, payload={}) new_layer = payload.is_a?(String) ? payload : payload.to_json request = RestClient::Request.new(:method => :post, :url=>Geocoda::Client::layer_url(name), :payload=> new_layer, :user => api_key, :password => "x") body = request.execute JSON::parse(body) end |
#save_point(layer, name, latitude, longitude) ⇒ Object
119 120 121 122 |
# File 'lib/geocoda-ruby/client.rb', line 119 def save_point(layer, name, latitude, longitude) new_record = {:type=>"Feature", :geometry=>{:type=>"Point", :coordinates=>[longitude, latitude]}}.to_json save_record(layer, name, new_record) end |
#save_record(layer, name, payload) ⇒ Object
97 98 99 100 101 102 103 104 105 106 |
# File 'lib/geocoda-ruby/client.rb', line 97 def save_record(layer, name, payload) new_record = payload.is_a?(String) ? payload : payload.to_json request = RestClient::Request.new(:method => :post, :url=>Geocoda::Client::record_url(layer, name), :payload=> new_record, :user => api_key, :password => "x") body = request.execute JSON::parse(body) end |
#save_records(layer, payload) ⇒ Object
108 109 110 111 112 113 114 115 116 117 |
# File 'lib/geocoda-ruby/client.rb', line 108 def save_records(layer, payload) record_collection = payload.is_a?(String) ? payload : payload.to_json request = RestClient::Request.new(:method => :post, :url=>Geocoda::Client::records_url(layer), :payload=> record_collection, :user => api_key, :password => "x") body = request.execute JSON::parse(body) end |