taxjar-ruby 2.6.1 → 3.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: 84ef63efbddeaaa3856a3669b75a50bf3e6d90c0b2dfc12891945162ec747bc1
4
- data.tar.gz: 18173e0e6a657336b2b381fdc1a22acb324f187ae00c660e5909f9c56b0b88fb
3
+ metadata.gz: 47a7bd26490bf919e6339a26097c87d7d9dd0b09ea6214b87070243da422d03c
4
+ data.tar.gz: ba4de289c2768c0e52effab858cd0569c3a43f524c34698bafc3cbea8e0eab4f
5
5
  SHA512:
6
- metadata.gz: 2e85e478e34727b5687912abb218bce9953d61ceaf78091b66393b73cfaab8cf75112d174f51500887b52bd2668558ca5afc8b66516403fa42081b444d65053d
7
- data.tar.gz: 0b00f38c928143deaa4329515b57aab9285ddb434c6abe6bc822c824da0a0303647a018ca888cae7f9c05f2e886d81f527993fe8eec62e9b35cb3b79c21be239
6
+ metadata.gz: 7dbea4df68a8bd664c86507f8b266aa1a5901aad30f9b558d8d0e4fa999d36c887a0b6b5acebf511f0a67d8a812d98c60f0693fa4a54057e201765ea67db7ab3
7
+ data.tar.gz: d152b6c9d34c19fbae78386346d63aa6bab0ac8d95197a7fa700bb7f2c4ea5da5fede05c6f7458f138febeb7a4065c542cf4c86c7bb320474856352858c67d56
@@ -1,16 +1,10 @@
1
1
  language: ruby
2
2
 
3
3
  rvm:
4
- - "2.0"
5
- - "2.1"
6
- - "2.2"
7
4
  - "2.3"
8
5
  - "2.4"
9
6
  - "2.5"
10
7
  - "2.6"
8
+ - "2.7"
11
9
 
12
10
  script: bundle exec rspec
13
-
14
- before_install:
15
- - gem uninstall -v '>= 2' -i $(rvm gemdir)@global -ax bundler || true
16
- - gem install bundler -v '< 2'
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [3.0.0] - 2020-04-03
11
+ - Add information to custom user agent for debugging and informational purposes
12
+ - Update required Ruby version from 2.0 to 2.3 or higher
13
+ - Update HTTP (The Gem) to version 4.3
14
+ - Relax bundler (development dependency) version requirements
15
+
10
16
  ## [2.6.1] - 2019-10-23
11
17
  - Parse all responses as JSON and improve error handling for non-JSON [#51](https://github.com/taxjar/taxjar-ruby/pull/51)
12
18
 
@@ -37,7 +43,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
37
43
  - Update minimum required Ruby version to 2.0
38
44
  - Update HTTP (The Gem) to 2.2
39
45
 
40
- [Unreleased]: https://github.com/taxjar/taxjar-ruby/compare/v2.6.1...HEAD
46
+ [Unreleased]: https://github.com/taxjar/taxjar-ruby/compare/v3.0.0...HEAD
47
+ [3.0.0]: https://github.com/taxjar/taxjar-ruby/compare/v2.6.1...v3.0.0
41
48
  [2.6.1]: https://github.com/taxjar/taxjar-ruby/compare/v2.6.0...v2.6.1
42
49
  [2.6.0]: https://github.com/taxjar/taxjar-ruby/compare/v2.5.0...v2.6.0
43
50
  [2.5.0]: https://github.com/taxjar/taxjar-ruby/compare/v2.4.1...v2.5.0
data/README.md CHANGED
@@ -27,7 +27,7 @@ A Ruby interface to the TaxJar [Sales Tax API](https://developers.taxjar.com/api
27
27
 
28
28
  ## Supported Ruby Versions
29
29
 
30
- Ruby 2.0 or greater
30
+ Ruby 2.3 or greater
31
31
 
32
32
  ## Gem Dependencies
33
33
 
@@ -38,7 +38,14 @@ module Taxjar
38
38
  end
39
39
 
40
40
  def user_agent
41
- "TaxjarRubyGem/#{Taxjar::Version}"
41
+ def platform
42
+ (`uname -a` || '').strip
43
+ rescue Errno::ENOENT, Errno::ENOMEM
44
+ ''
45
+ end
46
+ ruby_version = "ruby #{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}"
47
+ openSSL_version = OpenSSL::OPENSSL_LIBRARY_VERSION
48
+ "TaxJar/Ruby (#{platform}; #{ruby_version}; #{openSSL_version}) taxjar-ruby/#{Taxjar::Version}"
42
49
  end
43
50
  end
44
51
  end
@@ -2,15 +2,15 @@ module Taxjar
2
2
  module Version
3
3
  module_function
4
4
  def major
5
- 2
5
+ 3
6
6
  end
7
7
 
8
8
  def minor
9
- 6
9
+ 0
10
10
  end
11
11
 
12
12
  def patch
13
- 1
13
+ 0
14
14
  end
15
15
 
16
16
  def pre
@@ -41,7 +41,7 @@ describe Taxjar::API::Request do
41
41
  it 'should return headers' do
42
42
  expect(subject).to respond_to(:headers)
43
43
  expect(subject.headers).to be_instance_of(Hash)
44
- expect(subject.headers[:user_agent]).to match('TaxjarRubyGem')
44
+ expect(subject.headers[:user_agent]).to match(/^TaxJar\/Ruby \(.+\) taxjar-ruby\/\d+\.\d+\.\d+$/)
45
45
  expect(subject.headers[:authorization]).to eq('Bearer AK')
46
46
  end
47
47
 
@@ -52,7 +52,7 @@ describe Taxjar::API::Request do
52
52
  subject = Taxjar::API::Request.new(client, :get, '/api_path', 'object')
53
53
  expect(subject).to respond_to(:headers)
54
54
  expect(subject.headers).to be_instance_of(Hash)
55
- expect(subject.headers[:user_agent]).to match('TaxjarRubyGem')
55
+ expect(subject.headers[:user_agent]).to match(/^TaxJar\/Ruby \(.+\) taxjar-ruby\/\d+\.\d+\.\d+$/)
56
56
  expect(subject.headers[:authorization]).to eq('Bearer AK')
57
57
  expect(subject.headers['X-TJ-Expected-Response']).to eq(422)
58
58
  end
@@ -124,8 +124,7 @@ describe Taxjar::API::Request do
124
124
  it "runs through the proxy" do
125
125
  stub_request(:get, "https://api.taxjar.com/api_path").
126
126
  with(:headers => {'Authorization'=>'Bearer AK', 'Connection'=>'close',
127
- 'Host'=>'api.taxjar.com',
128
- 'User-Agent'=>"TaxjarRubyGem/#{Taxjar::Version.to_s}"}).
127
+ 'Host'=>'api.taxjar.com'}).
129
128
  to_return(:status => 200, :body => '{"object": {"id": "3"}}',
130
129
  :headers => {content_type: 'application/json; charset=UTF-8'})
