quicktravel_client 2.9.0 → 3.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 +4 -4
- data/CHANGELOG.md +14 -0
- data/lib/quick_travel/address.rb +0 -12
- data/lib/quick_travel/party.rb +2 -2
- data/lib/quick_travel/product_configuration.rb +12 -4
- data/lib/quick_travel/setting.rb +9 -0
- data/lib/quick_travel/version.rb +1 -1
- data/quicktravel_client.gemspec +0 -2
- data/spec/product_configuration_spec.rb +265 -0
- data/spec/setting_spec.rb +18 -0
- data/spec/support/cassettes/settings_basic.yml +61 -0
- data/spec/support/coverage_loader.rb +1 -1
- metadata +10 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d406224338a518959484d11dcef14412f50cf92a
|
4
|
+
data.tar.gz: c63d38aeadcc3504609d5f0177dafa291d74d789
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 54c408479abad2926f6573a5703b7d0154feebaf8d60a6bbf59d9189e8f6cbb266798145e1dd47f9f394c4636c826de0ab4bfdd2f1317ab954cfe43f61fd442c
|
7
|
+
data.tar.gz: 0b53e81800754f522628d39cbd2602ae486ef8a08e597e3517ba9a5d5a524f8a354252115d998f259747fe553e0c80b3f960b83527a055e8fe69bdc6355c54f5
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,20 @@ All notable changes to this project will be documented in this file.
|
|
3
3
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
4
4
|
This changelog adheres to [Keep a CHANGELOG](http://keepachangelog.com/).
|
5
5
|
|
6
|
+
|
7
|
+
## [3.0.0]
|
8
|
+
### Fixed
|
9
|
+
- Allow zero pricing for extra pick items
|
10
|
+
|
11
|
+
### Changed
|
12
|
+
- Use new reset password url
|
13
|
+
|
14
|
+
### Added
|
15
|
+
- Setting API
|
16
|
+
|
17
|
+
### Removed
|
18
|
+
- Removed geocode function on address
|
19
|
+
|
6
20
|
## [2.9.0]
|
7
21
|
### Changed
|
8
22
|
- Use new API login
|
data/lib/quick_travel/address.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'quick_travel/adapter'
|
2
|
-
require 'geokit'
|
3
2
|
|
4
3
|
module QuickTravel
|
5
4
|
class Address < Adapter
|
@@ -7,17 +6,6 @@ module QuickTravel
|
|
7
6
|
QuickTravel::Country.find(@country_id).name
|
8
7
|
end
|
9
8
|
|
10
|
-
# TODO: Remove this method
|
11
|
-
# Geokit is a dependency and ONLY used here
|
12
|
-
# This function should be done outside this gem
|
13
|
-
def geocode
|
14
|
-
@_geocode ||= QuickTravel::Cache.cache("geocode_#{self}") {
|
15
|
-
Geokit::Geocoders::MultiGeocoder.geocode(to_s)
|
16
|
-
}
|
17
|
-
rescue Geokit::Geocoders::TooManyQueriesError
|
18
|
-
nil # do not cache, do not error
|
19
|
-
end
|
20
|
-
|
21
9
|
def to_s
|
22
10
|
"#{address_line1} #{address_line2}, #{city}, #{post_code}, #{state}, #{country_name}"
|
23
11
|
end
|
data/lib/quick_travel/party.rb
CHANGED
@@ -32,11 +32,11 @@ module QuickTravel
|
|
32
32
|
|
33
33
|
def self.request_password(login, url)
|
34
34
|
options = { login: login, url: url }
|
35
|
-
post_and_validate('/sessions/request_password_reset', options)
|
35
|
+
post_and_validate('/api/sessions/request_password_reset', options)
|
36
36
|
end
|
37
37
|
|
38
38
|
def self.set_password_via_token(token, password)
|
39
|
-
post_and_validate('/sessions/set_password_via_token', token: token, password: password)
|
39
|
+
post_and_validate('/api/sessions/set_password_via_token', token: token, password: password)
|
40
40
|
rescue QuickTravel::AdapterError => e
|
41
41
|
{ error: e.message }
|
42
42
|
end
|
@@ -102,20 +102,28 @@ module QuickTravel
|
|
102
102
|
end
|
103
103
|
end
|
104
104
|
|
105
|
+
def selected_extra_picks_with_price
|
106
|
+
selected_extra_pick_configurations.select(&:priced?)
|
107
|
+
end
|
108
|
+
|
105
109
|
def selected_extra_picks_price
|
106
|
-
|
110
|
+
total_money(selected_extra_picks_with_price.map(&:price))
|
107
111
|
end
|
108
112
|
|
109
113
|
def selected_extra_picks_price_without_rules
|
110
|
-
|
114
|
+
total_money(selected_extra_picks_with_price.map(&:price_without_rules))
|
111
115
|
end
|
112
116
|
|
113
117
|
def selected_extra_picks_price_for_rack_rate
|
114
|
-
|
118
|
+
total_money(selected_extra_picks_with_price.map(&:price_for_rack_rate))
|
115
119
|
end
|
116
120
|
|
117
121
|
def selected_extra_picks_applied_rules
|
118
|
-
|
122
|
+
selected_extra_picks_with_price.flat_map(&:applied_rules)
|
123
|
+
end
|
124
|
+
|
125
|
+
def total_money(array)
|
126
|
+
array.reduce(Money.new(0), :+)
|
119
127
|
end
|
120
128
|
|
121
129
|
def pricing_details
|
data/lib/quick_travel/version.rb
CHANGED
data/quicktravel_client.gemspec
CHANGED
@@ -18,8 +18,6 @@ Gem::Specification.new do |spec|
|
|
18
18
|
|
19
19
|
spec.add_dependency 'httparty', '~> 0.14'
|
20
20
|
spec.add_dependency 'json'
|
21
|
-
# Geokit dependency should be removed (see address.rb for details)
|
22
|
-
spec.add_dependency 'geokit', '~> 1.8.3' # used in address model
|
23
21
|
spec.add_dependency 'activesupport', '>= 2.0.0'
|
24
22
|
spec.add_dependency 'facets'
|
25
23
|
spec.add_dependency 'money', '>= 3.0', '< 6.0' # 6.0 starts to deprecate/split
|
@@ -0,0 +1,265 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'money'
|
3
|
+
require 'quick_travel/product_configuration'
|
4
|
+
|
5
|
+
describe QuickTravel::ProductConfiguration do
|
6
|
+
ADULT_PASSENGER_TYPE_ID = 0
|
7
|
+
CHILD_PASSENGER_TYPE_ID = 1
|
8
|
+
|
9
|
+
let(:extra_pick_available) { false }
|
10
|
+
let(:extra_pick_minimum_price) { Money.new(2) }
|
11
|
+
|
12
|
+
let(:applied_rules) { [] }
|
13
|
+
let(:extra_pick_applied_rules) { [] }
|
14
|
+
|
15
|
+
let(:extra_pick_pricing_details) do
|
16
|
+
double(
|
17
|
+
applied_rules: extra_pick_applied_rules,
|
18
|
+
price_per_pax_type: [],
|
19
|
+
minimum_price_with_adjustments: extra_pick_minimum_price
|
20
|
+
)
|
21
|
+
end
|
22
|
+
|
23
|
+
let(:extra_pick_product) do
|
24
|
+
double(
|
25
|
+
extras: [],
|
26
|
+
pricing_details: extra_pick_pricing_details,
|
27
|
+
available?: extra_pick_available
|
28
|
+
)
|
29
|
+
end
|
30
|
+
|
31
|
+
let(:unpriced_extra_pick_product) { double(extras: [], available?: true) }
|
32
|
+
|
33
|
+
let(:extras) { [extra_pick_product] }
|
34
|
+
|
35
|
+
let(:available) { false }
|
36
|
+
let(:minimum_price) { Money.new(10) }
|
37
|
+
let(:minimum_without_rules_price) { Money.new(100) }
|
38
|
+
let(:minimum_rack_price) { Money.new(50) }
|
39
|
+
|
40
|
+
let(:pricing_details) do
|
41
|
+
double(
|
42
|
+
applied_rules: applied_rules,
|
43
|
+
price_per_pax_type: [2, 1],
|
44
|
+
minimum_price_with_adjustments: minimum_price
|
45
|
+
)
|
46
|
+
end
|
47
|
+
|
48
|
+
let(:pricing_details_for_rack_rate) do
|
49
|
+
double(
|
50
|
+
applied_rules: [],
|
51
|
+
price_per_pax_type: [],
|
52
|
+
minimum_price_with_adjustments: minimum_rack_price
|
53
|
+
)
|
54
|
+
end
|
55
|
+
|
56
|
+
let(:pricing_details_without_rules) do
|
57
|
+
double(
|
58
|
+
applied_rules: [],
|
59
|
+
price_per_pax_type: [],
|
60
|
+
minimum_price_with_adjustments: minimum_without_rules_price
|
61
|
+
)
|
62
|
+
end
|
63
|
+
|
64
|
+
let(:product) do
|
65
|
+
double(
|
66
|
+
extras: extras,
|
67
|
+
available?: available,
|
68
|
+
pricing_details: pricing_details,
|
69
|
+
pricing_details_without_rules: pricing_details_without_rules,
|
70
|
+
pricing_details_for_rack_rate: pricing_details_for_rack_rate
|
71
|
+
)
|
72
|
+
end
|
73
|
+
|
74
|
+
subject(:config) { QuickTravel::ProductConfiguration.new(product) }
|
75
|
+
|
76
|
+
context '#initialize' do
|
77
|
+
it 'should create the extra pick configurations' do
|
78
|
+
expect(subject.extra_pick_configurations.size).to be 1
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
context 'selections' do
|
83
|
+
it { is_expected.not_to be_selected }
|
84
|
+
|
85
|
+
context '#select!' do
|
86
|
+
before { subject.select! }
|
87
|
+
it { is_expected.to be_selected }
|
88
|
+
|
89
|
+
context '#deselect!' do
|
90
|
+
before { subject.deselect! }
|
91
|
+
it { is_expected.not_to be_selected }
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
context '#available?' do
|
97
|
+
context 'the product is available' do
|
98
|
+
let(:available) { true }
|
99
|
+
it { is_expected.to be_available }
|
100
|
+
|
101
|
+
context 'extra pick unavailable' do
|
102
|
+
let(:extra_pick_available) { false }
|
103
|
+
|
104
|
+
context 'non selected extra picks' do
|
105
|
+
it { is_expected.to be_available }
|
106
|
+
end
|
107
|
+
|
108
|
+
context 'selected extra pick' do
|
109
|
+
before { subject.select_extra_pick(extra_pick_product) }
|
110
|
+
it { is_expected.not_to be_available }
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
context 'the product is unavailable' do
|
116
|
+
let(:available) { false }
|
117
|
+
it { is_expected.not_to be_available }
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
context '#priced?' do
|
122
|
+
context 'when the pricing details are present' do
|
123
|
+
it { is_expected.to be_priced }
|
124
|
+
end
|
125
|
+
|
126
|
+
context 'when no pricing details are present' do
|
127
|
+
let(:pricing_details) { nil }
|
128
|
+
it { is_expected.not_to be_priced }
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
context '#price' do
|
133
|
+
subject { config.price }
|
134
|
+
it { is_expected.to eq minimum_price }
|
135
|
+
end
|
136
|
+
|
137
|
+
context '#price_without_rules' do
|
138
|
+
subject { config.price_without_rules }
|
139
|
+
|
140
|
+
context 'when the rules are not defined' do
|
141
|
+
let(:pricing_details_without_rules) { nil }
|
142
|
+
it { is_expected.to eq config.price }
|
143
|
+
end
|
144
|
+
|
145
|
+
context 'when the rules are defined' do
|
146
|
+
it { is_expected.to eq minimum_without_rules_price }
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
context '#price_for_rack_rate' do
|
151
|
+
subject { config.price_for_rack_rate }
|
152
|
+
|
153
|
+
context 'when the rules are not defined' do
|
154
|
+
let(:pricing_details_for_rack_rate) { nil }
|
155
|
+
it { is_expected.to eq config.price }
|
156
|
+
end
|
157
|
+
|
158
|
+
context 'when the rules are defined' do
|
159
|
+
it { is_expected.to eq minimum_rack_price }
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
context '#total_price' do
|
164
|
+
subject { config.total_price }
|
165
|
+
|
166
|
+
context 'when there are no selected extra picks' do
|
167
|
+
it { is_expected.to eq config.price }
|
168
|
+
end
|
169
|
+
|
170
|
+
context 'when there are selected extra picks' do
|
171
|
+
before { config.select_extra_pick(extra_pick_product) }
|
172
|
+
it { is_expected.to eq extra_pick_minimum_price + minimum_price }
|
173
|
+
|
174
|
+
context 'without a price' do
|
175
|
+
let(:extra_pick_pricing_details) { nil }
|
176
|
+
it { is_expected.to eq config.price }
|
177
|
+
end
|
178
|
+
end
|
179
|
+
end
|
180
|
+
|
181
|
+
context '#total_price_without_rules' do
|
182
|
+
subject { config.total_price_without_rules }
|
183
|
+
context 'when there are no selected extra picks' do
|
184
|
+
it { is_expected.to eq config.price_without_rules }
|
185
|
+
end
|
186
|
+
end
|
187
|
+
|
188
|
+
context '#total_price_for_rack_rate' do
|
189
|
+
subject { config.total_price_for_rack_rate }
|
190
|
+
context 'when there are no selected extra picks' do
|
191
|
+
it { is_expected.to eq config.price_for_rack_rate }
|
192
|
+
end
|
193
|
+
end
|
194
|
+
|
195
|
+
context '#applied_rules' do
|
196
|
+
let(:applied_rules) { [1, 1, 2, 2] }
|
197
|
+
subject { config.applied_rules }
|
198
|
+
it { is_expected.to eq [1, 2] }
|
199
|
+
end
|
200
|
+
|
201
|
+
context '#total_applied_rules' do
|
202
|
+
let(:applied_rules) { [1, 1, 2, 2] }
|
203
|
+
let(:extra_pick_applied_rules) { [1, 3] }
|
204
|
+
before do
|
205
|
+
subject.select_extra_pick(extra_pick_product)
|
206
|
+
end
|
207
|
+
it 'should return unique rules from product and selected extra picks' do
|
208
|
+
expect(subject.total_applied_rules).to eq [1, 2, 3]
|
209
|
+
end
|
210
|
+
end
|
211
|
+
|
212
|
+
context '#price_per_passenger_type' do
|
213
|
+
it 'should return a price for adult' do
|
214
|
+
expect(subject.price_per_passenger_type(ADULT_PASSENGER_TYPE_ID)).to be 2
|
215
|
+
end
|
216
|
+
|
217
|
+
it 'should return a price for child' do
|
218
|
+
expect(subject.price_per_passenger_type(CHILD_PASSENGER_TYPE_ID)).to be 1
|
219
|
+
end
|
220
|
+
end
|
221
|
+
|
222
|
+
context '#selected_extra_pick_configurations' do
|
223
|
+
it 'should have no selected extra picks by default' do
|
224
|
+
expect(subject.selected_extra_pick_configurations).to be_empty
|
225
|
+
end
|
226
|
+
end
|
227
|
+
|
228
|
+
context '#available_extra_pick_configurations' do
|
229
|
+
context 'when there are available extra picks' do
|
230
|
+
let(:extra_pick_available) { true }
|
231
|
+
it 'should return the available extra picks' do
|
232
|
+
expect(subject.available_extra_pick_configurations.size).to be 1
|
233
|
+
end
|
234
|
+
end
|
235
|
+
|
236
|
+
context 'when there are no available extra picks' do
|
237
|
+
let(:extra_pick_available) { false }
|
238
|
+
it 'should return the available extra picks' do
|
239
|
+
expect(subject.available_extra_pick_configurations).to be_empty
|
240
|
+
end
|
241
|
+
end
|
242
|
+
end
|
243
|
+
|
244
|
+
context '#select_extra_picks' do
|
245
|
+
let(:extras) { [extra_pick_product, unpriced_extra_pick_product] }
|
246
|
+
before do
|
247
|
+
subject.select_extra_picks(extras)
|
248
|
+
end
|
249
|
+
|
250
|
+
it 'should select all the extra pick configurations' do
|
251
|
+
expect(subject.extra_pick_configurations.all?(&:selected?)).to be true
|
252
|
+
end
|
253
|
+
end
|
254
|
+
|
255
|
+
context '#select_extra_pick' do
|
256
|
+
context 'when the extra pick does not exist' do
|
257
|
+
it 'should raise an exception' do
|
258
|
+
expect { subject.select_extra_pick(product) }.to raise_error(
|
259
|
+
ArgumentError,
|
260
|
+
'That extra pick does not belong to the product'
|
261
|
+
)
|
262
|
+
end
|
263
|
+
end
|
264
|
+
end
|
265
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'quick_travel/setting'
|
3
|
+
|
4
|
+
describe QuickTravel::Checkout do
|
5
|
+
subject {
|
6
|
+
VCR.use_cassette 'settings_basic' do
|
7
|
+
QuickTravel::Setting.basic
|
8
|
+
end
|
9
|
+
}
|
10
|
+
|
11
|
+
specify do
|
12
|
+
expect(subject.vehicle_optional_fields).to eq %w(weight registration)
|
13
|
+
expect(subject.default_passenger_type_id).to eq 1
|
14
|
+
expect(subject.time_zone).to eq 'Australia/Adelaide'
|
15
|
+
expect(subject.ob_num_pax_requiring_details).to eq 'none'
|
16
|
+
expect(subject.person_titles).to eq %w(Mr Mrs Ms Miss)
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://test.qt.sealink.com.au:8080/api/settings/basic.json
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: access_key=<QT_KEY>
|
9
|
+
headers:
|
10
|
+
Content-Length:
|
11
|
+
- '0'
|
12
|
+
response:
|
13
|
+
status:
|
14
|
+
code: 200
|
15
|
+
message: 'OK '
|
16
|
+
headers:
|
17
|
+
P3p:
|
18
|
+
- CP="IDC DSP CAO COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
|
19
|
+
Content-Type:
|
20
|
+
- application/json; charset=utf-8
|
21
|
+
X-Ua-Compatible:
|
22
|
+
- IE=Edge,chrome=1
|
23
|
+
Etag:
|
24
|
+
- '"168ce77e85be5b01489cbdeb4579ae80"'
|
25
|
+
Cache-Control:
|
26
|
+
- max-age=0, private, must-revalidate
|
27
|
+
X-Request-Id:
|
28
|
+
- 9bc0325ad1d87df4cfeabe842fd54665
|
29
|
+
X-Runtime:
|
30
|
+
- '0.162131'
|
31
|
+
Vary:
|
32
|
+
- Origin
|
33
|
+
Date:
|
34
|
+
- Fri, 01 Jan 2016 02:35:07 GMT
|
35
|
+
X-Rack-Cache:
|
36
|
+
- miss
|
37
|
+
X-Content-Type-Options:
|
38
|
+
- nosniff
|
39
|
+
X-Download-Options:
|
40
|
+
- noopen
|
41
|
+
X-Frame-Options:
|
42
|
+
- sameorigin
|
43
|
+
X-Permitted-Cross-Domain-Policies:
|
44
|
+
- none
|
45
|
+
X-Xss-Protection:
|
46
|
+
- 1; mode=block
|
47
|
+
Server:
|
48
|
+
- WEBrick/1.3.1 (Ruby/2.2.5/2016-04-26)
|
49
|
+
Content-Length:
|
50
|
+
- '195'
|
51
|
+
Connection:
|
52
|
+
- Keep-Alive
|
53
|
+
Set-Cookie:
|
54
|
+
- _session_id=BAh7B0kiD3Nlc3Npb25faWQGOgZFVEkiJTA1MTMxYmM3MzVkODRmNDc3ZTJkYzdjMTQ5YzM3M2Q3BjsAVEkiCXVzZXIGOwBGaQY%3D--a046d093f16ee7b3088c89116f6cfe2d12594657;
|
55
|
+
path=/; HttpOnly
|
56
|
+
body:
|
57
|
+
encoding: UTF-8
|
58
|
+
string: '{"vehicle_optional_fields":["weight","registration"],"default_passenger_type_id":1,"time_zone":"Australia/Adelaide","ob_num_pax_requiring_details":"none","person_titles":["Mr","Mrs","Ms","Miss"]}'
|
59
|
+
http_version:
|
60
|
+
recorded_at: Tue, 23 May 2017 04:09:58 GMT
|
61
|
+
recorded_with: VCR 3.0.3
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: quicktravel_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Noack
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2017-02
|
13
|
+
date: 2017-06-02 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: httparty
|
@@ -40,20 +40,6 @@ dependencies:
|
|
40
40
|
- - ">="
|
41
41
|
- !ruby/object:Gem::Version
|
42
42
|
version: '0'
|
43
|
-
- !ruby/object:Gem::Dependency
|
44
|
-
name: geokit
|
45
|
-
requirement: !ruby/object:Gem::Requirement
|
46
|
-
requirements:
|
47
|
-
- - "~>"
|
48
|
-
- !ruby/object:Gem::Version
|
49
|
-
version: 1.8.3
|
50
|
-
type: :runtime
|
51
|
-
prerelease: false
|
52
|
-
version_requirements: !ruby/object:Gem::Requirement
|
53
|
-
requirements:
|
54
|
-
- - "~>"
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
version: 1.8.3
|
57
43
|
- !ruby/object:Gem::Dependency
|
58
44
|
name: activesupport
|
59
45
|
requirement: !ruby/object:Gem::Requirement
|
@@ -347,6 +333,7 @@ files:
|
|
347
333
|
- lib/quick_travel/route_stop.rb
|
348
334
|
- lib/quick_travel/search.rb
|
349
335
|
- lib/quick_travel/service.rb
|
336
|
+
- lib/quick_travel/setting.rb
|
350
337
|
- lib/quick_travel/status.rb
|
351
338
|
- lib/quick_travel/trip.rb
|
352
339
|
- lib/quick_travel/vehicle.rb
|
@@ -363,6 +350,7 @@ files:
|
|
363
350
|
- spec/passenger_type_spec.rb
|
364
351
|
- spec/payment_type_spec.rb
|
365
352
|
- spec/price_quote_spec.rb
|
353
|
+
- spec/product_configuration_spec.rb
|
366
354
|
- spec/product_spec.rb
|
367
355
|
- spec/product_type_spec.rb
|
368
356
|
- spec/products/scheduled_trip_spec.rb
|
@@ -372,6 +360,7 @@ files:
|
|
372
360
|
- spec/resource_category_spec.rb
|
373
361
|
- spec/resource_spec.rb
|
374
362
|
- spec/route_spec.rb
|
363
|
+
- spec/setting_spec.rb
|
375
364
|
- spec/spec_helper.rb
|
376
365
|
- spec/status_spec.rb
|
377
366
|
- spec/support/cassettes/accommodation_reserve.yml
|
@@ -409,6 +398,7 @@ files:
|
|
409
398
|
- spec/support/cassettes/resource_fare_bases.yml
|
410
399
|
- spec/support/cassettes/resource_show.yml
|
411
400
|
- spec/support/cassettes/resource_with_price.yml
|
401
|
+
- spec/support/cassettes/settings_basic.yml
|
412
402
|
- spec/support/cassettes/tenant_switcher.yml
|
413
403
|
- spec/support/cassettes/wrong_url.yml
|
414
404
|
- spec/support/coverage_loader.rb
|
@@ -433,7 +423,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
433
423
|
version: '0'
|
434
424
|
requirements: []
|
435
425
|
rubyforge_project:
|
436
|
-
rubygems_version: 2.
|
426
|
+
rubygems_version: 2.5.2
|
437
427
|
signing_key:
|
438
428
|
specification_version: 4
|
439
429
|
summary: Booking process using QuickTravel API
|
@@ -447,6 +437,7 @@ test_files:
|
|
447
437
|
- spec/passenger_type_spec.rb
|
448
438
|
- spec/payment_type_spec.rb
|
449
439
|
- spec/price_quote_spec.rb
|
440
|
+
- spec/product_configuration_spec.rb
|
450
441
|
- spec/product_spec.rb
|
451
442
|
- spec/product_type_spec.rb
|
452
443
|
- spec/products/scheduled_trip_spec.rb
|
@@ -456,6 +447,7 @@ test_files:
|
|
456
447
|
- spec/resource_category_spec.rb
|
457
448
|
- spec/resource_spec.rb
|
458
449
|
- spec/route_spec.rb
|
450
|
+
- spec/setting_spec.rb
|
459
451
|
- spec/spec_helper.rb
|
460
452
|
- spec/status_spec.rb
|
461
453
|
- spec/support/cassettes/accommodation_reserve.yml
|
@@ -493,6 +485,7 @@ test_files:
|
|
493
485
|
- spec/support/cassettes/resource_fare_bases.yml
|
494
486
|
- spec/support/cassettes/resource_show.yml
|
495
487
|
- spec/support/cassettes/resource_with_price.yml
|
488
|
+
- spec/support/cassettes/settings_basic.yml
|
496
489
|
- spec/support/cassettes/tenant_switcher.yml
|
497
490
|
- spec/support/cassettes/wrong_url.yml
|
498
491
|
- spec/support/coverage_loader.rb
|