google_distance_matrix 0.2.1 → 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: 1bafa7129b5e8795d2843bf132729e31ac07079e
4
- data.tar.gz: ee670023245891199fe478f084b58b1e984ae7b4
3
+ metadata.gz: 90be905a03cf4356641158bddfc9d73e8dbcd30a
4
+ data.tar.gz: aa34d8e0ef5d84c3041105c6e07e5a05e8fbf30a
5
5
  SHA512:
6
- metadata.gz: b407618b92520edcc3a84199f5ab27e9db91598fb8c6e51b851379e6b4fb82f4d2fabe783eed065f4ba3a51ccc3a81abd4b99759546ae77e82ec49efccf954f8
7
- data.tar.gz: cffa738e7f599684a5107755d0945924c229dedc320daa14b5cc71f70079409f572fdff199ed04f43a12889ff603df860e9ee04340cf649a058c08fec42d7647
6
+ metadata.gz: 99df75867c1dee0fc7c2fea2d9d1811cb236d2a9acbfbddce2e4ad0bff73a62a28ae9fadfcc8eec8b18b0cdf3739cf0047f0876178d0ddcc211020c4e822fa66
7
+ data.tar.gz: a27b71536a839707da8e62bb1d58e76c0cb8f255698f62e084938c002adb7eda0d81a5bee3dec8af74fc9903ace9e674640cc6ca23735d03bae60c9346363c54
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.2.3
1
+ 2.3.1
data/.travis.yml CHANGED
@@ -7,6 +7,7 @@ rvm:
7
7
  - 2.1.5
8
8
  - 2.2.3
9
9
  - 2.3.0
10
+ - 2.3.1
10
11
  - ruby-head
11
12
  matrix:
12
13
  allow_failures:
data/CHANGELOG.md CHANGED
@@ -1,3 +1,12 @@
1
+ ## v.0.3.0 (unreleased)
2
+ This release includes one breaking change, the removal of sensor parameter.
3
+ This parameter is no longer used - see:
4
+ https://developers.google.com/maps/documentation/distance-matrix/intro#Sensor
5
+
6
+ * Remove sensor attribute. (by rpocklin)
7
+ * Added "transit_routing_preference" and "traffic_model" attributes to request. (by rpocklin)
8
+ * Added "ferries", "indoor" as valid avoid value. (by rpocklin)
9
+
1
10
  ## v.0.2.1
2
11
  * Made https be default (by almnes)
3
12
 
