ruby-nominatim 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/lib/nominatim.rb +36 -0
- data/lib/nominatim/address.rb +83 -0
- data/lib/nominatim/client.rb +40 -0
- data/lib/nominatim/configuration.rb +52 -0
- data/lib/nominatim/place.rb +93 -0
- data/lib/nominatim/point.rb +30 -0
- data/lib/nominatim/polygon.rb +13 -0
- data/lib/nominatim/response/parse_json.rb +16 -0
- data/lib/nominatim/reverse.rb +44 -0
- data/lib/nominatim/search.rb +171 -0
- data/lib/nominatim/version.rb +3 -0
- metadata +155 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: ed156fabbe98525ac066b5dd2eec91fa5afc8af4
|
4
|
+
data.tar.gz: 8ccba8b6597d95258c7e28cf3512f86ebd88b9e0
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 63d23fa498b1cf916124e1722108ca63d27015f9fe0ccf08f581a8994c217f333c4a8f52f85dae1ddd02ac27bf063335c392f886ba4b2dc5e81fb74cdf8837ef
|
7
|
+
data.tar.gz: 0503255b459f977cf01a4f19e77ab0685f9c58ce22dd43b8f938c30aa55315e35bc04da3e02427fd81f727e9404893ecb679d544563206c49c6c662cecf723b7
|
data/lib/nominatim.rb
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
require "nominatim/version"
|
2
|
+
require "nominatim/configuration"
|
3
|
+
require "nominatim/point"
|
4
|
+
require "nominatim/polygon"
|
5
|
+
require "nominatim/address"
|
6
|
+
require "nominatim/place"
|
7
|
+
require "nominatim/response/parse_json"
|
8
|
+
require "nominatim/client"
|
9
|
+
require "nominatim/search"
|
10
|
+
require "nominatim/reverse"
|
11
|
+
|
12
|
+
module Nominatim
|
13
|
+
|
14
|
+
# @return [Nominatim::Search]
|
15
|
+
def self.search(q = nil)
|
16
|
+
search = Nominatim::Search.new
|
17
|
+
search.query(q) if q
|
18
|
+
search
|
19
|
+
end
|
20
|
+
|
21
|
+
# @return [Nominatim::Reverse]
|
22
|
+
def self.reverse(lat = nil, lon = nil)
|
23
|
+
search = Nominatim::Reverse.new
|
24
|
+
search.lat(lat).lon(lon) if lat && lon
|
25
|
+
search
|
26
|
+
end
|
27
|
+
|
28
|
+
# @return [Nominatim::Configuration]
|
29
|
+
def self.config
|
30
|
+
@config ||= Configuration.new
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.configure(&block)
|
34
|
+
config.configure &block
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
module Nominatim
|
2
|
+
class Address
|
3
|
+
def initialize(attrs = {})
|
4
|
+
@attrs = attrs
|
5
|
+
end
|
6
|
+
|
7
|
+
def attraction
|
8
|
+
@attraction ||= @attrs[:attraction]
|
9
|
+
end
|
10
|
+
|
11
|
+
def clothes
|
12
|
+
@clothes ||= @attrs[:clothes]
|
13
|
+
end
|
14
|
+
|
15
|
+
def house_number
|
16
|
+
@house_number ||= @attrs[:house_number]
|
17
|
+
end
|
18
|
+
|
19
|
+
def road
|
20
|
+
@road ||= @attrs[:road]
|
21
|
+
end
|
22
|
+
|
23
|
+
def commercial
|
24
|
+
@commercial ||= @attrs[:commercial]
|
25
|
+
end
|
26
|
+
|
27
|
+
def pedestrian
|
28
|
+
@pedestrian ||= @attrs[:pedestrian]
|
29
|
+
end
|
30
|
+
|
31
|
+
def suburb
|
32
|
+
@suburb ||= @attrs[:suburb]
|
33
|
+
end
|
34
|
+
|
35
|
+
def city_district
|
36
|
+
@city_district ||= @attrs[:city_district]
|
37
|
+
end
|
38
|
+
|
39
|
+
def city
|
40
|
+
@city ||= @attrs[:city]
|
41
|
+
end
|
42
|
+
|
43
|
+
def administrative
|
44
|
+
@administrative ||= @attrs[:administrative]
|
45
|
+
end
|
46
|
+
|
47
|
+
def county
|
48
|
+
@county ||= @attrs[:county]
|
49
|
+
end
|
50
|
+
|
51
|
+
def state_district
|
52
|
+
@state_district ||= @attrs[:state_district]
|
53
|
+
end
|
54
|
+
|
55
|
+
def state
|
56
|
+
@state ||= @attrs[:state]
|
57
|
+
end
|
58
|
+
|
59
|
+
def postcode
|
60
|
+
@postcode ||= @attrs[:postcode]
|
61
|
+
end
|
62
|
+
|
63
|
+
def country
|
64
|
+
@country ||= @attrs[:country]
|
65
|
+
end
|
66
|
+
|
67
|
+
def country_code
|
68
|
+
@country_code ||= @attrs[:country_code]
|
69
|
+
end
|
70
|
+
|
71
|
+
def place
|
72
|
+
@place ||= @attrs[:place]
|
73
|
+
end
|
74
|
+
|
75
|
+
def town
|
76
|
+
@town ||= @attrs[:town]
|
77
|
+
end
|
78
|
+
|
79
|
+
def village
|
80
|
+
@village ||= @attrs[:village]
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'faraday'
|
2
|
+
|
3
|
+
module Nominatim
|
4
|
+
class Client
|
5
|
+
|
6
|
+
# Performs an HTTP GET request
|
7
|
+
def get(path, params = {})
|
8
|
+
connection.get path, params
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
# Returns a Faraday::Connection object
|
14
|
+
#
|
15
|
+
# @return [Faraday::Connection]
|
16
|
+
def connection
|
17
|
+
return @connection if defined? @connection
|
18
|
+
|
19
|
+
options = {
|
20
|
+
request: {
|
21
|
+
timeout: Nominatim.config.timeout
|
22
|
+
}
|
23
|
+
}
|
24
|
+
|
25
|
+
@connection = Faraday.new Nominatim.config.endpoint, options do |builder|
|
26
|
+
builder.use Nominatim::Response::ParseJson
|
27
|
+
builder.adapter Faraday.default_adapter
|
28
|
+
end
|
29
|
+
|
30
|
+
@connection.params[:format] = 'json'
|
31
|
+
@connection.params[:email] = Nominatim.config.email if Nominatim.config.email
|
32
|
+
@connection.params[:key] = Nominatim.config.key if Nominatim.config.key
|
33
|
+
|
34
|
+
@connection.headers[:user_agent] = Nominatim.config.user_agent
|
35
|
+
@connection.headers[:"accept-language"] = Nominatim.config.accept_language
|
36
|
+
|
37
|
+
@connection
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
module Nominatim
|
2
|
+
class Configuration
|
3
|
+
|
4
|
+
DEFAULT_ENDPOINT = 'http://nominatim.openstreetmap.org'
|
5
|
+
|
6
|
+
DEFAULT_KEY = nil
|
7
|
+
|
8
|
+
DEFAULT_USER_AGENT = "Nominatim Ruby Gem #{Nominatim::VERSION}"
|
9
|
+
|
10
|
+
DEFAULT_EMAIL = nil
|
11
|
+
|
12
|
+
DEFAULT_LANGUAGE = 'en'
|
13
|
+
|
14
|
+
DEFAULT_TIMEOUT = nil
|
15
|
+
|
16
|
+
DEFAULT_SEARCH_URL = 'search'
|
17
|
+
DEFAULT_REVERSE_URL = 'reverse'
|
18
|
+
|
19
|
+
VALID_OPTIONS_KEYS = [
|
20
|
+
:endpoint,
|
21
|
+
:key,
|
22
|
+
:user_agent,
|
23
|
+
:email,
|
24
|
+
:accept_language,
|
25
|
+
:timeout,
|
26
|
+
:search_url,
|
27
|
+
:reverse_url
|
28
|
+
]
|
29
|
+
|
30
|
+
attr_accessor *VALID_OPTIONS_KEYS
|
31
|
+
|
32
|
+
def initialize
|
33
|
+
reset!
|
34
|
+
end
|
35
|
+
|
36
|
+
def configure
|
37
|
+
yield self
|
38
|
+
self
|
39
|
+
end
|
40
|
+
|
41
|
+
def reset!
|
42
|
+
self.endpoint = DEFAULT_ENDPOINT
|
43
|
+
self.key = DEFAULT_KEY
|
44
|
+
self.user_agent = DEFAULT_USER_AGENT
|
45
|
+
self.email = DEFAULT_EMAIL
|
46
|
+
self.accept_language = DEFAULT_LANGUAGE
|
47
|
+
self.timeout = DEFAULT_TIMEOUT
|
48
|
+
self.search_url = DEFAULT_SEARCH_URL
|
49
|
+
self.reverse_url = DEFAULT_REVERSE_URL
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,93 @@
|
|
1
|
+
module Nominatim
|
2
|
+
class Place
|
3
|
+
# attr_reader :attrs
|
4
|
+
# alias to_hash attrs
|
5
|
+
|
6
|
+
def initialize(attrs = {})
|
7
|
+
@attrs = attrs
|
8
|
+
end
|
9
|
+
|
10
|
+
# Return display name
|
11
|
+
#
|
12
|
+
# @return [String]
|
13
|
+
def display_name
|
14
|
+
@display_name ||= @attrs[:display_name]
|
15
|
+
end
|
16
|
+
|
17
|
+
# Return a class
|
18
|
+
#
|
19
|
+
# @return [String]
|
20
|
+
def class
|
21
|
+
@class ||= @attrs[:class]
|
22
|
+
end
|
23
|
+
|
24
|
+
# Return a type
|
25
|
+
#
|
26
|
+
# @return [String]
|
27
|
+
def type
|
28
|
+
@type ||= @attrs[:type]
|
29
|
+
end
|
30
|
+
|
31
|
+
# Return an address
|
32
|
+
#
|
33
|
+
# @return [Nominatim::Address]
|
34
|
+
def address
|
35
|
+
@address ||= Nominatim::Address.new(@attrs[:address]) if @attrs[:address]
|
36
|
+
end
|
37
|
+
|
38
|
+
# Return a latitude
|
39
|
+
#
|
40
|
+
# @return [Float]
|
41
|
+
def lat
|
42
|
+
point.lat
|
43
|
+
end
|
44
|
+
alias latitude lat
|
45
|
+
|
46
|
+
# Return a longitude
|
47
|
+
#
|
48
|
+
# @return [Float]
|
49
|
+
def lon
|
50
|
+
point.lon
|
51
|
+
end
|
52
|
+
alias longitude lon
|
53
|
+
|
54
|
+
def boundingbox
|
55
|
+
@boundingbox ||= @attrs[:boundingbox]
|
56
|
+
end
|
57
|
+
alias bounding_box boundingbox
|
58
|
+
|
59
|
+
# Return a polygon
|
60
|
+
#
|
61
|
+
# @return [Nominatim::Polygon]
|
62
|
+
def polygonpoints
|
63
|
+
@polygonpoints ||= Nominatim::Polygon.new(@attrs[:polygonpoints]) if @attrs[:polygonpoints]
|
64
|
+
end
|
65
|
+
|
66
|
+
# Return a place id
|
67
|
+
#
|
68
|
+
# @return [Integer]
|
69
|
+
def place_id
|
70
|
+
@place_id ||= @attrs[:place_id].to_i if @attrs[:place_id]
|
71
|
+
end
|
72
|
+
|
73
|
+
# Return an OSM id
|
74
|
+
#
|
75
|
+
# @return [Integer]
|
76
|
+
def osm_id
|
77
|
+
@osm_id ||= @attrs[:osm_id].to_i if @attrs[:osm_id]
|
78
|
+
end
|
79
|
+
|
80
|
+
# Return an OSM type
|
81
|
+
#
|
82
|
+
# @return [String]
|
83
|
+
def osm_type
|
84
|
+
@osm_type ||= @attrs[:osm_type]
|
85
|
+
end
|
86
|
+
|
87
|
+
private
|
88
|
+
|
89
|
+
def point
|
90
|
+
@point ||= Nominatim::Point.new(@attrs[:lat], @attrs[:lon])
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Nominatim
|
2
|
+
class Point
|
3
|
+
attr_reader :lat, :lon
|
4
|
+
alias latitude lat
|
5
|
+
alias longitude lon
|
6
|
+
|
7
|
+
# @param lat [Float]
|
8
|
+
# @param lon [Float]
|
9
|
+
def initialize(lat, lon)
|
10
|
+
@lat, @lon = lat.to_f, lon.to_f if lat && lon
|
11
|
+
end
|
12
|
+
|
13
|
+
# @return [Array]
|
14
|
+
def to_a
|
15
|
+
[lat, lon]
|
16
|
+
end
|
17
|
+
|
18
|
+
# Return a string representation of the point
|
19
|
+
#
|
20
|
+
# @return [String]
|
21
|
+
def to_s
|
22
|
+
to_a.to_s
|
23
|
+
end
|
24
|
+
|
25
|
+
# @return [true, false]
|
26
|
+
def ==(other)
|
27
|
+
self.to_a == other.to_a
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module Nominatim
|
2
|
+
class Polygon
|
3
|
+
attr_reader :coordinates
|
4
|
+
|
5
|
+
# @param coordinates [Array<Array<Float, String>>]
|
6
|
+
def initialize(coordinates)
|
7
|
+
@coordinates = []
|
8
|
+
coordinates.each do |c|
|
9
|
+
@coordinates.push(Nominatim::Point.new(c[0], c[1]))
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'faraday'
|
2
|
+
require 'multi_json'
|
3
|
+
|
4
|
+
module Nominatim
|
5
|
+
module Response
|
6
|
+
class ParseJson < Faraday::Response::Middleware
|
7
|
+
def on_complete(env)
|
8
|
+
if env[:body].empty?
|
9
|
+
env[:body] = nil
|
10
|
+
else
|
11
|
+
env[:body] = MultiJson.load(env[:body], symbolize_keys: true)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module Nominatim
|
2
|
+
class Reverse < Client
|
3
|
+
attr_reader :criteria
|
4
|
+
|
5
|
+
def initialize
|
6
|
+
@criteria = {}
|
7
|
+
end
|
8
|
+
|
9
|
+
# Returns search result or nil if no results received.
|
10
|
+
def fetch
|
11
|
+
body = get(Nominatim.config.reverse_url, @criteria).body
|
12
|
+
return nil if body.empty?
|
13
|
+
Nominatim::Place.new(body)
|
14
|
+
end
|
15
|
+
|
16
|
+
# Latitude string to search for.
|
17
|
+
#
|
18
|
+
# @param lat [String] Latitude
|
19
|
+
# @return [Nominatim::Reverse]
|
20
|
+
def lat(lat)
|
21
|
+
@criteria[:lat] = lat
|
22
|
+
self
|
23
|
+
end
|
24
|
+
|
25
|
+
# Longitude string to search for.
|
26
|
+
#
|
27
|
+
# @param lon [String] Longitude
|
28
|
+
# @return [Nominatim::Reverse]
|
29
|
+
def lon(lon)
|
30
|
+
@criteria[:lon] = lon
|
31
|
+
self
|
32
|
+
end
|
33
|
+
|
34
|
+
# Include a breakdown of the address into elements.
|
35
|
+
#
|
36
|
+
# @param bool [true, false]
|
37
|
+
# @return [Nominatim::Reverse]
|
38
|
+
def address_details(bool)
|
39
|
+
@criteria[:addressdetails] = bool ? 1 : 0
|
40
|
+
self
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,171 @@
|
|
1
|
+
module Nominatim
|
2
|
+
class Search < Client
|
3
|
+
include Enumerable
|
4
|
+
attr_reader :criteria
|
5
|
+
|
6
|
+
def initialize
|
7
|
+
@criteria = {}
|
8
|
+
end
|
9
|
+
|
10
|
+
# Iterates over the search results.
|
11
|
+
def each(&block)
|
12
|
+
@results ||= get(Nominatim.config.search_url, @criteria).body.map! { |attrs| Nominatim::Place.new(attrs) }
|
13
|
+
@results.each(&block)
|
14
|
+
end
|
15
|
+
|
16
|
+
# Query string to search for.
|
17
|
+
#
|
18
|
+
# @param q [String] Query string
|
19
|
+
# @return [Nominatim::Search]
|
20
|
+
def query(q)
|
21
|
+
@criteria[:q] = q
|
22
|
+
self
|
23
|
+
end
|
24
|
+
|
25
|
+
# Street string to search for.
|
26
|
+
#
|
27
|
+
# @param street [String] Street string
|
28
|
+
# @return [Nominatim::Search]
|
29
|
+
def street(street)
|
30
|
+
@criteria[:street] = street
|
31
|
+
self
|
32
|
+
end
|
33
|
+
|
34
|
+
# City string to search for.
|
35
|
+
#
|
36
|
+
# @param city [String] city string
|
37
|
+
# @return [Nominatim::Search]
|
38
|
+
def city(city)
|
39
|
+
@criteria[:city] = city
|
40
|
+
self
|
41
|
+
end
|
42
|
+
|
43
|
+
# County string to search for.
|
44
|
+
#
|
45
|
+
# @param county [String] county string
|
46
|
+
# @return [Nominatim::Search]
|
47
|
+
def county(county)
|
48
|
+
@criteria[:county] = county
|
49
|
+
self
|
50
|
+
end
|
51
|
+
|
52
|
+
# State string to search for.
|
53
|
+
#
|
54
|
+
# @param state [String] state string
|
55
|
+
# @return [Nominatim::Search]
|
56
|
+
def state(state)
|
57
|
+
@criteria[:state] = state
|
58
|
+
self
|
59
|
+
end
|
60
|
+
|
61
|
+
# Country string to search for.
|
62
|
+
#
|
63
|
+
# @param country [String] country string
|
64
|
+
# @return [Nominatim::Search]
|
65
|
+
def country(country)
|
66
|
+
@criteria[:country] = country
|
67
|
+
self
|
68
|
+
end
|
69
|
+
|
70
|
+
# Postal code string to search for.
|
71
|
+
#
|
72
|
+
# @param postalcode [String] postalcode string
|
73
|
+
# @return [Nominatim::Search]
|
74
|
+
def postalcode(postalcode)
|
75
|
+
@criteria[:postalcode] = postalcode
|
76
|
+
self
|
77
|
+
end
|
78
|
+
|
79
|
+
# Limit search results to a specific country (or a list of countries).
|
80
|
+
#
|
81
|
+
# @param codes [Array<String>, String]
|
82
|
+
# @see https://wiki.openstreetmap.org/wiki/Nominatim
|
83
|
+
# @return [Nominatim::Search]
|
84
|
+
def country_codes(codes)
|
85
|
+
if codes.instance_of? Array
|
86
|
+
@criteria[:countrycodes] = codes.join(',')
|
87
|
+
else
|
88
|
+
@criteria[:countrycodes] = codes
|
89
|
+
end
|
90
|
+
self
|
91
|
+
end
|
92
|
+
|
93
|
+
# The preferred area to find search results.
|
94
|
+
#
|
95
|
+
# @param viewbox [Array<String>]
|
96
|
+
# @return [Nominatim::Search]
|
97
|
+
def viewbox(viewbox)
|
98
|
+
@criteria[:viewbox] = viewbox.join(',')
|
99
|
+
self
|
100
|
+
end
|
101
|
+
|
102
|
+
# Restrict the results to only items contained with the bounding box.
|
103
|
+
#
|
104
|
+
# @param bool [true, false]
|
105
|
+
# @see https://wiki.openstreetmap.org/wiki/Nominatim
|
106
|
+
# @return [Nominatim::Search]
|
107
|
+
def bounded(bool)
|
108
|
+
@criteria[:bounded] = bool ? 1 : 0
|
109
|
+
self
|
110
|
+
end
|
111
|
+
|
112
|
+
# Output polygon outlines for items found.
|
113
|
+
#
|
114
|
+
# @param bool [true, false]
|
115
|
+
# @return [Nominatim::Search]
|
116
|
+
def polygon(bool)
|
117
|
+
@criteria[:polygon] = bool ? 1 : 0
|
118
|
+
self
|
119
|
+
end
|
120
|
+
|
121
|
+
# Include a breakdown of the address into elements.
|
122
|
+
#
|
123
|
+
# @param bool [true, false]
|
124
|
+
# @return [Nominatim::Search]
|
125
|
+
def address_details(bool)
|
126
|
+
@criteria[:addressdetails] = bool ? 1 : 0
|
127
|
+
self
|
128
|
+
end
|
129
|
+
|
130
|
+
# Exclude given place ids from the search result.
|
131
|
+
#
|
132
|
+
# @param ids [Array<String>, String] Place ids
|
133
|
+
# @return [Nominatim::Search]
|
134
|
+
def exclude_place_ids(ids)
|
135
|
+
if ids.instance_of? Array
|
136
|
+
@criteria[:exclude_place_ids] = ids.join(',')
|
137
|
+
else
|
138
|
+
@criteria[:exclude_place_ids] = ids
|
139
|
+
end
|
140
|
+
self
|
141
|
+
end
|
142
|
+
|
143
|
+
# Limit the number of returned results.
|
144
|
+
#
|
145
|
+
# @param limit [Integer]
|
146
|
+
# @return [Nominatim::Search]
|
147
|
+
def limit(limit)
|
148
|
+
@criteria[:limit] = limit
|
149
|
+
self
|
150
|
+
end
|
151
|
+
|
152
|
+
# Limit results to certain type, instead of trying to match
|
153
|
+
# all possible matches.
|
154
|
+
#
|
155
|
+
# Possible values:
|
156
|
+
# - settlement
|
157
|
+
# - country
|
158
|
+
# - city
|
159
|
+
# - state
|
160
|
+
#
|
161
|
+
# This feature is not in official Nominatim documentation.
|
162
|
+
#
|
163
|
+
# @param type Type to restrict to
|
164
|
+
# @return [Nominatim::Search]
|
165
|
+
def featuretype(type)
|
166
|
+
@criteria[:featuretype] = type
|
167
|
+
self
|
168
|
+
end
|
169
|
+
|
170
|
+
end
|
171
|
+
end
|
metadata
ADDED
@@ -0,0 +1,155 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ruby-nominatim
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Samu Voutilainen
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-10-22 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: faraday
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.9.2
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.9.2
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: multi_json
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.11'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.11'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '10.4'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '10.4'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rspec
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '2.10'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '2.10'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: webmock
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '1.22'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.22'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: simplecov
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0.10'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0.10'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: yard
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0.8'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0.8'
|
111
|
+
description: Ruby bindings for Nominatim, providing easy interface with customizable
|
112
|
+
backends.
|
113
|
+
email:
|
114
|
+
- smar@smar.fi
|
115
|
+
executables: []
|
116
|
+
extensions: []
|
117
|
+
extra_rdoc_files: []
|
118
|
+
files:
|
119
|
+
- lib/nominatim.rb
|
120
|
+
- lib/nominatim/address.rb
|
121
|
+
- lib/nominatim/client.rb
|
122
|
+
- lib/nominatim/configuration.rb
|
123
|
+
- lib/nominatim/place.rb
|
124
|
+
- lib/nominatim/point.rb
|
125
|
+
- lib/nominatim/polygon.rb
|
126
|
+
- lib/nominatim/response/parse_json.rb
|
127
|
+
- lib/nominatim/reverse.rb
|
128
|
+
- lib/nominatim/search.rb
|
129
|
+
- lib/nominatim/version.rb
|
130
|
+
homepage: https://github.com/Smarre/ruby-nominatim
|
131
|
+
licenses:
|
132
|
+
- MIT
|
133
|
+
metadata: {}
|
134
|
+
post_install_message:
|
135
|
+
rdoc_options: []
|
136
|
+
require_paths:
|
137
|
+
- lib
|
138
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
139
|
+
requirements:
|
140
|
+
- - ">="
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: '0'
|
143
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
144
|
+
requirements:
|
145
|
+
- - ">="
|
146
|
+
- !ruby/object:Gem::Version
|
147
|
+
version: '0'
|
148
|
+
requirements: []
|
149
|
+
rubyforge_project:
|
150
|
+
rubygems_version: 2.4.8
|
151
|
+
signing_key:
|
152
|
+
specification_version: 4
|
153
|
+
summary: A Ruby wrapper for the Nominatim API.
|
154
|
+
test_files: []
|
155
|
+
has_rdoc:
|