osrm 0.2.0 → 0.3.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 +4 -4
- data/README.md +6 -2
- data/lib/osrm/configuration.rb +27 -7
- data/lib/osrm/query.rb +8 -0
- data/lib/osrm/version.rb +1 -1
- metadata +19 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8597e75fad0414f8f8aa2b9ebce485b0f9ccd712
|
|
4
|
+
data.tar.gz: 698e2fc52de22d09adfe7a06e57ba8f889a286f2
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: dfc6876e927a578f05261f6519f9025040045ac49cbe2e785b81fed5f459b90c9f2425dc1954c358e883c9eff91db6b21f87eb5a8dae30ef77439d1378e15e74
|
|
7
|
+
data.tar.gz: bf665ae1f754cd6486c9da9cb479b969fe5e277629759430e2979e367362ad8aa06f6d5887f80ab8c0220144fca0d1c0580d660bbbf4b0612a699a4c0651dae6
|
data/README.md
CHANGED
|
@@ -18,8 +18,12 @@ You can [run your own server](https://github.com/Project-OSRM/osrm-backend/wiki)
|
|
|
18
18
|
server: 'example.com', # Must be specified
|
|
19
19
|
port: 8080, # Default: 80 or 443 if SSL
|
|
20
20
|
use_ssl: true, # Default: false
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
|
|
22
|
+
# Connection (advanced)
|
|
23
|
+
timeout: 10, # Default: 3
|
|
24
|
+
user_agent: 'MyScript/1.1', # Default: 'OSRMRubyGem/{version}'
|
|
25
|
+
before_request: -> { sleep 1 }, # Default: nil
|
|
26
|
+
after_request: -> { puts 'Request performed!' }, # Default: nil
|
|
23
27
|
|
|
24
28
|
# Caching
|
|
25
29
|
# The cache can be any object providing [] and []= methods.
|
data/lib/osrm/configuration.rb
CHANGED
|
@@ -6,13 +6,17 @@ module OSRM
|
|
|
6
6
|
include Singleton
|
|
7
7
|
|
|
8
8
|
DEFAULTS = {
|
|
9
|
-
server:
|
|
10
|
-
port:
|
|
11
|
-
use_ssl:
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
9
|
+
server: nil,
|
|
10
|
+
port: nil,
|
|
11
|
+
use_ssl: false,
|
|
12
|
+
|
|
13
|
+
timeout: 3,
|
|
14
|
+
user_agent: "OSRMRubyGem/#{OSRM::VERSION}",
|
|
15
|
+
before_request: nil,
|
|
16
|
+
after_request: nil,
|
|
17
|
+
|
|
18
|
+
cache: nil,
|
|
19
|
+
cache_key: 'osrm:{url}'
|
|
16
20
|
}.freeze
|
|
17
21
|
|
|
18
22
|
DEMO_SERVER = 'router.project-osrm.org'.freeze
|
|
@@ -51,6 +55,22 @@ module OSRM
|
|
|
51
55
|
@data[:timeout] = timeout && timeout.to_i
|
|
52
56
|
end
|
|
53
57
|
|
|
58
|
+
def before_request=(before_request)
|
|
59
|
+
if before_request && !before_request.is_a?(Proc)
|
|
60
|
+
fail "OSRM API error: Invalid before request #{before_request.inspect}"
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
@data[:before_request] = before_request
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def after_request=(after_request)
|
|
67
|
+
if after_request && !after_request.is_a?(Proc)
|
|
68
|
+
fail "OSRM API error: Invalid after request #{after_request.inspect}"
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
@data[:after_request] = after_request
|
|
72
|
+
end
|
|
73
|
+
|
|
54
74
|
def cache_key=(cache_key)
|
|
55
75
|
unless cache_key.include?('{url}')
|
|
56
76
|
fail "OSRM API error: Invalid cache key #{cache_key.inspect}"
|
data/lib/osrm/query.rb
CHANGED
|
@@ -11,6 +11,9 @@ module OSRM
|
|
|
11
11
|
@locations = locations.compact.reject(&:empty?)
|
|
12
12
|
end
|
|
13
13
|
|
|
14
|
+
# OPTIMIZE: Implement a custom locations= method
|
|
15
|
+
# -> Remove consecutive duplicate locations (http://stackoverflow.com/a/8105422)
|
|
16
|
+
|
|
14
17
|
# OPTIMIZE: Don't execute if 0 or 1 location(s)
|
|
15
18
|
def execute
|
|
16
19
|
json = fetch_json_data
|
|
@@ -51,7 +54,12 @@ module OSRM
|
|
|
51
54
|
end
|
|
52
55
|
|
|
53
56
|
def fetch_raw_data
|
|
57
|
+
configuration.before_request.call if configuration.before_request
|
|
54
58
|
response = api_request
|
|
59
|
+
configuration.after_request.call if configuration.after_request
|
|
60
|
+
# TODO: Be sure that after request is ALWAYS called???
|
|
61
|
+
# (even if api_request failed)
|
|
62
|
+
|
|
55
63
|
response.body if valid_response?(response)
|
|
56
64
|
rescue SocketError
|
|
57
65
|
warn 'OSRM API error: Unable to establish connection'
|
data/lib/osrm/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: osrm
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Freayd
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2014-12-
|
|
11
|
+
date: 2014-12-21 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -30,6 +30,20 @@ dependencies:
|
|
|
30
30
|
- - ">="
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
32
|
version: 1.7.0
|
|
33
|
+
- !ruby/object:Gem::Dependency
|
|
34
|
+
name: minitest
|
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - "~>"
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '5'
|
|
40
|
+
type: :development
|
|
41
|
+
prerelease: false
|
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - "~>"
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '5'
|
|
33
47
|
- !ruby/object:Gem::Dependency
|
|
34
48
|
name: rake
|
|
35
49
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -56,7 +70,7 @@ dependencies:
|
|
|
56
70
|
requirements:
|
|
57
71
|
- - "~>"
|
|
58
72
|
- !ruby/object:Gem::Version
|
|
59
|
-
version: '0
|
|
73
|
+
version: '0'
|
|
60
74
|
- - ">="
|
|
61
75
|
- !ruby/object:Gem::Version
|
|
62
76
|
version: 0.0.2
|
|
@@ -66,7 +80,7 @@ dependencies:
|
|
|
66
80
|
requirements:
|
|
67
81
|
- - "~>"
|
|
68
82
|
- !ruby/object:Gem::Version
|
|
69
|
-
version: '0
|
|
83
|
+
version: '0'
|
|
70
84
|
- - ">="
|
|
71
85
|
- !ruby/object:Gem::Version
|
|
72
86
|
version: 0.0.2
|
|
@@ -103,7 +117,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
103
117
|
version: '0'
|
|
104
118
|
requirements: []
|
|
105
119
|
rubyforge_project:
|
|
106
|
-
rubygems_version: 2.4.
|
|
120
|
+
rubygems_version: 2.4.3
|
|
107
121
|
signing_key:
|
|
108
122
|
specification_version: 4
|
|
109
123
|
summary: OSRM API for Ruby
|