data/README.md CHANGED
@@ -50,7 +50,7 @@ matrix.origins << another_point
50
50
  ```ruby
51
51
  matrix.configure do |config|
52
52
  config.mode = 'driving'
53
- config.avoid = ['tolls']
53
+ config.avoid = 'tolls'
54
54
 
55
55
  # To build signed URLs to use with a Google Business account.
56
56
  config.google_business_api_client_id = "123"
@@ -23,8 +23,8 @@ Gem::Specification.new do |spec|
23
23
  spec.add_dependency "google_business_api_url_signer", "~> 0.1.3"
24
24
 
25
25
  spec.add_development_dependency "bundler"
26
- spec.add_development_dependency "rspec", "~> 3.3.0"
27
- spec.add_development_dependency "shoulda-matchers", "~> 3.0.0"
28
- spec.add_development_dependency "webmock", "~> 1.21.0"
26
+ spec.add_development_dependency "rspec", "~> 3.4.0"
27
+ spec.add_development_dependency "shoulda-matchers", "~> 3.1.1"
28
+ spec.add_development_dependency "webmock", "~> 2.0.2"
29
29
  spec.add_development_dependency "rake"
30
30
  end
@@ -3,17 +3,23 @@ module GoogleDistanceMatrix
3
3
  #
4
4
  # Holds configuration used when building API URL.
5
5
  #
6
- # See https://developers.google.com/maps/documentation/distancematrix/#RequestParameters
6
+ # See https://developers.google.com/maps/documentation/distance-matrix/intro
7
7
  # for documentation on each configuration.
8
8
  #
9
9
  class Configuration
10
10
  include ActiveModel::Validations
11
11
 
12
- ATTRIBUTES = %w[sensor mode avoid units language departure_time arrival_time transit_mode]
12
+ ATTRIBUTES = %w[
13
+ mode avoid units language
14
+ departure_time arrival_time
15
+ transit_mode transit_routing_preference
16
+ traffic_model
17
+ ]
13
18
 
14
19
  API_DEFAULTS = {
15
20
  mode: "driving",
16
- units: "metric"
21
+ units: "metric",
22
+ traffic_model: "best_guess"
17
23
  }.with_indifferent_access
18
24
 
19
25
  attr_accessor *ATTRIBUTES, :protocol, :logger, :lat_lng_scale
@@ -21,21 +27,20 @@ module GoogleDistanceMatrix
21
27
  attr_accessor :cache
22
28
 
23
29
 
24
- validates :sensor, inclusion: {in: [true, false]}
25
30
  validates :mode, inclusion: {in: ["driving", "walking", "bicycling", "transit"]}, allow_blank: true
26
- validates :avoid, inclusion: {in: ["tolls", "highways"]}, allow_blank: true
31
+ validates :avoid, inclusion: {in: ["tolls", "highways", "ferries", "indoor"]}, allow_blank: true
27
32
  validates :units, inclusion: {in: ["metric", "imperial"]}, allow_blank: true
28
33
 
29
34
  validates :departure_time, numericality: true, allow_blank: true
30
35
  validates :arrival_time, numericality: true, allow_blank: true
31
36
 
32
37
  validates :transit_mode, inclusion: {in: %w[bus subway train tram rail]}, allow_blank: true
38
+ validates :transit_routing_preference, inclusion: {in: %w[less_walking fewer_transfers]}, allow_blank: true
39
+ validates :traffic_model, inclusion: {in: %w[best_guess pessimistic optimistic]}, allow_blank: true
33
40
 
34
41
  validates :protocol, inclusion: {in: ["http", "https"]}, allow_blank: true
35
42
 
36
-
37
43
  def initialize
38
- self.sensor = false
39
44
  self.protocol = "https"
40
45
  self.lat_lng_scale = 5
41
46
 
@@ -1,3 +1,3 @@
1
1
  module GoogleDistanceMatrix
2
- VERSION = "0.2.1"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -6,26 +6,6 @@ describe GoogleDistanceMatrix::Configuration do
6
6
  subject { described_class.new }
7
7
 
8
8
  describe "Validations" do
9
- describe "sensor" do
10
- it "is valid with true" do
11
- subject.sensor = true
12
- subject.valid?
13
- expect(subject.errors[:sensor].length).to eq 0
14
- end
15
-
16
- it "is valid with false" do
17
- subject.sensor = false
18
- subject.valid?
19
- expect(subject.errors[:sensor].length).to eq 0
20
- end
21
-
22
- it "is invalid with 'foo'" do
23
- subject.sensor = 'foo'
24
- subject.valid?
25
- expect(subject.errors[:sensor].length).to eq 1
26
- end
27
- end
28
-
29
9
  describe 'departure_time' do
30
10
  it 'is valid with a timestamp' do
31
11
  subject.departure_time = Time.now.to_i
@@ -55,10 +35,9 @@ describe GoogleDistanceMatrix::Configuration do
55
35
  end
56
36
 
57
37
  it { should validate_inclusion_of(:mode).in_array(["driving", "walking", "bicycling", "transit"]) }
58
-
59
38
  it { should allow_value(nil).for(:mode) }
60
39
 
61
- it { should validate_inclusion_of(:avoid).in_array(["tolls", "highways"]) }
40
+ it { should validate_inclusion_of(:avoid).in_array(["tolls", "highways", "ferries", "indoor"]) }
62
41
  it { should allow_value(nil).for(:avoid) }
63
42
 
64
43
  it { should validate_inclusion_of(:units).in_array(["metric", "imperial"]) }
@@ -68,11 +47,12 @@ describe GoogleDistanceMatrix::Configuration do
68
47
  it { should validate_inclusion_of(:protocol).in_array(["http", "https"]) }
69
48
 
70
49
  it { should validate_inclusion_of(:transit_mode).in_array(["bus", "subway", "train", "tram", "rail"])}
50
+ it { should validate_inclusion_of(:transit_routing_preference).in_array(["less_walking", "fewer_transfers"])}
51
+ it { should validate_inclusion_of(:traffic_model).in_array(["best_guess", "pessimistic", "optimistic"])}
71
52
  end
72
53
 
73
54
 
74
55
  describe "defaults" do
75
- it { expect(subject.sensor).to eq false }
76
56
  it { expect(subject.mode).to eq "driving" }
77
57
  it { expect(subject.avoid).to be_nil }
78
58
  it { expect(subject.units).to eq "metric" }
@@ -83,6 +63,7 @@ describe GoogleDistanceMatrix::Configuration do
83
63
  it { expect(subject.departure_time).to be_nil }
84
64
  it { expect(subject.arrival_time).to be_nil }
85
65
  it { expect(subject.transit_mode).to be_nil }
66
+ it { expect(subject.traffic_model).to eq 'best_guess' }
86
67
 
87
68
  it { expect(subject.google_business_api_client_id).to be_nil }
88
69
  it { expect(subject.google_business_api_private_key).to be_nil }
@@ -44,14 +44,14 @@ describe GoogleDistanceMatrix::Matrix do
44
44
 
45
45
  it "has it's own configuration" do
46
46
  expect {
47
- subject.configure { |c| c.sensor = !GoogleDistanceMatrix.default_configuration.sensor }
48
- }.to_not change(GoogleDistanceMatrix.default_configuration, :sensor)
47
+ subject.configure { |c| c.mode = !GoogleDistanceMatrix.default_configuration.mode }
48
+ }.to_not change(GoogleDistanceMatrix.default_configuration, :mode)
49
49
  end
50
50
 
51
51
  it "has a configurable configuration :-)" do
52
52
  expect {
53
- subject.configure { |c| c.sensor = !GoogleDistanceMatrix.default_configuration.sensor }
54
- }.to change(subject.configuration, :sensor).to !GoogleDistanceMatrix.default_configuration.sensor
53
+ subject.configure { |c| c.mode = !GoogleDistanceMatrix.default_configuration.mode }
54
+ }.to change(subject.configuration, :mode).to !GoogleDistanceMatrix.default_configuration.mode
55
55
  end
56
56
  end
57
57
 
@@ -35,7 +35,7 @@ describe GoogleDistanceMatrix::UrlBuilder do
35
35
 
36
36
  it "fails if matrix's configuration is invalid" do
37
37
  expect {
38
- matrix.configure { |c| c.sensor = nil }
38
+ matrix.configure { |c| c.mode = 'foobar' }
39
39
  described_class.new matrix
40
40
  }.to raise_error GoogleDistanceMatrix::InvalidMatrix
41
41
  end
@@ -80,10 +80,6 @@ describe GoogleDistanceMatrix::UrlBuilder do
80
80
  end
81
81
 
82
82
  describe "configuration" do
83
- it "includes sensor" do
84
- expect(subject.url).to include "sensor=#{matrix.configuration.sensor}"
85
- end
86
-
87
83
  context 'with google api key set' do
88
84
  before do
89
85
  matrix.configure do |config|
@@ -109,7 +105,7 @@ describe GoogleDistanceMatrix::UrlBuilder do
109
105
  end
110
106
 
111
107
  it "has signature" do
112
- expect(subject.url).to include "signature=R6dKSHc7EZ7uzmpXKngJCX9i2_E="
108
+ expect(subject.url).to include "signature=DIUgkQ_BaVBJU6hwhzH3GLeMdeo="
113
109
  end
114
110
  end
115
111
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google_distance_matrix
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thorbjørn Hermansen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-07 00:00:00.000000000 Z
11
+ date: 2016-05-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -72,42 +72,42 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 3.3.0
75
+ version: 3.4.0
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 3.3.0
82
+ version: 3.4.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: shoulda-matchers
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 3.0.0
89
+ version: 3.1.1
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 3.0.0
96
+ version: 3.1.1
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: webmock
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 1.21.0
103
+ version: 2.0.2
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 1.21.0
110
+ version: 2.0.2
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: rake
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -186,7 +186,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
186
186
  version: '0'
187
187
  requirements: []
188
188
  rubyforge_project:
189
- rubygems_version: 2.4.5.1
189
+ rubygems_version: 2.5.1
190
190
  signing_key:
191
191
  specification_version: 4
192
192
  summary: Ruby client for The Google Distance Matrix API