taxjar-ruby 1.3.2 → 1.4.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: 58b4f7159bfee99aa7cd567c5d14e1118b1175af
4
- data.tar.gz: 71ce92518b60d1df15a105954a1ffc5cb6a13d08
3
+ metadata.gz: 6b8f47a3dccc5ce41e6c36297953638274b5f1f4
4
+ data.tar.gz: ffb92cb9d29554225ee27380086850bd8763a688
5
5
  SHA512:
6
- metadata.gz: da492304e569b09862873f9460acf514c0ccc7c8259b9725aefa4b5cf60cf59feb49e19806a231ffab7bd3a14fa4b0007c9cfbeaa083505bfa644bf54fa442d1
7
- data.tar.gz: dce51939dc6e0cff6d650a80557fd920ddb5d2fcd6ce5e4d3e1c4ab81d9fc173f58c889301659c46abb53e818aff6d9ebada0471ca9bf1fa3de964346a4b3abc
6
+ metadata.gz: 101575da685631cd9554afd16fff94c3e21af3bc540844694224b779f67c95e06a4de76fc9e4c958f58cb162f08955d94a3256b3eb3642a9f8fd6e8ba746720c
7
+ data.tar.gz: 1ee17ce797f68e7d5521db14d3d257fa6c8b1eb51ce7bec999de1857f33560310ea2fc875586de954fcd96f0c5f6ba0bd656b1bed65d4fc8daddff47901a15c8
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2015 Tim Case
1
+ Copyright (c) 2016 TaxJar, http://www.taxjar.com
2
2
 
3
3
  MIT License
4
4
 
data/README.md CHANGED
@@ -181,7 +181,7 @@ client.tax_for_order({
181
181
  :from_country => 'US',
182
182
  :from_zip => '92093',
183
183
  :from_city => 'San Diego',
184
- :amount => 16.50,
184
+ :amount => 15.0,
185
185
  :shipping => 1.5,
186
186
  :nexus_addresses => [{:address_id => 1,
187
187
  :country => 'US',
@@ -191,7 +191,7 @@ client.tax_for_order({
191
191
  :street => '1218 State St.'}],
192
192
  :line_items => [{:quantity => 1,
193
193
  :unit_price => 15.0,
194
- :product_tax_code => 31000}]
194
+ :product_tax_code => 20010}]
195
195
  })
196
196
  ```
197
197
 
@@ -775,6 +775,47 @@ client.delete_refund(321)
775
775
  ]
776
776
  }>
777
777
  ```
778
+ ### List nexus regions
779
+
780
+ #### Definition
781
+
782
+ ```ruby
783
+ client.nexus_regions
784
+ ```
785
+
786
+ #### Example Request
787
+
788
+ ```ruby
789
+ require "taxjar"
790
+ client = Taxjar::Client.new(api_key: "9e0cd62a22f451701f29c3bde214")
791
+
792
+ nexus_regions = client.nexus_regions
793
+ ```
794
+
795
+ #### Example Response
796
+
797
+ ```ruby
798
+ [
799
+ {
800
+ :country_code => "US",
801
+ :country => "United States",
802
+ :region_code => "CA",
803
+ :region => "California"
804
+ },
805
+ {
806
+ :country_code => "US",
807
+ :country => "United States",
808
+ :region_code => "NY",
809
+ :region => "New York"
810
+ },
811
+ {
812
+ :country_code => "US",
813
+ :country => "United States",
814
+ :region_code => "WA",
815
+ :region => "Washington"
816
+ }
817
+ ]
818
+ ```
778
819
 
779
820
  ### Validate a VAT number
780
821
 
@@ -16,6 +16,10 @@ module Taxjar
16
16
  perform_post_with_object("/v2/taxes", 'tax', options, Taxjar::Tax)
17
17
  end
18
18
 
19
+ def nexus_regions(options = {})
20
+ perform_get_with_objects("/v2/nexus/regions", 'regions', options, Taxjar::NexusRegion)
21
+ end
22
+
19
23
  def validate(options = {})
20
24
  perform_get_with_object("/v2/validation", 'validation', options, Taxjar::Validation)
21
25
  end
@@ -0,0 +1,12 @@
1
+ require 'taxjar/base'
2
+
3
+ module Taxjar
4
+ class NexusRegion < Taxjar::Base
5
+ extend ModelAttribute
6
+
7
+ attribute :country_code, :string
8
+ attribute :country, :string
9
+ attribute :region_code, :string
10
+ attribute :region, :string
11
+ end
12
+ end
@@ -6,11 +6,11 @@ module Taxjar
6
6
  end
7
7
 
8
8
  def minor
9
- 3
9
+ 4
10
10
  end
11
11
 
12
12
  def patch
13
- 2
13
+ 0
14
14
  end
15
15
 
16
16
  def pre
data/lib/taxjar.rb CHANGED
@@ -4,6 +4,7 @@ require "taxjar/breakdown_line_item"
4
4
  require "taxjar/category"
5
5
  require "taxjar/client"
6
6
  require "taxjar/line_item"
7
+ require "taxjar/nexus_region"
7
8
  require "taxjar/order"
8
9
  require "taxjar/rate"
9
10
  require "taxjar/refund"
