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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: abbba908db095f586a1d939d8d935868805e67d5
4
- data.tar.gz: 8915dca7dbf9e5979776c721e78ec4b3a4ac6c75
3
+ metadata.gz: 8597e75fad0414f8f8aa2b9ebce485b0f9ccd712
4
+ data.tar.gz: 698e2fc52de22d09adfe7a06e57ba8f889a286f2
5
5
  SHA512:
6
- metadata.gz: cda0b0be5ea7b71b488c283cd9e2200a75f7f785baf9a8b5fd01eefa6b2e937a7edc109aab14c86f2382bfe53339982cb18794b985c936101611683681aa70b6
7
- data.tar.gz: 94e4f2a643f72c09a56cd7ee7941f1ae65228095d76ad15227ed943da6ff8b2119d977b4fc6c797c02d61aadc98c79e4fe52e7ce0a1d85b0a97da9f9ef71ad90
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
- timeout: 10, # Default: 3
22
- user_agent: 'MyScript/1.1', # Default: 'OSRMRubyGem/{version}'
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.
@@ -6,13 +6,17 @@ module OSRM
6
6
  include Singleton
7
7
 
8
8
  DEFAULTS = {
9
- server: nil,
10
- port: nil,
11
- use_ssl: false,
12
- timeout: 3,
13
- user_agent: "OSRMRubyGem/#{OSRM::VERSION}",
14
- cache: nil,
15
- cache_key: 'osrm:{url}'
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}"
@@ -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'
@@ -1,3 +1,3 @@
1
1
  module OSRM
2
- VERSION = '0.2.0'
2
+ VERSION = '0.3.0'
3
3
  end
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.2.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-20 00:00:00.000000000 Z
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.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.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.4
120
+ rubygems_version: 2.4.3
107
121
  signing_key:
108
122
  specification_version: 4
109
123
  summary: OSRM API for Ruby