quicktravel_client 3.9.0 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2d3388b310dd9bf0f503277b7fea3f329e692600cf9db6cf53ae8c8882246f0f
4
- data.tar.gz: cb262cc43f77f388ec5250840338a1e2136ed142b5adbe4ffd798b07e62953e4
3
+ metadata.gz: 5007469a12b06055c4cd7b9ae331a99ffc041952348ccad994ab11de51069e79
4
+ data.tar.gz: e57da3eb9ef8ff2f49283a9de910d5ffbb4c424f965f96fb8175d6ea452795e1
5
5
  SHA512:
6
- metadata.gz: 64080794df1529bc263e7e641223d8e8c741289c426d97748c6afb62026eb71141d502462e844c33c4028526825823b895862c6ef0b80a99343304f31c2ad8a0
7
- data.tar.gz: a9ba238eed20b7276eb7a9d4253843d0374a197c07a149c2b3b98c9da1477993ef0eab3f8d7678a10bb44f8d87ef0b88f40688523fa58441756317b11aeafb43
6
+ metadata.gz: 24d5ba5f79aedf800a3fbd40c793a13dab2bfb48f91059460293aa757e5aea062f850b290e2b3b72e83c2269de5a675e9d5dfee761ef7555ba47aa3bc24f8928
7
+ data.tar.gz: ecb835442572758fe0b02d953bf978f2af920396396e7d9a6937917d5636fd8663e3ce0672fbcf39fed76652acdbb7dd4582f0c0bd19b3827123cb861df77081
@@ -1 +1 @@
1
- 2.5.0
1
+ 2.7.1
@@ -1,15 +1,14 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.2
4
- - 2.3
5
- - 2.4
6
3
  - 2.5
4
+ - 2.6
5
+ - 2.7
7
6
  before_install:
8
- - gem install bundler --version "1.17.3"
7
+ - gem install bundler
9
8
  script: bundle && bundle exec rake spec
10
9
  gemfile:
11
- - gemfiles/rails4.gemfile
12
10
  - gemfiles/rails5.gemfile
11
+ - gemfiles/rails6.gemfile
13
12
  notifications:
14
13
  email:
15
14
  - support@travellink.com.au
@@ -3,6 +3,9 @@ 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
+ ## [4.0.0]
7
+ - [TT-7385] Update Money dependency, test against Ruby 2.7 / Rails 6
8
+
6
9
  ## [3.9.0]
7
10
  ### Added
8
11
  - [DC-3115] Add customer comments method in booking
@@ -0,0 +1,8 @@
1
+ source 'https://rubygems.org'
2
+ gemspec :path => '../'
3
+
4
+ group :development, :test do
5
+ gem 'activesupport', '~> 6.0'
6
+ gem 'activerecord', '~> 6.0'
7
+ gem 'actionpack', '~> 6.0'
8
+ end
@@ -2,6 +2,7 @@
2
2
  #
3
3
  module QuickTravel
4
4
  require 'active_support' # for .try, etc.
5
+ require 'money_extensions'
5
6
 
6
7
  require 'quick_travel/cache'
7
8
  require 'quick_travel/config'
@@ -13,7 +13,7 @@ module QuickTravel
13
13
  end
14
14
 
15
15
  def self.find_by_reference(reference)
16
- find_all!("#{api_base}/reference/#{URI.escape(reference)}.json").first
16
+ find_all!("#{api_base}/reference/#{URI.encode_www_form_component(reference)}.json").first
17
17
  end
18
18
 
19
19
  def documents(regenerate = false)
@@ -11,13 +11,20 @@ module QuickTravel
11
11
  cache_options ||= {}
12
12
  key = "#{@@namespace}_#{key}" unless cache_options[:disable_namespacing]
13
13
  cached_value = cache_store.read(key)
14
- return cached_value unless cached_value.nil?
14
+ return cached_value unless cache_empty?(cached_value)
15
15
  return nil unless block_given?
16
16
  cache_options ||= {}
17
17
  cache_options[:expires_in] = 1.day unless cache_options.key?(:expires_in)
18
18
  yield.tap { |value| cache_store.write(key, value, cache_options) }
19
19
  end