131
130
 
@@ -138,8 +137,7 @@ describe Taxjar::API::Request do
138
137
  it 'should return a body if no errors' do
139
138
  stub_request(:get, "https://api.taxjar.com/api_path").
140
139
  with(:headers => {'Authorization'=>'Bearer AK', 'Connection'=>'close',
141
- 'Host'=>'api.taxjar.com',
142
- 'User-Agent'=>"TaxjarRubyGem/#{Taxjar::Version.to_s}"}).
140
+ 'Host'=>'api.taxjar.com'}).
143
141
  to_return(:status => 200, :body => '{"object": {"id": "3"}}',
144
142
  :headers => {content_type: 'application/json; charset=UTF-8'})
145
143
 
@@ -159,8 +157,7 @@ describe Taxjar::API::Request do
159
157
  with(:body => "{\"city\":\"New York\"}",
160
158
  :headers => {'Authorization'=>'Bearer AK', 'Connection'=>'close',
161
159
  'Content-Type'=>'application/json; charset=UTF-8',
162
- 'Host'=>'api.taxjar.com',
163
- 'User-Agent'=>"TaxjarRubyGem/#{Taxjar::Version.to_s}"}).
160
+ 'Host'=>'api.taxjar.com'}).
164
161
  to_return(:status => 200, :body => '{"object": {"id": "3"}}',
165
162
  :headers => {content_type: 'application/json; charset=UTF-8'})
166
163
 
@@ -171,8 +168,7 @@ describe Taxjar::API::Request do
171
168
  it 'handles unexpected Content-Type responses' do
172
169
  stub_request(:get, "https://api.taxjar.com/api_path").
173
170
  with(:headers => {'Authorization'=>'Bearer AK', 'Connection'=>'close',
174
- 'Host'=>'api.taxjar.com',
175
- 'User-Agent'=>"TaxjarRubyGem/#{Taxjar::Version.to_s}"}).
171
+ 'Host'=>'api.taxjar.com'}).
176
172
  to_return(:status => 200, :body => 'Something unexpected',
177
173
  :headers => {content_type: 'text/html; charset=UTF-8'})
178
174
 
@@ -184,8 +180,7 @@ describe Taxjar::API::Request do
184
180
  it "raises #{exception}" do
185
181
  stub_request(:get, "https://api.taxjar.com/api_path").
