quicktravel_client 3.9.0 → 4.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 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
-