20
20
 
21
+ def self.cache_empty?(cached_value)
22
+ if cached_value.respond_to?(:body)
23
+ return cached_value.body.nil? || cached_value.body.empty?
24
+ end
25
+ cached_value.nil?
26
+ end
27
+
21
28
  def self.delete(key, namespace = true)
22
29
  key = "#{@@namespace}_#{key}" if namespace
23
30
  cache_store.delete(key)
@@ -13,7 +13,7 @@ module QuickTravel
13
13
  end
14
14
 
15
15
  def self.pluralize(count, singular, plural = nil)
16
- "#{count || 0} " + ((count == 1 || count =~ /^1(\.0+)?$/) ? singular : (plural || singular.pluralize))
16
+ "#{count || 0} " + ((count == 1) ? singular : (plural || singular.pluralize))
17
17
  end
18
18
  end
19
19
  end
@@ -1,3 +1,3 @@
1
1
  module QuickTravel
2
- VERSION = '3.9.0'
2
+ VERSION = '4.0.0'
3
3
  end
@@ -16,14 +16,14 @@ Gem::Specification.new do |spec|
16
16
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
17
17
  spec.require_paths = ['lib']
18
18
 
19
- spec.add_dependency 'httparty', '~> 0.17'
20
- spec.add_dependency 'json'
21
- spec.add_dependency 'activesupport', '>= 2.0.0'
19
+ spec.add_dependency 'httparty'
20
+ spec.add_dependency 'activesupport', '>= 5.0.0'
22
21
  spec.add_dependency 'facets'
23
- spec.add_dependency 'money', '>= 3.0', '< 6.0' # 6.0 starts to deprecate/split
22
+ spec.add_dependency 'money', '>= 6.0'
23
+ spec.add_dependency 'money_extensions', '>= 1.0'
24
24
  spec.add_dependency 'will_paginate'
25
25
 
26
- spec.add_development_dependency 'bundler', '~> 1.7'
26
+ spec.add_development_dependency 'bundler', '~> 2'
27
27
  spec.add_development_dependency 'rake'
28
28
  spec.add_development_dependency 'rspec'
29
29
  spec.add_development_dependency 'rspec-its'
@@ -26,9 +26,9 @@ describe 'Booking price_changes' do
26
26
 
27
27
  specify { expect(price_change.target.type).to eq 'Booking' }
28
28
  specify { expect(price_change.target.id).to eq booking.id }
29
- specify { expect(price_change.original_price).to eq 640.00 }
30
- specify { expect(price_change.changed_price).to eq 380.00 }
31
- specify { expect(price_change.price_change).to eq(-260.00) }
29
+ specify { expect(price_change.original_price).to eq 640.00.to_money }
30
+ specify { expect(price_change.changed_price).to eq 380.00.to_money }
31
+ specify { expect(price_change.price_change).to eq(-260.00.to_money) }
32
32
  specify do
33
33
  expect(price_change.reservation_price_changes.count).to(
34
34
  eq booking.reservations.count)
@@ -43,9 +43,9 @@ describe 'Booking price_changes' do
43
43
 
44
44
  specify { expect(price_change.target.type).to eq 'Reservation' }
45
45
  specify { expect(price_change.target.id).to eq reservation.id }
46
- specify { expect(price_change.original_price).to eq 400.00 }
47
- specify { expect(price_change.changed_price).to eq 200.00 }
48
- specify { expect(price_change.price_change).to eq(-200) }
46
+ specify { expect(price_change.original_price).to eq 400.00.to_money }
47
+ specify { expect(price_change.changed_price).to eq 200.00.to_money }
48
+ specify { expect(price_change.price_change).to eq(-200.to_money) }
49
49
  end
50
50
 
51
51
  context 'the total price_change applied on the top level reservation' do
@@ -57,9 +57,9 @@ describe 'Booking price_changes' do
57
57
 
58
58
  specify { expect(price_change.target.type).to eq 'Reservation' }
59
59
  specify { expect(price_change.target.id).to eq reservation.id }