186
182
  with(:headers => {'Authorization'=>'Bearer AK', 'Connection'=>'close',
187
- 'Host'=>'api.taxjar.com',
188
- 'User-Agent'=>"TaxjarRubyGem/#{Taxjar::Version.to_s}"}).
183
+ 'Host'=>'api.taxjar.com'}).
189
184
  to_return(:status => status,
190
185
  :body => '{"error": "Not Acceptable",
191
186
  "detail": "error explanation",
@@ -1,7 +1,7 @@
1
1
  require 'helper'
2
2
 
3
3
  describe Taxjar::Client do
4
- describe '#api_key?' do
4
+ describe '#api_key?' do
5
5
  it 'returns true if api_key is present' do
6
6
  client = Taxjar::Client.new(api_key: 'AK')
7
7
  expect(client.api_key?).to be true
@@ -25,14 +25,14 @@ describe Taxjar::Client do
25
25
  client.set_api_config('api_url', 'https://api.sandbox.taxjar.com')
26
26
  expect(client.api_url).to eq('https://api.sandbox.taxjar.com')
27
27
  end
28
-
28
+
29
29
  it 'sets new custom headers' do
30
30
  client = Taxjar::Client.new(api_key: 'AK')
31
31
  client.set_api_config('headers', { 'X-TJ-Expected-Response' => 422 })
32
32
  expect(client.headers).to eq({ 'X-TJ-Expected-Response' => 422 })
33
33
  end
34
34
  end
35
-
35
+
36
36
  describe "#get_api_config" do
37
37
  it 'gets a config value' do
38
38
  client = Taxjar::Client.new(api_key: 'AK')
@@ -44,7 +44,7 @@ describe Taxjar::Client do
44
44
  describe '#user_agent' do
45
45
  it 'returns string with version' do
46
46
  client = Taxjar::Client.new(api_key: 'AK')
47
- expect(client.user_agent).to eq("TaxjarRubyGem/#{Taxjar::Version}")
47
+ expect(client.user_agent).to match(/^TaxJar\/Ruby \(.+\) taxjar-ruby\/\d+\.\d+\.\d+$/)
48
48
  end
49
49
  end
50
50
  end
@@ -18,13 +18,13 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.required_ruby_version = '>= 2.0'
21
+ spec.required_ruby_version = '>= 2.3'
22
22
 
23
23
  spec.add_dependency 'addressable', '~> 2.3'
24
- spec.add_dependency 'http', '>= 1.0', '< 5.0'
24
+ spec.add_dependency 'http', '>= 4.3', '< 5.0'
25
25
  spec.add_dependency 'memoizable', '~> 0.4.0'
26
26
  spec.add_dependency 'model_attribute', '~> 3.2'
27
- spec.add_development_dependency "bundler", "~> 1.7"
27
+ spec.add_development_dependency "bundler", ">= 1.7", "< 3.0"
28
28
  spec.add_development_dependency "rake", "~> 12.0"
29
29
 
30
30
  if spec.respond_to?(:metadata)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: taxjar-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.1
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - TaxJar
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-14 00:00:00.000000000 Z
11
+ date: 2020-04-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -30,7 +30,7 @@ dependencies:
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '1.0'
33
+ version: '4.3'
34
34
  - - "<"
35
35
  - !ruby/object:Gem::Version
36
36
  version: '5.0'
@@ -40,7 +40,7 @@ dependencies:
40
40
  requirements:
41
41
  - - ">="
42
42
  - !ruby/object:Gem::Version
43
- version: '1.0'
43
+ version: '4.3'
44
44
  - - "<"
45
45
  - !ruby/object:Gem::Version
46
46
  version: '5.0'
@@ -76,16 +76,22 @@ dependencies:
76
76
  name: bundler
77
77
  requirement: !ruby/object:Gem::Requirement
78
78
  requirements:
79
- - - "~>"
79
+ - - ">="
80
80
  - !ruby/object:Gem::Version
81
81
  version: '1.7'
82
+ - - "<"
83
+ - !ruby/object:Gem::Version
84
+ version: '3.0'
82
85
  type: :development
83
86
  prerelease: false
84
87
  version_requirements: !ruby/object:Gem::Requirement
85
88
  requirements:
86
- - - "~>"
89
+ - - ">="
87
90
  - !ruby/object:Gem::Version
88
91
  version: '1.7'
92
+ - - "<"
93
+ - !ruby/object:Gem::Version
94
+ version: '3.0'
89
95
  - !ruby/object:Gem::Dependency
90
96
  name: rake
91
97
  requirement: !ruby/object:Gem::Requirement
@@ -189,14 +195,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
189
195
  requirements:
190
196
  - - ">="
191
197
  - !ruby/object:Gem::Version
192
- version: '2.0'
198
+ version: '2.3'
193
199
  required_rubygems_version: !ruby/object:Gem::Requirement
194
200
  requirements:
195
201
  - - ">="
196
202
  - !ruby/object:Gem::Version
197
203
  version: '0'
198
204
  requirements: []
199
- rubygems_version: 3.0.4
205
+ rubygems_version: 3.1.2
200
206
  signing_key:
201
207
  specification_version: 4
202
208
  summary: Ruby wrapper for Taxjar API