killbill-avatax 2.0.0 → 2.1.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 +5 -5
- data/Rakefile +3 -5
- data/app/controllers/avatax/configuration_controller.rb +48 -34
- data/app/controllers/avatax/engine_controller.rb +2 -2
- data/app/helpers/avatax/application_helper.rb +2 -0
- data/app/views/avatax/configuration/_plugin_form.html.erb +2 -11
- data/config/routes.rb +3 -3
- data/lib/avatax.rb +10 -10
- data/lib/avatax/client.rb +14 -18
- data/lib/avatax/engine.rb +2 -1
- data/lib/avatax/version.rb +3 -1
- data/lib/tasks/avatax_tasks.rake +1 -0
- data/test/avatax_test.rb +2 -1
- data/test/dummy/app/assets/config/manifest.js +1 -0
- data/test/integration/navigation_test.rb +2 -2
- data/test/test_helper.rb +7 -5
- metadata +89 -44
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 649bcd5e1b0d3b47a658a12d5b66ec84b005ea46
|
4
|
+
data.tar.gz: 901a135544d1d1908b55c01afb77a4177aa1cb30
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eecf8bef864704fe7972936dfd53b1aac91a41dace7ecffeb26437f993d3ffb7da152ec5098f042fd6f1e84cb4794f1de4511d8c073fb5d88e2ee88847366ce4
|
7
|
+
data.tar.gz: 0d4f6ad68dd2933b2257017c63d2c5f8b317bf21ed49ddeedc52a4626d2ca4866d724df779f8425adccad7a6ec4962050aa0e7ed345cab4fcb00216ac4b5c01d
|
data/Rakefile
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
begin
|
2
4
|
require 'bundler/setup'
|
3
5
|
rescue LoadError
|
@@ -14,14 +16,11 @@ RDoc::Task.new(:rdoc) do |rdoc|
|
|
14
16
|
rdoc.rdoc_files.include('lib/**/*.rb')
|
15
17
|
end
|
16
18
|
|
17
|
-
APP_RAKEFILE = File.expand_path(
|
19
|
+
APP_RAKEFILE = File.expand_path('test/dummy/Rakefile', __dir__)
|
18
20
|
load 'rails/tasks/engine.rake'
|
19
21
|
|
20
|
-
|
21
22
|
load 'rails/tasks/statistics.rake'
|
22
23
|
|
23
|
-
|
24
|
-
|
25
24
|
Bundler::GemHelper.install_tasks
|
26
25
|
|
27
26
|
require 'rake/testtask'
|
@@ -33,5 +32,4 @@ Rake::TestTask.new(:test) do |t|
|
|
33
32
|
t.verbose = false
|
34
33
|
end
|
35
34
|
|
36
|
-
|
37
35
|
task default: :test
|
@@ -1,8 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'avatax/client'
|
2
4
|
|
3
5
|
module Avatax
|
4
6
|
class ConfigurationController < EngineController
|
5
|
-
|
6
7
|
def index
|
7
8
|
@tax_codes = ::Killbill::Avatax::AvataxClient.get_tax_codes(options_for_klient)
|
8
9
|
@exemptions = exempt_accounts
|
@@ -25,7 +26,7 @@ module Avatax
|
|
25
26
|
options_for_klient)
|
26
27
|
|
27
28
|
flash[:notice] = 'Tax code successfully saved'
|
28
|
-
redirect_to :
|
29
|
+
redirect_to action: :index
|
29
30
|
end
|
30
31
|
|
31
32
|
def remove_tax_code
|
@@ -36,15 +37,14 @@ module Avatax
|
|
36
37
|
options_for_klient)
|
37
38
|
|
38
39
|
flash[:notice] = 'Tax code successfully removed'
|
39
|
-
redirect_to :
|
40
|
+
redirect_to action: :index
|
40
41
|
end
|
41
42
|
|
42
43
|
#
|
43
44
|
# Exemptions
|
44
45
|
#
|
45
46
|
|
46
|
-
def set_exemption
|
47
|
-
end
|
47
|
+
def set_exemption; end
|
48
48
|
|
49
49
|
def do_set_exemption
|
50
50
|
::Killbill::Avatax::AvataxClient.set_exemption(params.require(:account_id),
|
@@ -55,7 +55,7 @@ module Avatax
|
|
55
55
|
options_for_klient)
|
56
56
|
|
57
57
|
flash[:notice] = 'Exemption successfully saved'
|
58
|
-
redirect_to :
|
58
|
+
redirect_to action: :index
|
59
59
|
end
|
60
60
|
|
61
61
|
def remove_exemption
|
@@ -66,7 +66,7 @@ module Avatax
|
|
66
66
|
options_for_klient)
|
67
67
|
|
68
68
|
flash[:notice] = 'Exemption successfully removed'
|
69
|
-
redirect_to :
|
69
|
+
redirect_to action: :index
|
70
70
|
end
|
71
71
|
|
72
72
|
#
|
@@ -82,26 +82,44 @@ module Avatax
|
|
82
82
|
config.values.first.split.each do |property|
|
83
83
|
k, v = property.split('=')
|
84
84
|
case k
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
when 'org.killbill.billing.plugin.avatax.commitDocuments'
|
94
|
-
@configuration[:commit_documents] = v == 'true'
|
85
|
+
when 'org.killbill.billing.plugin.avatax.accountId'
|
86
|
+
@configuration[:account_id] = v
|
87
|
+
when 'org.killbill.billing.plugin.avatax.licenseKey'
|
88
|
+
@configuration[:license_key] = v
|
89
|
+
when 'org.killbill.billing.plugin.avatax.companyCode'
|
90
|
+
@configuration[:company_code] = v
|
91
|
+
when 'org.killbill.billing.plugin.avatax.commitDocuments'
|
92
|
+
@configuration[:commit_documents] = v == 'true'
|
95
93
|
end
|
96
94
|
end
|
97
95
|
end
|
98
96
|
|
99
97
|
def update_plugin_configuration
|
100
|
-
plugin_config = "org.killbill.billing.plugin.avatax.
|
101
|
-
org.killbill.billing.plugin.avatax.
|
102
|
-
org.killbill.billing.plugin.avatax.
|
103
|
-
org.killbill.billing.plugin.avatax.companyCode=#{params[:company_code]}
|
104
|
-
|
98
|
+
plugin_config = "org.killbill.billing.plugin.avatax.accountId=#{params.require(:account_id)}
|
99
|
+
org.killbill.billing.plugin.avatax.licenseKey=#{params.require(:license_key)}\n"
|
100
|
+
plugin_config << "org.killbill.billing.plugin.avatax.commitDocuments=#{params[:commit_documents] == '1'}\n"
|
101
|
+
plugin_config << "org.killbill.billing.plugin.avatax.companyCode=#{params[:company_code]}\n" unless params[:company_code].blank?
|
102
|
+
|
103
|
+
# Merge the new values with the current config. The config will likely contain additional fields that we don't want to clobber.
|
104
|
+
# The user should really use the more powerful /admin_tenants screen - this plugin screen was just created
|
105
|
+
# to be able to pass the initial AvaTax certification.
|
106
|
+
current_config = KillBillClient::Model::Tenant.get_tenant_plugin_config('killbill-avatax', options_for_klient)
|
107
|
+
|
108
|
+
(current_config.values || ['']).first.split.each do |property|
|
109
|
+
k, v = property.split('=')
|
110
|
+
plugin_config << case k
|
111
|
+
when 'org.killbill.billing.plugin.avatax.accountId'
|
112
|
+
next
|
113
|
+
when 'org.killbill.billing.plugin.avatax.licenseKey'
|
114
|
+
next
|
115
|
+
when 'org.killbill.billing.plugin.avatax.companyCode'
|
116
|
+
next
|
117
|
+
when 'org.killbill.billing.plugin.avatax.commitDocuments'
|
118
|
+
next
|
119
|
+
else
|
120
|
+
"#{k}=#{v}\n"
|
121
|
+
end
|
122
|
+
end
|
105
123
|
|
106
124
|
KillBillClient::Model::Tenant.upload_tenant_plugin_config('killbill-avatax',
|
107
125
|
plugin_config,
|
@@ -111,31 +129,27 @@ org.killbill.billing.plugin.avatax.commitDocuments=#{params[:commit_documents] =
|
|
111
129
|
options_for_klient)
|
112
130
|
|
113
131
|
flash[:notice] = 'Configuration successfully saved'
|
114
|
-
redirect_to :
|
132
|
+
redirect_to action: :index
|
115
133
|
end
|
116
134
|
|
117
135
|
private
|
118
136
|
|
119
|
-
def avatax_url(test)
|
120
|
-
"https://#{test ? 'development' : 'avatax'}.avalara.net"
|
121
|
-
end
|
122
|
-
|
123
137
|
def exempt_accounts(offset = 0, limit = 100)
|
124
138
|
custom_field_value = 'customerUsageType'
|
125
139
|
|
126
140
|
KillBillClient::Model::CustomField.find_in_batches_by_search_key(custom_field_value, offset, limit, options_for_klient)
|
127
|
-
|
128
|
-
|
141
|
+
.select { |cf| cf.name == custom_field_value && cf.object_type == 'ACCOUNT' }
|
142
|
+
.map { |cf| { account_id: cf.object_id, customer_usage_type: cf.value } }
|
129
143
|
end
|
130
144
|
|
131
145
|
def options_for_klient
|
132
146
|
user = current_tenant_user
|
133
147
|
{
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
148
|
+
username: user[:username],
|
149
|
+
password: user[:password],
|
150
|
+
session_id: user[:session_id],
|
151
|
+
api_key: user[:api_key],
|
152
|
+
api_secret: user[:api_secret]
|
139
153
|
}
|
140
154
|
end
|
141
155
|
end
|
@@ -1,6 +1,7 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Avatax
|
2
4
|
class EngineController < ApplicationController
|
3
|
-
|
4
5
|
layout :get_layout
|
5
6
|
|
6
7
|
def get_layout
|
@@ -13,6 +14,5 @@ module Avatax
|
|
13
14
|
user = current_user if respond_to?(:current_user)
|
14
15
|
Avatax.current_tenant_user.call(session, user)
|
15
16
|
end
|
16
|
-
|
17
17
|
end
|
18
18
|
end
|
@@ -1,8 +1,8 @@
|
|
1
1
|
<%= form_tag update_plugin_configuration_path, :class => 'form-horizontal' do %>
|
2
2
|
<div class="form-group">
|
3
|
-
<%= label_tag :
|
3
|
+
<%= label_tag :account_id, 'Account ID', :class => 'col-sm-2 control-label' %>
|
4
4
|
<div class="col-sm-10">
|
5
|
-
<%= text_field_tag :
|
5
|
+
<%= text_field_tag :account_id, @configuration[:account_id], :class => 'form-control' %>
|
6
6
|
</div>
|
7
7
|
</div>
|
8
8
|
<div class="form-group">
|
@@ -26,15 +26,6 @@
|
|
26
26
|
</div>
|
27
27
|
</div>
|
28
28
|
</div>
|
29
|
-
<div class="form-group">
|
30
|
-
<div class="col-sm-offset-2 col-sm-10">
|
31
|
-
<div class="checkbox">
|
32
|
-
<%= label_tag :test, 'Test mode', :class => 'control-label' do %>
|
33
|
-
<%= check_box_tag :test, '1', @configuration[:test] %>Test mode?
|
34
|
-
<% end %>
|
35
|
-
</div>
|
36
|
-
</div>
|
37
|
-
</div>
|
38
29
|
<div class="form-group">
|
39
30
|
<div class="col-sm-offset-2 col-sm-10">
|
40
31
|
<%= submit_tag 'Save', :class => 'btn btn-default' %>
|
data/config/routes.rb
CHANGED
@@ -1,8 +1,9 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
+
Avatax::Engine.routes.draw do
|
3
4
|
root to: 'configuration#index'
|
4
5
|
|
5
|
-
resources :configuration, :
|
6
|
+
resources :configuration, only: [:index]
|
6
7
|
|
7
8
|
scope '/configuration' do
|
8
9
|
match '/tax_code' => 'configuration#set_tax_code', :via => :get, :as => 'set_tax_code_configuration'
|
@@ -16,5 +17,4 @@ Avatax::Engine.routes.draw do
|
|
16
17
|
match '/plugin' => 'configuration#plugin_configuration', :via => :get, :as => 'plugin_configuration'
|
17
18
|
match '/plugin' => 'configuration#update_plugin_configuration', :via => :post, :as => 'update_plugin_configuration'
|
18
19
|
end
|
19
|
-
|
20
20
|
end
|
data/lib/avatax.rb
CHANGED
@@ -1,22 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'avatax/engine'
|
2
4
|
|
3
5
|
module Avatax
|
4
|
-
|
5
6
|
mattr_accessor :current_tenant_user
|
6
7
|
mattr_accessor :layout
|
7
8
|
|
8
|
-
self.current_tenant_user = lambda { |
|
9
|
-
{:
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
9
|
+
self.current_tenant_user = lambda { |_session, _user|
|
10
|
+
{ username: 'admin',
|
11
|
+
password: 'password',
|
12
|
+
session_id: nil,
|
13
|
+
api_key: KillBillClient.api_key,
|
14
|
+
api_secret: KillBillClient.api_secret }
|
14
15
|
}
|
15
16
|
|
16
|
-
def self.config
|
17
|
+
def self.config
|
17
18
|
{
|
18
|
-
|
19
|
+
layout: layout || 'avatax/layouts/avatax_application'
|
19
20
|
}
|
20
21
|
end
|
21
|
-
|
22
22
|
end
|
data/lib/avatax/client.rb
CHANGED
@@ -1,29 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Killbill
|
2
4
|
module Avatax
|
3
|
-
|
4
5
|
class AvataxClient < KillBillClient::Model::Resource
|
5
|
-
|
6
6
|
KILLBILL_AVATAX_PREFIX = '/plugins/killbill-avatax'
|
7
7
|
|
8
8
|
class << self
|
9
|
-
|
10
9
|
def set_exemption(account_id, customer_usage_type, user, reason, comment, options = {})
|
11
|
-
|
10
|
+
exemption_cf_name = 'customerUsageType'
|
12
11
|
|
13
12
|
account = KillBillClient::Model::Account.find_by_id(account_id, false, false, options)
|
14
13
|
|
15
14
|
# Remove existing exemption(s) first
|
16
15
|
account.custom_fields('NONE', options).each do |custom_field|
|
17
|
-
account.remove_custom_field(custom_field.custom_field_id, user, reason, comment, options) if custom_field.name ==
|
16
|
+
account.remove_custom_field(custom_field.custom_field_id, user, reason, comment, options) if custom_field.name == exemption_cf_name
|
18
17
|
end
|
19
18
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
19
|
+
return if customer_usage_type.nil?
|
20
|
+
|
21
|
+
# Set the exemption
|
22
|
+
custom_field = KillBillClient::Model::CustomField.new
|
23
|
+
custom_field.name = exemption_cf_name
|
24
|
+
custom_field.value = customer_usage_type
|
25
|
+
account.add_custom_field(custom_field, user, reason, comment, options)
|
27
26
|
end
|
28
27
|
|
29
28
|
def remove_exemption(account_id, user, reason, comment, options = {})
|
@@ -42,22 +41,19 @@ module Killbill
|
|
42
41
|
JSON.parse(response.body).symbolize_keys
|
43
42
|
end
|
44
43
|
|
45
|
-
def set_tax_code(product_name, tax_code,
|
46
|
-
body = {:
|
44
|
+
def set_tax_code(product_name, tax_code, _user, _reason, _comment, options = {})
|
45
|
+
body = { productName: product_name, taxCode: tax_code }.to_json
|
47
46
|
|
48
47
|
path = "#{KILLBILL_AVATAX_PREFIX}/taxCodes"
|
49
48
|
response = KillBillClient::API.post path, body, {}, options
|
50
49
|
response.body
|
51
50
|
end
|
52
51
|
|
53
|
-
def remove_tax_code(product_name,
|
52
|
+
def remove_tax_code(product_name, _user, _reason, _comment, options = {})
|
54
53
|
path = "#{KILLBILL_AVATAX_PREFIX}/taxCodes/#{product_name}"
|
55
54
|
KillBillClient::API.delete path, nil, {}, options
|
56
55
|
end
|
57
|
-
|
58
56
|
end
|
59
|
-
|
60
57
|
end
|
61
|
-
|
62
58
|
end
|
63
59
|
end
|
data/lib/avatax/engine.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# Dependencies
|
2
4
|
#
|
3
5
|
# Sigh. Rails autoloads the gems specified in the Gemfile and nothing else.
|
@@ -12,7 +14,6 @@ require 'killbill_client'
|
|
12
14
|
|
13
15
|
module Avatax
|
14
16
|
class Engine < ::Rails::Engine
|
15
|
-
|
16
17
|
isolate_namespace Avatax
|
17
18
|
end
|
18
19
|
end
|
data/lib/avatax/version.rb
CHANGED
data/lib/tasks/avatax_tasks.rake
CHANGED
data/test/avatax_test.rb
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
{}
|
@@ -1,7 +1,8 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'test_helper'
|
2
4
|
|
3
5
|
class NavigationTest < ActionDispatch::IntegrationTest
|
4
|
-
|
5
6
|
include Avatax::Engine.routes.url_helpers
|
6
7
|
|
7
8
|
test 'can see the main configuration page' do
|
@@ -14,4 +15,3 @@ class NavigationTest < ActionDispatch::IntegrationTest
|
|
14
15
|
assert_response :success
|
15
16
|
end
|
16
17
|
end
|
17
|
-
|
data/test/test_helper.rb
CHANGED
@@ -1,19 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# Configure Rails Environment
|
2
|
-
ENV[
|
4
|
+
ENV['RAILS_ENV'] = 'test'
|
3
5
|
|
4
|
-
require File.expand_path(
|
5
|
-
require
|
6
|
+
require File.expand_path('../test/dummy/config/environment.rb', __dir__)
|
7
|
+
require 'rails/test_help'
|
6
8
|
|
7
9
|
# Filter out Minitest backtrace while allowing backtrace from other libraries
|
8
10
|
# to be shown.
|
9
11
|
Minitest.backtrace_filter = Minitest::BacktraceFilter.new
|
10
12
|
|
11
13
|
# Load support files
|
12
|
-
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
|
14
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].sort.each { |f| require f }
|
13
15
|
|
14
16
|
# Load fixtures from the engine
|
15
17
|
if ActiveSupport::TestCase.respond_to?(:fixture_path=)
|
16
|
-
ActiveSupport::TestCase.fixture_path = File.expand_path(
|
18
|
+
ActiveSupport::TestCase.fixture_path = File.expand_path('fixtures', __dir__)
|
17
19
|
ActionDispatch::IntegrationTest.fixture_path = ActiveSupport::TestCase.fixture_path
|
18
20
|
ActiveSupport::TestCase.fixtures :all
|
19
21
|
end
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: killbill-avatax
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kill Bill core team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-05-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name: rails
|
14
|
+
name: jquery-datatables-rails
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '3.3'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '3.3'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: jquery-rails
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -39,33 +39,33 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '4.3'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: rails
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '5.1'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '5.1'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: sass-rails
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
61
|
+
version: '5.0'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
68
|
+
version: '5.0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: font-awesome-rails
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -95,13 +95,13 @@ dependencies:
|
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '3.2'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
98
|
+
name: twitter-bootstrap-rails
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - ">="
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: '0'
|
104
|
-
type: :
|
104
|
+
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
@@ -109,7 +109,35 @@ dependencies:
|
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
112
|
+
name: gem-release
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '2.2'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '2.2'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: json
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: 1.8.6
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: 1.8.6
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: listen
|
113
141
|
requirement: !ruby/object:Gem::Requirement
|
114
142
|
requirements:
|
115
143
|
- - ">="
|
@@ -123,7 +151,7 @@ dependencies:
|
|
123
151
|
- !ruby/object:Gem::Version
|
124
152
|
version: '0'
|
125
153
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
154
|
+
name: rake
|
127
155
|
requirement: !ruby/object:Gem::Requirement
|
128
156
|
requirements:
|
129
157
|
- - ">="
|
@@ -137,19 +165,33 @@ dependencies:
|
|
137
165
|
- !ruby/object:Gem::Version
|
138
166
|
version: '0'
|
139
167
|
- !ruby/object:Gem::Dependency
|
140
|
-
name:
|
168
|
+
name: rubocop
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - "~>"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: 0.88.0
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - "~>"
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: 0.88.0
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: simplecov
|
141
183
|
requirement: !ruby/object:Gem::Requirement
|
142
184
|
requirements:
|
143
185
|
- - ">="
|
144
186
|
- !ruby/object:Gem::Version
|
145
|
-
version:
|
187
|
+
version: '0'
|
146
188
|
type: :development
|
147
189
|
prerelease: false
|
148
190
|
version_requirements: !ruby/object:Gem::Requirement
|
149
191
|
requirements:
|
150
192
|
- - ">="
|
151
193
|
- !ruby/object:Gem::Version
|
152
|
-
version:
|
194
|
+
version: '0'
|
153
195
|
description: Rails UI plugin for the Avatax plugin.
|
154
196
|
email: killbilling-users@googlegroups.com
|
155
197
|
executables: []
|
@@ -186,6 +228,7 @@ files:
|
|
186
228
|
- test/avatax_test.rb
|
187
229
|
- test/dummy/README.rdoc
|
188
230
|
- test/dummy/Rakefile
|
231
|
+
- test/dummy/app/assets/config/manifest.js
|
189
232
|
- test/dummy/app/controllers/application_controller.rb
|
190
233
|
- test/dummy/app/helpers/application_helper.rb
|
191
234
|
- test/dummy/bin/bundle
|
@@ -236,42 +279,44 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
236
279
|
- !ruby/object:Gem::Version
|
237
280
|
version: '0'
|
238
281
|
requirements: []
|
239
|
-
|
282
|
+
rubyforge_project:
|
283
|
+
rubygems_version: 2.6.13
|
240
284
|
signing_key:
|
241
285
|
specification_version: 4
|
242
286
|
summary: Kill Bill Avatax UI mountable engine
|
243
287
|
test_files:
|
244
|
-
- test/avatax_test.rb
|
245
288
|
- test/test_helper.rb
|
246
289
|
- test/integration/navigation_test.rb
|
247
|
-
- test/dummy/config
|
248
|
-
- test/dummy/
|
249
|
-
- test/dummy/
|
290
|
+
- test/dummy/config.ru
|
291
|
+
- test/dummy/bin/yarn
|
292
|
+
- test/dummy/bin/update
|
293
|
+
- test/dummy/bin/rake
|
294
|
+
- test/dummy/bin/setup
|
295
|
+
- test/dummy/bin/bundle
|
296
|
+
- test/dummy/bin/rails
|
250
297
|
- test/dummy/config/routes.rb
|
251
|
-
- test/dummy/config/
|
252
|
-
- test/dummy/config/environments/production.rb
|
253
|
-
- test/dummy/config/environments/development.rb
|
254
|
-
- test/dummy/config/initializers/new_framework_defaults_5_1.rb
|
255
|
-
- test/dummy/config/initializers/inflections.rb
|
256
|
-
- test/dummy/config/initializers/assets.rb
|
257
|
-
- test/dummy/config/initializers/backtrace_silencers.rb
|
258
|
-
- test/dummy/config/initializers/killbill_client.rb
|
259
|
-
- test/dummy/config/initializers/filter_parameter_logging.rb
|
298
|
+
- test/dummy/config/boot.rb
|
260
299
|
- test/dummy/config/initializers/mime_types.rb
|
261
300
|
- test/dummy/config/initializers/application_controller_renderer.rb
|
262
|
-
- test/dummy/config/initializers/
|
301
|
+
- test/dummy/config/initializers/killbill_client.rb
|
302
|
+
- test/dummy/config/initializers/assets.rb
|
263
303
|
- test/dummy/config/initializers/session_store.rb
|
264
304
|
- test/dummy/config/initializers/wrap_parameters.rb
|
265
|
-
- test/dummy/config/
|
305
|
+
- test/dummy/config/initializers/filter_parameter_logging.rb
|
306
|
+
- test/dummy/config/initializers/cookies_serializer.rb
|
307
|
+
- test/dummy/config/initializers/new_framework_defaults_5_1.rb
|
308
|
+
- test/dummy/config/initializers/backtrace_silencers.rb
|
309
|
+
- test/dummy/config/initializers/inflections.rb
|
310
|
+
- test/dummy/config/locales/en.yml
|
311
|
+
- test/dummy/config/secrets.yml
|
312
|
+
- test/dummy/config/environment.rb
|
313
|
+
- test/dummy/config/environments/production.rb
|
314
|
+
- test/dummy/config/environments/development.rb
|
315
|
+
- test/dummy/config/environments/test.rb
|
266
316
|
- test/dummy/config/application.rb
|
267
|
-
- test/dummy/Rakefile
|
268
317
|
- test/dummy/README.rdoc
|
318
|
+
- test/dummy/Rakefile
|
269
319
|
- test/dummy/app/controllers/application_controller.rb
|
270
320
|
- test/dummy/app/helpers/application_helper.rb
|
271
|
-
- test/dummy/config.
|
272
|
-
- test/
|
273
|
-
- test/dummy/bin/bundle
|
274
|
-
- test/dummy/bin/update
|
275
|
-
- test/dummy/bin/setup
|
276
|
-
- test/dummy/bin/yarn
|
277
|
-
- test/dummy/bin/rails
|
321
|
+
- test/dummy/app/assets/config/manifest.js
|
322
|
+
- test/avatax_test.rb
|