60
- specify { expect(price_change.original_price).to eq 640.00 }
61
- specify { expect(price_change.changed_price).to eq 380.00 }
62
- specify { expect(price_change.price_change).to eq(-260.00) }
60
+ specify { expect(price_change.original_price).to eq 640.00.to_money }
61
+ specify { expect(price_change.changed_price).to eq 380.00.to_money }
62
+ specify { expect(price_change.price_change).to eq(-260.00.to_money) }
63
63
  end
64
64
 
65
65
  context 'the price_change applied on the first extra pick' do
@@ -71,9 +71,9 @@ describe 'Booking price_changes' do
71
71
 
72
72
  specify { expect(price_change.target.type).to eq 'Reservation' }
73
73
  specify { expect(price_change.target.id).to eq extra_pick_without_price_change.id }
74
- specify { expect(price_change.original_price).to eq 120 }
75
- specify { expect(price_change.changed_price).to eq 120 }
76
- specify { expect(price_change.price_change).to eq 0 }
74
+ specify { expect(price_change.original_price).to eq 120.to_money }
75
+ specify { expect(price_change.changed_price).to eq 120.to_money }
76
+ specify { expect(price_change.price_change).to eq 0.to_money }
77
77
  end
78
78
 
79
79
  context 'the total price_change applied on the first extra pick' do
@@ -85,9 +85,9 @@ describe 'Booking price_changes' do
85
85
 
86
86
  specify { expect(price_change.target.type).to eq 'Reservation' }
87
87
  specify { expect(price_change.target.id).to eq extra_pick_without_price_change.id }
88
- specify { expect(price_change.original_price).to eq 120 }
89
- specify { expect(price_change.changed_price).to eq 120 }
90
- specify { expect(price_change.price_change).to eq 0 }
88
+ specify { expect(price_change.original_price).to eq 120.to_money }
89
+ specify { expect(price_change.changed_price).to eq 120.to_money }
90
+ specify { expect(price_change.price_change).to eq 0.to_money }
91
91
  end
92
92
 
93
93
  context 'the price_change applied on second extra pick' do
@@ -99,9 +99,9 @@ describe 'Booking price_changes' do
99
99
 
100
100
  specify { expect(price_change.target.type).to eq 'Reservation' }
101
101
  specify { expect(price_change.target.id).to eq extra_pick_with_price_change.id }
102
- specify { expect(price_change.original_price).to eq 120.00 }
103
- specify { expect(price_change.changed_price).to eq 60.00 }
104
- specify { expect(price_change.price_change).to eq(-60.00) }
102
+ specify { expect(price_change.original_price).to eq 120.00.to_money }
103
+ specify { expect(price_change.changed_price).to eq 60.00.to_money }
104
+ specify { expect(price_change.price_change).to eq(-60.00.to_money) }
105
105
  end
106
106
 
107
107
  context 'the total price_change applied on second extra pick' do
@@ -113,9 +113,9 @@ describe 'Booking price_changes' do
113
113
 
114
114
  specify { expect(price_change.target.type).to eq 'Reservation' }
115
115
  specify { expect(price_change.target.id).to eq extra_pick_with_price_change.id }
116
- specify { expect(price_change.original_price).to eq 120.00 }
117
- specify { expect(price_change.changed_price).to eq 60.00 }
118
- specify { expect(price_change.price_change).to eq(-60.00) }
116
+ specify { expect(price_change.original_price).to eq 120.00.to_money }
117
+ specify { expect(price_change.changed_price).to eq 60.00.to_money }
118
+ specify { expect(price_change.price_change).to eq(-60.00.to_money) }
119
119
  end
120
120
  end
121
121
  end
@@ -27,6 +27,11 @@ end
27
27
  require 'quick_travel/connection_error'
28
28
  require 'quick_travel/cache'
29
29
 
30
+ Money.default_currency = Money::Currency.new("AUD")
31
+ Money.locale_backend = nil
32
+ Money.default_formatting_rules = { thousands_separator: "," }
33
+ Money.rounding_mode = BigDecimal::ROUND_HALF_UP
34
+
30
35
  class HashCache
31
36
  def initialize