@@ -0,0 +1,22 @@
1
+ {
2
+ "regions": [
3
+ {
4
+ "country_code": "US",
5
+ "country": "United States",
6
+ "region_code": "CA",
7
+ "region": "California"
8
+ },
9
+ {
10
+ "country_code": "US",
11
+ "country": "United States",
12
+ "region_code": "NY",
13
+ "region": "New York"
14
+ },
15
+ {
16
+ "country_code": "US",
17
+ "country": "United States",
18
+ "region_code": "WA",
19
+ "region": "Washington"
20
+ }
21
+ ]
22
+ }
@@ -7,9 +7,7 @@ describe Taxjar::API do
7
7
 
8
8
  describe '#categories' do
9
9
  before do
10
- stub_get('/v2/categories').to_return(body: fixture('categories.json'),
11
- headers: {content_type: 'application/json; charset=utf-8'})
12
-
10
+ stub_get('/v2/categories').to_return(body: fixture('categories.json'), headers: { content_type: 'application/json; charset=utf-8' })
13
11
  end
14
12
 
15
13
  it 'requests the right resource' do
@@ -30,8 +28,7 @@ describe Taxjar::API do
30
28
  describe '#rate_for_location' do
31
29
  before do
32
30
  @postal_code = "90210"
33
- stub_get("/v2/rates/#{@postal_code}").to_return(body: fixture('rates.json'),
34
- headers: { content_type: 'application/json; charset=utf-8' })
31
+ stub_get("/v2/rates/#{@postal_code}").to_return(body: fixture('rates.json'), headers: { content_type: 'application/json; charset=utf-8' })
35
32
  end
36
33
 
37
34
  it 'requests the right resource' do
@@ -58,8 +55,7 @@ describe Taxjar::API do
58
55
  before do
59
56
  @postal_code = "00150"
60
57
  @params = "city=Helsinki&country=FI"
61
- stub_get("/v2/rates/#{@postal_code}?#{@params}").to_return(body: fixture('rates_intl.json'),
62
- headers: { content_type: 'application/json; charset=utf-8' })
58
+ stub_get("/v2/rates/#{@postal_code}?#{@params}").to_return(body: fixture('rates_intl.json'), headers: { content_type: 'application/json; charset=utf-8' })
63
59
  end
64
60
 
65
61
  it 'requests the right resource' do
@@ -157,11 +153,31 @@ describe Taxjar::API do
157
153
  end
158
154
  end
159
155
 
156
+ describe '#nexus_regions' do
157
+ before do
158
+ stub_get('/v2/nexus/regions').to_return(body: fixture('nexus_regions.json'), headers: { content_type: 'application/json; charset=utf-8' })
159
+ end
160
+
161
+ it 'requests the right resource' do
162
+ @client.nexus_regions
163
+ expect(a_get('/v2/nexus/regions')).to have_been_made
164
+ end
165
+
166
+ it 'returns the requested regions' do
167
+ regions = @client.nexus_regions
168
+ expect(regions).to be_an Array
169
+ expect(regions.first).to be_a Taxjar::NexusRegion
170
+ expect(regions.first.country_code).to eq('US')
171
+ expect(regions.first.country).to eq('United States')
172
+ expect(regions.first.region_code).to eq('CA')
173
+ expect(regions.first.region).to eq('California')
174
+ end
175
+ end
176
+
160
177
  describe '#validate' do
161
178
  before do
162
179
  @params = 'vat=FR40303265045'
163
- stub_get("/v2/validation?#{@params}").to_return(body: fixture('validation.json'),
164
- headers: {content_type: 'application/json; charset=utf-8'})
180
+ stub_get("/v2/validation?#{@params}").to_return(body: fixture('validation.json'), headers: { content_type: 'application/json; charset=utf-8' })
165
181
  @validation = {
166
182
  :vat => 'FR40303265045'
167
183
  }
@@ -188,8 +204,7 @@ describe Taxjar::API do
188
204
 
189
205
  describe '#summary_rates' do
190
206
  before do
191
- stub_get('/v2/summary_rates').to_return(body: fixture('summary_rates.json'),
192
- headers: {content_type: 'application/json; charset=utf-8'})
207
+ stub_get('/v2/summary_rates').to_return(body: fixture('summary_rates.json'), headers: { content_type: 'application/json; charset=utf-8' })
193
208
  end
194
209
 
195
210
  it 'requests the right resource' do
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: 1.3.2
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - TaxJar
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-02 00:00:00.000000000 Z
11
+ date: 2016-10-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -122,6 +122,7 @@ files:
122
122
  - lib/taxjar/client.rb
123
123
  - lib/taxjar/error.rb
124
124
  - lib/taxjar/line_item.rb
125
+ - lib/taxjar/nexus_region.rb
125
126
  - lib/taxjar/order.rb
126
127
  - lib/taxjar/rate.rb
127
128
  - lib/taxjar/refund.rb
@@ -131,6 +132,7 @@ files:
131
132
  - lib/taxjar/validation.rb
132
133
  - lib/taxjar/version.rb
133
134
  - spec/fixtures/categories.json
135
+ - spec/fixtures/nexus_regions.json
134
136
  - spec/fixtures/order.json
135
137
  - spec/fixtures/orders.json
136
138
  - spec/fixtures/rates.json
@@ -175,6 +177,7 @@ specification_version: 4
175
177
  summary: Ruby wrapper for Taxjar API
176
178
  test_files:
177
179
  - spec/fixtures/categories.json
180
+ - spec/fixtures/nexus_regions.json
178
181
  - spec/fixtures/order.json
179
182
  - spec/fixtures/orders.json
180
183
  - spec/fixtures/rates.json