Module: ZipTax
- Defined in:
- lib/zip_tax.rb,
lib/zip_tax/version.rb
Constant Summary collapse
- VERSION =
"1.0.0"
- @@host =
'api.zip-tax.com'
Class Method Summary collapse
- .info(zip) ⇒ Object
- .key ⇒ Object
- .key=(key) ⇒ Object
- .rate(zip, state = nil) ⇒ Object
- .request(zip) ⇒ Object
Class Method Details
.info(zip) ⇒ Object
32 33 34 35 |
# File 'lib/zip_tax.rb', line 32 def self.info(zip) response = request(zip) return response['results'][0] end |
.key ⇒ Object
13 14 15 |
# File 'lib/zip_tax.rb', line 13 def self.key @@key end |
.key=(key) ⇒ Object
9 10 11 |
# File 'lib/zip_tax.rb', line 9 def self.key=(key) @@key = key end |
.rate(zip, state = nil) ⇒ Object
27 28 29 30 |
# File 'lib/zip_tax.rb', line 27 def self.rate(zip, state = nil) response = request(zip) state.nil? || state.upcase == response['results'][0]['geoState'] ? response['results'][0]['taxSales'] : 0.0 end |
.request(zip) ⇒ Object
17 18 19 20 21 22 23 24 25 |
# File 'lib/zip_tax.rb', line 17 def self.request(zip) key = @@key host = @@host raise ArgumentError, "Zip-Tax API key must be set using ZipTax.key=" if key.nil? path = "/request/v20?key=#{key}&postalcode=#{zip}" response = JSON.parse(Net::HTTP.get(host, path)) raise StandardError, "Zip-Tax returned an empty response using the zip code #{zip}" if response["results"].empty? return response end |