32
37
  @cache = {}
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: 3.9.0
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Noack
@@ -10,24 +10,10 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2020-02-26 00:00:00.000000000 Z
13
+ date: 2020-06-02 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: httparty
17
- requirement: !ruby/object:Gem::Requirement
18
- requirements:
19
- - - "~>"
20
- - !ruby/object:Gem::Version
21
- version: '0.17'
22
- type: :runtime
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- requirements:
26
- - - "~>"
27
- - !ruby/object:Gem::Version
28
- version: '0.17'
29
- - !ruby/object:Gem::Dependency
30
- name: json
31
17
  requirement: !ruby/object:Gem::Requirement
32
18
  requirements:
33
19
  - - ">="
@@ -46,14 +32,14 @@ dependencies:
46
32
  requirements:
47
33
  - - ">="
48
34
  - !ruby/object:Gem::Version
49
- version: 2.0.0
35
+ version: 5.0.0
50
36
  type: :runtime
51
37
  prerelease: false
52
38
  version_requirements: !ruby/object:Gem::Requirement
53
39
  requirements:
54
40
  - - ">="
55
41
  - !ruby/object:Gem::Version
56
- version: 2.0.0
42
+ version: 5.0.0
57
43
  - !ruby/object:Gem::Dependency
58
44
  name: facets
59
45
  requirement: !ruby/object:Gem::Requirement
@@ -73,9 +59,6 @@ dependencies:
73
59
  requirement: !ruby/object:Gem::Requirement
74
60
  requirements:
75
61
  - - ">="
76
- - !ruby/object:Gem::Version
77
- version: '3.0'
78
- - - "<"
79
62
  - !ruby/object:Gem::Version
80
63
  version: '6.0'
81
64
  type: :runtime
@@ -83,11 +66,22 @@ dependencies:
83
66
  version_requirements: !ruby/object:Gem::Requirement
84
67
  requirements:
85
68
  - - ">="
86
- - !ruby/object:Gem::Version
87
- version: '3.0'
88
- - - "<"
89
69
  - !ruby/object:Gem::Version
90
70
  version: '6.0'
71
+ - !ruby/object:Gem::Dependency
72
+ name: money_extensions
73
+ requirement: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: '1.0'
78
+ type: :runtime
79
+ prerelease: false
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - ">="
83
+ - !ruby/object:Gem::Version
84
+ version: '1.0'
91
85
  - !ruby/object:Gem::Dependency
92
86
  name: will_paginate
93
87
  requirement: !ruby/object:Gem::Requirement
@@ -108,14 +102,14 @@ dependencies:
108
102
  requirements:
109
103
  - - "~>"
110
104
  - !ruby/object:Gem::Version
111
- version: '1.7'
105
+ version: '2'
112
106
  type: :development
113
107
  prerelease: false
114
108
  version_requirements: !ruby/object:Gem::Requirement
115
109
  requirements:
116
110
  - - "~>"
117
111
  - !ruby/object:Gem::Version
118
- version: '1.7'
112
+ version: '2'
119
113
  - !ruby/object:Gem::Dependency
120
114
  name: rake
121
115
  requirement: !ruby/object:Gem::Requirement
@@ -288,8 +282,8 @@ files:
288
282
  - Rakefile
289
283
  - examples/example_config.rb
290
284
  - examples/login_example.rb
291
- - gemfiles/rails4.gemfile
292
285
  - gemfiles/rails5.gemfile
286
+ - gemfiles/rails6.gemfile
293
287
  - lib/extensions.rb
294
288
  - lib/quick_travel.rb
295
289
  - lib/quick_travel/accommodation.rb
@@ -463,8 +457,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
463
457
  - !ruby/object:Gem::Version
464
458
  version: '0'
465
459
  requirements: []
466
- rubyforge_project:
467
- rubygems_version: 2.7.3
460
+ rubygems_version: 3.1.2
468
461
  signing_key:
469
462
  specification_version: 4
470
463
  summary: Booking process using QuickTravel API
@@ -1,9 +0,0 @@
1
- source 'https://rubygems.org'
2
- gemspec :path => '../'
3
-
4
- group :development, :test do
5
- gem 'activesupport', '~> 4.2'
6
- gem 'activerecord', '~> 4.2'
7
- gem 'actionpack', '~> 4.2'
8
- end
9
-