tang 0.2.2 → 0.2.4
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 +4 -4
- data/Rakefile +3 -3
- data/app/controllers/tang/account/application_controller.rb +2 -4
- data/app/controllers/tang/account/cards_controller.rb +11 -8
- data/app/controllers/tang/account/coupons_controller.rb +1 -1
- data/app/controllers/tang/account/receipts_controller.rb +10 -4
- data/app/controllers/tang/account/subscriptions_controller.rb +11 -8
- data/app/controllers/tang/admin/application_controller.rb +4 -4
- data/app/controllers/tang/admin/coupons_controller.rb +18 -14
- data/app/controllers/tang/admin/customers_controller.rb +16 -16
- data/app/controllers/tang/admin/dashboard_controller.rb +1 -1
- data/app/controllers/tang/admin/invoices_controller.rb +6 -6
- data/app/controllers/tang/admin/payments_controller.rb +9 -9
- data/app/controllers/tang/admin/plans_controller.rb +21 -19
- data/app/controllers/tang/admin/search_controller.rb +15 -14
- data/app/controllers/tang/admin/subscriptions_controller.rb +16 -17
- data/app/controllers/tang/plans_controller.rb +1 -1
- data/app/helpers/tang/application_helper.rb +22 -28
- data/app/jobs/tang/import_charges_job.rb +4 -8
- data/app/jobs/tang/import_coupons_job.rb +3 -3
- data/app/jobs/tang/import_customers_job.rb +15 -13
- data/app/jobs/tang/import_invoices_job.rb +7 -7
- data/app/jobs/tang/import_plans_job.rb +4 -6
- data/app/jobs/tang/import_subscriptions_job.rb +4 -4
- data/app/mailers/application_mailer.rb +1 -1
- data/app/mailers/tang/stripe_mailer.rb +8 -9
- data/app/mailers/tang/subscription_mailer.rb +4 -1
- data/app/models/concerns/tang/customer.rb +32 -32
- data/app/models/tang/card.rb +7 -8
- data/app/models/tang/charge.rb +28 -50
- data/app/models/tang/coupon.rb +27 -25
- data/app/models/tang/invoice.rb +16 -17
- data/app/models/tang/invoice_item.rb +16 -18
- data/app/models/tang/plan.rb +31 -16
- data/app/models/tang/subscription.rb +34 -42
- data/app/services/tang/apply_customer_discount.rb +2 -2
- data/app/services/tang/apply_subscription_discount.rb +2 -2
- data/app/services/tang/cancel_subscription.rb +2 -2
- data/app/services/tang/change_subscription.rb +4 -4
- data/app/services/tang/create_coupon.rb +3 -5
- data/app/services/tang/create_invoice.rb +2 -2
- data/app/services/tang/create_plan.rb +9 -8
- data/app/services/tang/create_subscription.rb +18 -15
- data/app/services/tang/delete_card.rb +3 -3
- data/app/services/tang/delete_coupon.rb +3 -3
- data/app/services/tang/delete_customer.rb +2 -2
- data/app/services/tang/delete_plan.rb +2 -2
- data/app/services/tang/fail_invoice.rb +5 -6
- data/app/services/tang/pay_invoice.rb +2 -3
- data/app/services/tang/refresh_invoice_pdf.rb +9 -0
- data/app/services/tang/remove_customer_discount.rb +2 -2
- data/app/services/tang/remove_subscription_discount.rb +3 -3
- data/app/services/tang/save_card.rb +8 -9
- data/app/services/tang/update_coupon.rb +3 -5
- data/app/services/tang/update_customer.rb +4 -4
- data/app/services/tang/update_plan.rb +3 -5
- data/app/services/tang/update_subscription.rb +3 -5
- data/app/validators/future_validator.rb +4 -4
- data/app/views/tang/account/cards/show.html.erb +1 -1
- data/app/views/tang/account/receipts/_receipt.html.erb +1 -1
- data/app/views/tang/account/subscriptions/show.html.erb +14 -3
- data/app/views/tang/admin/coupons/show.html.erb +1 -1
- data/app/views/tang/admin/customers/show.html.erb +2 -2
- data/app/views/tang/admin/plans/show.html.erb +1 -1
- data/app/views/tang/admin/subscriptions/show.html.erb +2 -2
- data/app/views/tang/plans/index.html.erb +1 -1
- data/config/initializers/stripe.rb +2 -2
- data/config/initializers/stripe_event.rb +38 -33
- data/config/routes.rb +3 -1
- data/db/migrate/20160928154410_create_versions.rb +4 -4
- data/db/migrate/20160928161623_create_tang_stripe_webhooks.rb +1 -1
- data/db/migrate/20160928173328_create_tang_plans.rb +1 -1
- data/db/migrate/20160929152510_create_tang_coupons.rb +1 -1
- data/db/migrate/20160929152541_add_customer_fields.rb +1 -1
- data/db/migrate/20160929171640_create_tang_subscriptions.rb +2 -2
- data/db/migrate/20160929174251_create_tang_cards.rb +1 -1
- data/db/migrate/20161003035434_create_tang_invoices.rb +1 -1
- data/db/migrate/20161114181651_create_tang_invoice_items.rb +1 -1
- data/db/migrate/20161115201106_create_tang_charges.rb +1 -1
- data/db/migrate/20170523122759_add_group_to_plans.rb +1 -1
- data/db/migrate/20170701162853_add_stripe_indexes.rb +1 -1
- data/db/migrate/20170731010913_add_subscription_indexes.rb +1 -1
- data/db/migrate/20200827001523_add_invoice_pdf_to_invoices.rb +1 -1
- data/db/migrate/20230530172604_add_enable_customer_emails.rb +6 -0
- data/lib/generators/tang/install_generator.rb +1 -1
- data/lib/generators/templates/create_tang.rb +2 -2
- data/lib/tang/engine.rb +1 -1
- data/lib/tang/version.rb +1 -1
- data/lib/tang.rb +6 -6
- data/lib/tasks/cucumber.rake +50 -51
- data/lib/tasks/tang_tasks.rake +3 -3
- metadata +42 -30
data/lib/tasks/cucumber.rake
CHANGED
|
@@ -4,73 +4,72 @@
|
|
|
4
4
|
# instead of editing this one. Cucumber will automatically load all features/**/*.rb
|
|
5
5
|
# files.
|
|
6
6
|
|
|
7
|
+
unless ARGV.any? { |a| a =~ /^gems/ } # Don't load anything when running the gems:* tasks
|
|
7
8
|
|
|
8
|
-
|
|
9
|
+
vendored_cucumber_bin = Dir["#{Rails.root}/vendor/{gems,plugins}/cucumber*/bin/cucumber"].first
|
|
10
|
+
$LOAD_PATH.unshift("#{File.dirname(vendored_cucumber_bin)}/../lib") unless vendored_cucumber_bin.nil?
|
|
9
11
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
+
begin
|
|
13
|
+
require 'cucumber/rake/task'
|
|
12
14
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
t.fork = true # You may get faster startup if you set this to false
|
|
20
|
-
t.profile = 'default'
|
|
21
|
-
end
|
|
15
|
+
namespace :cucumber do
|
|
16
|
+
Cucumber::Rake::Task.new({ ok: 'test:prepare' }, 'Run features that should pass') do |t|
|
|
17
|
+
t.binary = vendored_cucumber_bin # If nil, the gem's binary is used.
|
|
18
|
+
t.fork = true # You may get faster startup if you set this to false
|
|
19
|
+
t.profile = 'default'
|
|
20
|
+
end
|
|
22
21
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
22
|
+
Cucumber::Rake::Task.new({ wip: 'test:prepare' }, 'Run features that are being worked on') do |t|
|
|
23
|
+
t.binary = vendored_cucumber_bin
|
|
24
|
+
t.fork = true # You may get faster startup if you set this to false
|
|
25
|
+
t.profile = 'wip'
|
|
26
|
+
end
|
|
28
27
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
28
|
+
Cucumber::Rake::Task.new({ rerun: 'test:prepare' }, 'Record failing features and run only them if any exist') do |t|
|
|
29
|
+
t.binary = vendored_cucumber_bin
|
|
30
|
+
t.fork = true # You may get faster startup if you set this to false
|
|
31
|
+
t.profile = 'rerun'
|
|
32
|
+
end
|
|
34
33
|
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
desc 'Run all features'
|
|
35
|
+
task all: [:ok, :wip]
|
|
37
36
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
37
|
+
task :statsetup do
|
|
38
|
+
require 'rails/code_statistics'
|
|
39
|
+
::STATS_DIRECTORIES << ['Cucumber features', 'features'] if File.exist?('features')
|
|
40
|
+
::CodeStatistics::TEST_TYPES << 'Cucumber features' if File.exist?('features')
|
|
41
|
+
end
|
|
43
42
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
43
|
+
task :annotations_setup do
|
|
44
|
+
Rails.application.configure do
|
|
45
|
+
if config.respond_to?(:annotations)
|
|
46
|
+
config.annotations.directories << 'features'
|
|
47
|
+
config.annotations.register_extensions('feature') { |tag| /#\s*(#{tag}):?\s*(.*)$/ }
|
|
48
|
+
end
|
|
49
49
|
end
|
|
50
50
|
end
|
|
51
51
|
end
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
task :cucumber => 'cucumber:ok'
|
|
52
|
+
desc 'Alias for cucumber:ok'
|
|
53
|
+
task cucumber: 'cucumber:ok'
|
|
55
54
|
|
|
56
|
-
|
|
55
|
+
task default: :cucumber
|
|
57
56
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
57
|
+
task features: :cucumber do
|
|
58
|
+
warn "*** The 'features' task is deprecated. See rake -T cucumber ***"
|
|
59
|
+
end
|
|
61
60
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
61
|
+
task 'test:prepare' do
|
|
62
|
+
# In case we don't have the generic Rails test:prepare hook, append a no-op task that we can depend upon.
|
|
63
|
+
end
|
|
65
64
|
|
|
66
|
-
|
|
65
|
+
task stats: 'cucumber:statsetup'
|
|
67
66
|
|
|
68
|
-
|
|
69
|
-
rescue LoadError
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
67
|
+
task notes: 'cucumber:annotations_setup'
|
|
68
|
+
rescue LoadError
|
|
69
|
+
desc 'cucumber rake task not available (cucumber not installed)'
|
|
70
|
+
task :cucumber do
|
|
71
|
+
abort 'Cucumber rake task is not available. Be sure to install cucumber as a gem or plugin'
|
|
72
|
+
end
|
|
73
73
|
end
|
|
74
|
-
end
|
|
75
74
|
|
|
76
75
|
end
|
data/lib/tasks/tang_tasks.rake
CHANGED
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
# end
|
|
5
5
|
|
|
6
6
|
task :rails_best_practices do
|
|
7
|
-
path = File.expand_path(
|
|
7
|
+
path = File.expand_path('../../../', __FILE__)
|
|
8
8
|
sh "rails_best_practices #{path}"
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
task :brakeman do
|
|
12
|
-
sh
|
|
12
|
+
sh 'brakeman -q -z'
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
task :check do
|
|
@@ -23,4 +23,4 @@ namespace :tang do
|
|
|
23
23
|
task import_stripe: :environment do
|
|
24
24
|
Tang::ImportStripeJob.perform_now
|
|
25
25
|
end
|
|
26
|
-
end
|
|
26
|
+
end
|
metadata
CHANGED
|
@@ -1,85 +1,96 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: tang
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Craig Phares
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
|
-
name:
|
|
13
|
+
name: aasm
|
|
15
14
|
requirement: !ruby/object:Gem::Requirement
|
|
16
15
|
requirements:
|
|
17
|
-
- - "
|
|
16
|
+
- - ">="
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '4.11'
|
|
19
|
+
- - "<"
|
|
18
20
|
- !ruby/object:Gem::Version
|
|
19
21
|
version: '6.0'
|
|
20
22
|
type: :runtime
|
|
21
23
|
prerelease: false
|
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
25
|
requirements:
|
|
24
|
-
- - "
|
|
26
|
+
- - ">="
|
|
27
|
+
- !ruby/object:Gem::Version
|
|
28
|
+
version: '4.11'
|
|
29
|
+
- - "<"
|
|
25
30
|
- !ruby/object:Gem::Version
|
|
26
31
|
version: '6.0'
|
|
27
32
|
- !ruby/object:Gem::Dependency
|
|
28
|
-
name:
|
|
33
|
+
name: paper_trail
|
|
29
34
|
requirement: !ruby/object:Gem::Requirement
|
|
30
35
|
requirements:
|
|
31
36
|
- - "~>"
|
|
32
37
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '
|
|
38
|
+
version: '12.0'
|
|
34
39
|
type: :runtime
|
|
35
40
|
prerelease: false
|
|
36
41
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
42
|
requirements:
|
|
38
43
|
- - "~>"
|
|
39
44
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '
|
|
45
|
+
version: '12.0'
|
|
41
46
|
- !ruby/object:Gem::Dependency
|
|
42
|
-
name:
|
|
47
|
+
name: rails
|
|
43
48
|
requirement: !ruby/object:Gem::Requirement
|
|
44
49
|
requirements:
|
|
45
|
-
- - "
|
|
50
|
+
- - ">="
|
|
46
51
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '
|
|
52
|
+
version: '6'
|
|
53
|
+
- - "<"
|
|
54
|
+
- !ruby/object:Gem::Version
|
|
55
|
+
version: '8'
|
|
48
56
|
type: :runtime
|
|
49
57
|
prerelease: false
|
|
50
58
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
59
|
requirements:
|
|
52
|
-
- - "
|
|
60
|
+
- - ">="
|
|
53
61
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: '
|
|
62
|
+
version: '6'
|
|
63
|
+
- - "<"
|
|
64
|
+
- !ruby/object:Gem::Version
|
|
65
|
+
version: '8'
|
|
55
66
|
- !ruby/object:Gem::Dependency
|
|
56
|
-
name:
|
|
67
|
+
name: stripe
|
|
57
68
|
requirement: !ruby/object:Gem::Requirement
|
|
58
69
|
requirements:
|
|
59
70
|
- - "~>"
|
|
60
71
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: '
|
|
72
|
+
version: '5.55'
|
|
62
73
|
type: :runtime
|
|
63
74
|
prerelease: false
|
|
64
75
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
76
|
requirements:
|
|
66
77
|
- - "~>"
|
|
67
78
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: '
|
|
79
|
+
version: '5.55'
|
|
69
80
|
- !ruby/object:Gem::Dependency
|
|
70
|
-
name:
|
|
81
|
+
name: stripe_event
|
|
71
82
|
requirement: !ruby/object:Gem::Requirement
|
|
72
83
|
requirements:
|
|
73
84
|
- - "~>"
|
|
74
85
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: '
|
|
86
|
+
version: '2.3'
|
|
76
87
|
type: :runtime
|
|
77
88
|
prerelease: false
|
|
78
89
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
90
|
requirements:
|
|
80
91
|
- - "~>"
|
|
81
92
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: '
|
|
93
|
+
version: '2.3'
|
|
83
94
|
- !ruby/object:Gem::Dependency
|
|
84
95
|
name: will_paginate
|
|
85
96
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -95,33 +106,33 @@ dependencies:
|
|
|
95
106
|
- !ruby/object:Gem::Version
|
|
96
107
|
version: '3.1'
|
|
97
108
|
- !ruby/object:Gem::Dependency
|
|
98
|
-
name:
|
|
109
|
+
name: brakeman
|
|
99
110
|
requirement: !ruby/object:Gem::Requirement
|
|
100
111
|
requirements:
|
|
101
112
|
- - "~>"
|
|
102
113
|
- !ruby/object:Gem::Version
|
|
103
|
-
version: '
|
|
114
|
+
version: '5.4'
|
|
104
115
|
type: :development
|
|
105
116
|
prerelease: false
|
|
106
117
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
118
|
requirements:
|
|
108
119
|
- - "~>"
|
|
109
120
|
- !ruby/object:Gem::Version
|
|
110
|
-
version: '
|
|
121
|
+
version: '5.4'
|
|
111
122
|
- !ruby/object:Gem::Dependency
|
|
112
|
-
name:
|
|
123
|
+
name: rails_best_practices
|
|
113
124
|
requirement: !ruby/object:Gem::Requirement
|
|
114
125
|
requirements:
|
|
115
126
|
- - "~>"
|
|
116
127
|
- !ruby/object:Gem::Version
|
|
117
|
-
version: '
|
|
128
|
+
version: '1.17'
|
|
118
129
|
type: :development
|
|
119
130
|
prerelease: false
|
|
120
131
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
132
|
requirements:
|
|
122
133
|
- - "~>"
|
|
123
134
|
- !ruby/object:Gem::Version
|
|
124
|
-
version: '
|
|
135
|
+
version: '1.17'
|
|
125
136
|
description: A Stripe subscription gem.
|
|
126
137
|
email:
|
|
127
138
|
- hello@sixoverground.com
|
|
@@ -187,6 +198,7 @@ files:
|
|
|
187
198
|
- app/services/tang/delete_plan.rb
|
|
188
199
|
- app/services/tang/fail_invoice.rb
|
|
189
200
|
- app/services/tang/pay_invoice.rb
|
|
201
|
+
- app/services/tang/refresh_invoice_pdf.rb
|
|
190
202
|
- app/services/tang/remove_customer_discount.rb
|
|
191
203
|
- app/services/tang/remove_subscription_discount.rb
|
|
192
204
|
- app/services/tang/save_card.rb
|
|
@@ -259,6 +271,7 @@ files:
|
|
|
259
271
|
- db/migrate/20170701162853_add_stripe_indexes.rb
|
|
260
272
|
- db/migrate/20170731010913_add_subscription_indexes.rb
|
|
261
273
|
- db/migrate/20200827001523_add_invoice_pdf_to_invoices.rb
|
|
274
|
+
- db/migrate/20230530172604_add_enable_customer_emails.rb
|
|
262
275
|
- lib/css/main.css
|
|
263
276
|
- lib/generators/tang/install_generator.rb
|
|
264
277
|
- lib/generators/templates/create_tang.rb
|
|
@@ -271,8 +284,8 @@ files:
|
|
|
271
284
|
homepage: https://github.com/sixoverground/tang
|
|
272
285
|
licenses:
|
|
273
286
|
- MIT
|
|
274
|
-
metadata:
|
|
275
|
-
|
|
287
|
+
metadata:
|
|
288
|
+
rubygems_mfa_required: 'true'
|
|
276
289
|
rdoc_options: []
|
|
277
290
|
require_paths:
|
|
278
291
|
- lib
|
|
@@ -287,8 +300,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
287
300
|
- !ruby/object:Gem::Version
|
|
288
301
|
version: '0'
|
|
289
302
|
requirements: []
|
|
290
|
-
rubygems_version:
|
|
291
|
-
signing_key:
|
|
303
|
+
rubygems_version: 4.0.8
|
|
292
304
|
specification_version: 4
|
|
293
305
|
summary: Tang!
|
|
294
306
|
test_files: []
|