vertex_client 0.6.1
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 +7 -0
- data/.env +2 -0
- data/.gitignore +12 -0
- data/.travis.yml +24 -0
- data/Brewfile +2 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +6 -0
- data/LICENSE.txt +21 -0
- data/README.md +195 -0
- data/Rakefile +11 -0
- data/bin/bootstrap +23 -0
- data/bin/console +15 -0
- data/bin/setup +11 -0
- data/bin/test +12 -0
- data/bin/update +4 -0
- data/lib/generators/install/install_generator.rb +12 -0
- data/lib/generators/install/templates/initializer.rb.erb +27 -0
- data/lib/vertex_client.rb +89 -0
- data/lib/vertex_client/configuration.rb +35 -0
- data/lib/vertex_client/connection.rb +58 -0
- data/lib/vertex_client/payloads/base.rb +44 -0
- data/lib/vertex_client/payloads/distribute_tax.rb +20 -0
- data/lib/vertex_client/payloads/invoice.rb +29 -0
- data/lib/vertex_client/payloads/quotation.rb +69 -0
- data/lib/vertex_client/payloads/quotation_fallback.rb +14 -0
- data/lib/vertex_client/payloads/tax_area.rb +22 -0
- data/lib/vertex_client/railtie.rb +7 -0
- data/lib/vertex_client/rates.rb +55 -0
- data/lib/vertex_client/resources/base.rb +41 -0
- data/lib/vertex_client/resources/distribute_tax.rb +6 -0
- data/lib/vertex_client/resources/invoice.rb +12 -0
- data/lib/vertex_client/resources/quotation.rb +12 -0
- data/lib/vertex_client/resources/tax_area.rb +10 -0
- data/lib/vertex_client/responses/base.rb +17 -0
- data/lib/vertex_client/responses/distribute_tax.rb +17 -0
- data/lib/vertex_client/responses/invoice.rb +6 -0
- data/lib/vertex_client/responses/line_item.rb +15 -0
- data/lib/vertex_client/responses/quotation.rb +39 -0
- data/lib/vertex_client/responses/quotation_fallback.rb +42 -0
- data/lib/vertex_client/responses/tax_area.rb +9 -0
- data/lib/vertex_client/responses/tax_area_fallback.rb +9 -0
- data/lib/vertex_client/utils/adjustment_allocator.rb +61 -0
- data/lib/vertex_client/version.rb +3 -0
- data/vertex_client.gemspec +54 -0
- metadata +288 -0
@@ -0,0 +1,55 @@
|
|
1
|
+
module VertexClient
|
2
|
+
RATES = {
|
3
|
+
'AL' => '0.11',
|
4
|
+
'AK' => '0.0',
|
5
|
+
'AZ' => '0.0',
|
6
|
+
'AR' => '0.0',
|
7
|
+
'CA' => '0.0',
|
8
|
+
'CO' => '0.112',
|
9
|
+
'CT' => '0.0635',
|
10
|
+
'DE' => '0.0',
|
11
|
+
'FL' => '0.0',
|
12
|
+
'GA' => '0.089',
|
13
|
+
'HI' => '0.045',
|
14
|
+
'ID' => '0.09',
|
15
|
+
'IL' => '0.11',
|
16
|
+
'IN' => '0.07',
|
17
|
+
'IA' => '0.07',
|
18
|
+
'KS' => '0.0',
|
19
|
+
'KY' => '0.06',
|
20
|
+
'LA' => '0.122',
|
21
|
+
'ME' => '0.055',
|
22
|
+
'MD' => '0.06',
|
23
|
+
'MA' => '0.0625',
|
24
|
+
'MI' => '0.06',
|
25
|
+
'MN' => '0.0888',
|
26
|
+
'MS' => '0.07',
|
27
|
+
'MO' => '0.0',
|
28
|
+
'MT' => '0.0',
|
29
|
+
'NE' => '0.075',
|
30
|
+
'NV' => '0.0827',
|
31
|
+
'NH' => '0.0',
|
32
|
+
'NJ' => '0.0863',
|
33
|
+
'NM' => '0.0',
|
34
|
+
'NY' => '0.0',
|
35
|
+
'NC' => '0.075',
|
36
|
+
'ND' => '0.085',
|
37
|
+
'OH' => '0.08',
|
38
|
+
'OK' => '0.115',
|
39
|
+
'OR' => '0.0',
|
40
|
+
'PA' => '0.08',
|
41
|
+
'RI' => '0.7',
|
42
|
+
'SC' => '0.09',
|
43
|
+
'SD' => '0.075',
|
44
|
+
'TN' => '0.0',
|
45
|
+
'TX' => '0.0825',
|
46
|
+
'UT' => '0.086',
|
47
|
+
'VT' => '0.07',
|
48
|
+
'VA' => '0.07',
|
49
|
+
'WA' => '0.104',
|
50
|
+
'WV' => '0.07',
|
51
|
+
'WI' => '0.0675',
|
52
|
+
'WY' => '0.08',
|
53
|
+
'DC' => '0.0'
|
54
|
+
}.freeze
|
55
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'active_support'
|
2
|
+
module VertexClient
|
3
|
+
module Resource
|
4
|
+
class Base
|
5
|
+
|
6
|
+
def initialize(params)
|
7
|
+
@payload = payload_type.new(params)
|
8
|
+
end
|
9
|
+
|
10
|
+
def result
|
11
|
+
@result ||= (response ? formatted_response : fallback_response)
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def response
|
17
|
+
@response ||= connection.request(@payload.transform)
|
18
|
+
end
|
19
|
+
|
20
|
+
def connection
|
21
|
+
@connection ||= Connection.new(self.class::ENDPOINT)
|
22
|
+
end
|
23
|
+
|
24
|
+
def formatted_response
|
25
|
+
response_type.new(response)
|
26
|
+
end
|
27
|
+
|
28
|
+
def payload_type
|
29
|
+
Kernel.const_get("VertexClient::Payload::#{demodulized_class_name}")
|
30
|
+
end
|
31
|
+
|
32
|
+
def response_type
|
33
|
+
Kernel.const_get("VertexClient::Response::#{demodulized_class_name}")
|
34
|
+
end
|
35
|
+
|
36
|
+
def demodulized_class_name
|
37
|
+
self.class.name.demodulize
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module VertexClient
|
2
|
+
module Resource
|
3
|
+
class Invoice < Base
|
4
|
+
ENDPOINT = 'CalculateTax70'.freeze
|
5
|
+
ERROR_MESSAGE = 'The Vertex API returned an error or is unavailable'.freeze
|
6
|
+
|
7
|
+
def fallback_response
|
8
|
+
raise ServerError, ERROR_MESSAGE
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module VertexClient
|
2
|
+
module Resource
|
3
|
+
class Quotation < Base
|
4
|
+
ENDPOINT = 'CalculateTax70'.freeze
|
5
|
+
|
6
|
+
def fallback_response
|
7
|
+
fallback_payload = Payload::QuotationFallback.new(@payload.params)
|
8
|
+
Response::QuotationFallback.new(fallback_payload)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'active_support'
|
2
|
+
module VertexClient
|
3
|
+
module Response
|
4
|
+
class Base
|
5
|
+
|
6
|
+
def initialize(vertex_response)
|
7
|
+
@body = vertex_response.body[:vertex_envelope][response_key].with_indifferent_access
|
8
|
+
end
|
9
|
+
|
10
|
+
private
|
11
|
+
|
12
|
+
def response_key
|
13
|
+
:"#{self.class.name.demodulize.underscore}_response"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module VertexClient
|
2
|
+
module Response
|
3
|
+
class DistributeTax < Base
|
4
|
+
def subtotal
|
5
|
+
@subtotal ||= BigDecimal.new(@body[:sub_total])
|
6
|
+
end
|
7
|
+
|
8
|
+
def total_tax
|
9
|
+
@total_tax ||= BigDecimal.new(@body[:total_tax])
|
10
|
+
end
|
11
|
+
|
12
|
+
def total
|
13
|
+
@total ||= BigDecimal.new(@body[:total])
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module VertexClient
|
2
|
+
module Response
|
3
|
+
class LineItem
|
4
|
+
|
5
|
+
attr_reader :total_tax, :product, :quantity, :price
|
6
|
+
|
7
|
+
def initialize(params={})
|
8
|
+
@product = params[:product]
|
9
|
+
@quantity = params[:quantity] ? params[:quantity].to_i : 0
|
10
|
+
@price = BigDecimal.new(params[:price] || 0)
|
11
|
+
@total_tax = BigDecimal.new(params[:total_tax] || 0)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module VertexClient
|
2
|
+
module Response
|
3
|
+
class Quotation < Base
|
4
|
+
|
5
|
+
def subtotal
|
6
|
+
@subtotal ||= BigDecimal.new(@body[:sub_total])
|
7
|
+
end
|
8
|
+
|
9
|
+
def total_tax
|
10
|
+
@total_tax ||= BigDecimal.new(@body[:total_tax])
|
11
|
+
end
|
12
|
+
|
13
|
+
def total
|
14
|
+
@total ||= BigDecimal.new(@body[:total])
|
15
|
+
end
|
16
|
+
|
17
|
+
def line_items
|
18
|
+
@line_items ||= @body[:line_item].flatten.map do |line_item|
|
19
|
+
LineItem.new(
|
20
|
+
product: product_for_line_item(line_item),
|
21
|
+
quantity: line_item[:quantity],
|
22
|
+
price: line_item[:extended_price],
|
23
|
+
total_tax: tax_for_line_item(line_item)
|
24
|
+
)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
def tax_for_line_item(line_item)
|
31
|
+
line_item[:total_tax]
|
32
|
+
end
|
33
|
+
|
34
|
+
def product_for_line_item(line_item)
|
35
|
+
line_item[:product]
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module VertexClient
|
2
|
+
module Response
|
3
|
+
class QuotationFallback < Quotation
|
4
|
+
|
5
|
+
def initialize(payload)
|
6
|
+
@body = payload.body
|
7
|
+
end
|
8
|
+
|
9
|
+
def subtotal
|
10
|
+
@subtotal || line_items.sum(&:price)
|
11
|
+
end
|
12
|
+
|
13
|
+
def total_tax
|
14
|
+
@total_tax ||= line_items.sum(&:total_tax).floor(2)
|
15
|
+
end
|
16
|
+
|
17
|
+
def total
|
18
|
+
@total ||= subtotal + total_tax
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def tax_amount(price, state)
|
24
|
+
if RATES.has_key?(state)
|
25
|
+
price * BigDecimal.new(RATES[state])
|
26
|
+
else
|
27
|
+
BigDecimal.new("0.0")
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def tax_for_line_item(line_item)
|
32
|
+
price = BigDecimal.new(line_item[:extended_price].to_s)
|
33
|
+
state = line_item[:customer][:destination][:main_division]
|
34
|
+
tax_amount(price, state)
|
35
|
+
end
|
36
|
+
|
37
|
+
def product_for_line_item(line_item)
|
38
|
+
line_item[:product][:content!]
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
module VertexClient
|
2
|
+
module Utils
|
3
|
+
class AdjustmentAllocator
|
4
|
+
def initialize(adjustment, weights)
|
5
|
+
@adjustment = adjustment
|
6
|
+
@weights = weights
|
7
|
+
end
|
8
|
+
|
9
|
+
def allocate
|
10
|
+
return [] if weights.empty? && @adjustment.zero?
|
11
|
+
validate!
|
12
|
+
allocations, remainders = allocations_with_remainders.transpose
|
13
|
+
remaining_adjustment = adjustment_in_cents - allocations.sum
|
14
|
+
deserving_indices = remainders.each_with_index.sort_by { |remainder, i| [remainder, i] }.map { |_r, i| i }.last(remaining_adjustment)
|
15
|
+
allocations.each_with_index.map { |allocation, i| deserving_indices.include?(i) ? cents_to_dollars(allocation + 1) : cents_to_dollars(allocation) }
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
ADJUSTMENT_ERROR = 'adjustment must not be more precise than two decimal places (eg: 2.14 or 0.05)'.freeze
|
21
|
+
WEIGHTS_ERROR = 'all weights must be a non-negative number, and must not total zero'.freeze
|
22
|
+
|
23
|
+
def adjustment_format_valid?
|
24
|
+
adjustment.is_a?(Numeric) && (dollars_to_cents(adjustment) == adjustment * 100)
|
25
|
+
end
|
26
|
+
|
27
|
+
def adjustment_in_cents
|
28
|
+
dollars_to_cents(adjustment)
|
29
|
+
end
|
30
|
+
|
31
|
+
def allocations_with_remainders
|
32
|
+
weights.map do |weight|
|
33
|
+
(adjustment_in_cents * weight).divmod(weights_total)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def cents_to_dollars(cents)
|
38
|
+
cents / 100.to_d
|
39
|
+
end
|
40
|
+
|
41
|
+
def dollars_to_cents(dollars)
|
42
|
+
(dollars * 100).to_i
|
43
|
+
end
|
44
|
+
|
45
|
+
def validate!
|
46
|
+
raise VertexClient::ValidationError.new(ADJUSTMENT_ERROR) unless adjustment_format_valid?
|
47
|
+
raise VertexClient::ValidationError.new(WEIGHTS_ERROR) unless weights_format_valid?
|
48
|
+
end
|
49
|
+
|
50
|
+
def weights_format_valid?
|
51
|
+
weights.all? { |weight| weight.is_a?(Numeric) && weight >= 0 } && !weights_total.zero?
|
52
|
+
end
|
53
|
+
|
54
|
+
def weights_total
|
55
|
+
weights.sum
|
56
|
+
end
|
57
|
+
|
58
|
+
attr_reader :adjustment, :weights
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
|
2
|
+
lib = File.expand_path("../lib", __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require "vertex_client/version"
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "vertex_client"
|
8
|
+
spec.version = VertexClient::VERSION
|
9
|
+
spec.authors = ["Custom Ink"]
|
10
|
+
spec.email = ["technology@customink.com"]
|
11
|
+
spec.required_ruby_version = '>= 2.1'
|
12
|
+
spec.summary = %q{A Ruby Gem to integrate with the Vertex Cloud API}
|
13
|
+
spec.description = %q{The Vertex Client Ruby Gem provides an interface to integrate with Vertex Cloud's SOAP API.}
|
14
|
+
spec.homepage = "https://github.com/customink/vertex_client"
|
15
|
+
spec.license = "MIT"
|
16
|
+
|
17
|
+
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
|
18
|
+
# to allow pushing to a single host or delete this section to allow pushing to any host.
|
19
|
+
if spec.respond_to?(:metadata)
|
20
|
+
spec.metadata["allowed_push_host"] = 'https://rubygems.org'
|
21
|
+
|
22
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
23
|
+
spec.metadata["source_code_uri"] = "https://github.com/customink/vertex_client"
|
24
|
+
spec.metadata["changelog_uri"] = "https://github.com/customink/vertex_client/CHANGELOG.md"
|
25
|
+
else
|
26
|
+
raise "RubyGems 2.0 or newer is required to protect against " \
|
27
|
+
"public gem pushes."
|
28
|
+
end
|
29
|
+
|
30
|
+
# Specify which files should be added to the gem when it is released.
|
31
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
32
|
+
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
33
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
34
|
+
end
|
35
|
+
spec.bindir = "exe"
|
36
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
37
|
+
spec.require_paths = ["lib"]
|
38
|
+
|
39
|
+
spec.add_dependency "activesupport"
|
40
|
+
spec.add_dependency "savon", ">= 2.11"
|
41
|
+
spec.add_development_dependency "circuitbox"
|
42
|
+
spec.add_development_dependency "bundler"
|
43
|
+
spec.add_development_dependency "byebug"
|
44
|
+
spec.add_development_dependency "dotenv"
|
45
|
+
spec.add_development_dependency "minitest", "~> 5.0"
|
46
|
+
spec.add_development_dependency "mocha"
|
47
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
48
|
+
spec.add_development_dependency "rails"
|
49
|
+
spec.add_development_dependency "simplecov"
|
50
|
+
spec.add_development_dependency "vcr", "~> 4.0"
|
51
|
+
spec.add_development_dependency "webmock"
|
52
|
+
spec.add_development_dependency "wwtd"
|
53
|
+
|
54
|
+
end
|
metadata
ADDED
@@ -0,0 +1,288 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: vertex_client
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.6.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Custom Ink
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2019-01-25 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: activesupport
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: savon
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '2.11'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '2.11'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: circuitbox
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: bundler
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: byebug
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: dotenv
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: minitest
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '5.0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '5.0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: mocha
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: rake
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '10.0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '10.0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: rails
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: simplecov
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: vcr
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - "~>"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '4.0'
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - "~>"
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '4.0'
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: webmock
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - ">="
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '0'
|
188
|
+
type: :development
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - ">="
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '0'
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: wwtd
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - ">="
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '0'
|
202
|
+
type: :development
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - ">="
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '0'
|
209
|
+
description: The Vertex Client Ruby Gem provides an interface to integrate with Vertex
|
210
|
+
Cloud's SOAP API.
|
211
|
+
email:
|
212
|
+
- technology@customink.com
|
213
|
+
executables: []
|
214
|
+
extensions: []
|
215
|
+
extra_rdoc_files: []
|
216
|
+
files:
|
217
|
+
- ".env"
|
218
|
+
- ".gitignore"
|
219
|
+
- ".travis.yml"
|
220
|
+
- Brewfile
|
221
|
+
- CODE_OF_CONDUCT.md
|
222
|
+
- Gemfile
|
223
|
+
- LICENSE.txt
|
224
|
+
- README.md
|
225
|
+
- Rakefile
|
226
|
+
- bin/bootstrap
|
227
|
+
- bin/console
|
228
|
+
- bin/setup
|
229
|
+
- bin/test
|
230
|
+
- bin/update
|
231
|
+
- lib/generators/install/install_generator.rb
|
232
|
+
- lib/generators/install/templates/initializer.rb.erb
|
233
|
+
- lib/vertex_client.rb
|
234
|
+
- lib/vertex_client/configuration.rb
|
235
|
+
- lib/vertex_client/connection.rb
|
236
|
+
- lib/vertex_client/payloads/base.rb
|
237
|
+
- lib/vertex_client/payloads/distribute_tax.rb
|
238
|
+
- lib/vertex_client/payloads/invoice.rb
|
239
|
+
- lib/vertex_client/payloads/quotation.rb
|
240
|
+
- lib/vertex_client/payloads/quotation_fallback.rb
|
241
|
+
- lib/vertex_client/payloads/tax_area.rb
|
242
|
+
- lib/vertex_client/railtie.rb
|
243
|
+
- lib/vertex_client/rates.rb
|
244
|
+
- lib/vertex_client/resources/base.rb
|
245
|
+
- lib/vertex_client/resources/distribute_tax.rb
|
246
|
+
- lib/vertex_client/resources/invoice.rb
|
247
|
+
- lib/vertex_client/resources/quotation.rb
|
248
|
+
- lib/vertex_client/resources/tax_area.rb
|
249
|
+
- lib/vertex_client/responses/base.rb
|
250
|
+
- lib/vertex_client/responses/distribute_tax.rb
|
251
|
+
- lib/vertex_client/responses/invoice.rb
|
252
|
+
- lib/vertex_client/responses/line_item.rb
|
253
|
+
- lib/vertex_client/responses/quotation.rb
|
254
|
+
- lib/vertex_client/responses/quotation_fallback.rb
|
255
|
+
- lib/vertex_client/responses/tax_area.rb
|
256
|
+
- lib/vertex_client/responses/tax_area_fallback.rb
|
257
|
+
- lib/vertex_client/utils/adjustment_allocator.rb
|
258
|
+
- lib/vertex_client/version.rb
|
259
|
+
- vertex_client.gemspec
|
260
|
+
homepage: https://github.com/customink/vertex_client
|
261
|
+
licenses:
|
262
|
+
- MIT
|
263
|
+
metadata:
|
264
|
+
allowed_push_host: https://rubygems.org
|
265
|
+
homepage_uri: https://github.com/customink/vertex_client
|
266
|
+
source_code_uri: https://github.com/customink/vertex_client
|
267
|
+
changelog_uri: https://github.com/customink/vertex_client/CHANGELOG.md
|
268
|
+
post_install_message:
|
269
|
+
rdoc_options: []
|
270
|
+
require_paths:
|
271
|
+
- lib
|
272
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
273
|
+
requirements:
|
274
|
+
- - ">="
|
275
|
+
- !ruby/object:Gem::Version
|
276
|
+
version: '2.1'
|
277
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
278
|
+
requirements:
|
279
|
+
- - ">="
|
280
|
+
- !ruby/object:Gem::Version
|
281
|
+
version: '0'
|
282
|
+
requirements: []
|
283
|
+
rubyforge_project:
|
284
|
+
rubygems_version: 2.7.6
|
285
|
+
signing_key:
|
286
|
+
specification_version: 4
|
287
|
+
summary: A Ruby Gem to integrate with the Vertex Cloud API
|
288
|
+
test_files: []
|