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.
Files changed (92) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +3 -3
  3. data/app/controllers/tang/account/application_controller.rb +2 -4
  4. data/app/controllers/tang/account/cards_controller.rb +11 -8
  5. data/app/controllers/tang/account/coupons_controller.rb +1 -1
  6. data/app/controllers/tang/account/receipts_controller.rb +10 -4
  7. data/app/controllers/tang/account/subscriptions_controller.rb +11 -8
  8. data/app/controllers/tang/admin/application_controller.rb +4 -4
  9. data/app/controllers/tang/admin/coupons_controller.rb +18 -14
  10. data/app/controllers/tang/admin/customers_controller.rb +16 -16
  11. data/app/controllers/tang/admin/dashboard_controller.rb +1 -1
  12. data/app/controllers/tang/admin/invoices_controller.rb +6 -6
  13. data/app/controllers/tang/admin/payments_controller.rb +9 -9
  14. data/app/controllers/tang/admin/plans_controller.rb +21 -19
  15. data/app/controllers/tang/admin/search_controller.rb +15 -14
  16. data/app/controllers/tang/admin/subscriptions_controller.rb +16 -17
  17. data/app/controllers/tang/plans_controller.rb +1 -1
  18. data/app/helpers/tang/application_helper.rb +22 -28
  19. data/app/jobs/tang/import_charges_job.rb +4 -8
  20. data/app/jobs/tang/import_coupons_job.rb +3 -3
  21. data/app/jobs/tang/import_customers_job.rb +15 -13
  22. data/app/jobs/tang/import_invoices_job.rb +7 -7
  23. data/app/jobs/tang/import_plans_job.rb +4 -6
  24. data/app/jobs/tang/import_subscriptions_job.rb +4 -4
  25. data/app/mailers/application_mailer.rb +1 -1
  26. data/app/mailers/tang/stripe_mailer.rb +8 -9
  27. data/app/mailers/tang/subscription_mailer.rb +4 -1
  28. data/app/models/concerns/tang/customer.rb +32 -32
  29. data/app/models/tang/card.rb +7 -8
  30. data/app/models/tang/charge.rb +28 -50
  31. data/app/models/tang/coupon.rb +27 -25
  32. data/app/models/tang/invoice.rb +16 -17
  33. data/app/models/tang/invoice_item.rb +16 -18
  34. data/app/models/tang/plan.rb +31 -16
  35. data/app/models/tang/subscription.rb +34 -42
  36. data/app/services/tang/apply_customer_discount.rb +2 -2
  37. data/app/services/tang/apply_subscription_discount.rb +2 -2
  38. data/app/services/tang/cancel_subscription.rb +2 -2
  39. data/app/services/tang/change_subscription.rb +4 -4
  40. data/app/services/tang/create_coupon.rb +3 -5
  41. data/app/services/tang/create_invoice.rb +2 -2
  42. data/app/services/tang/create_plan.rb +9 -8
  43. data/app/services/tang/create_subscription.rb +18 -15
  44. data/app/services/tang/delete_card.rb +3 -3
  45. data/app/services/tang/delete_coupon.rb +3 -3
  46. data/app/services/tang/delete_customer.rb +2 -2
  47. data/app/services/tang/delete_plan.rb +2 -2
  48. data/app/services/tang/fail_invoice.rb +5 -6
  49. data/app/services/tang/pay_invoice.rb +2 -3
  50. data/app/services/tang/refresh_invoice_pdf.rb +9 -0
  51. data/app/services/tang/remove_customer_discount.rb +2 -2
  52. data/app/services/tang/remove_subscription_discount.rb +3 -3
  53. data/app/services/tang/save_card.rb +8 -9
  54. data/app/services/tang/update_coupon.rb +3 -5
  55. data/app/services/tang/update_customer.rb +4 -4
  56. data/app/services/tang/update_plan.rb +3 -5
  57. data/app/services/tang/update_subscription.rb +3 -5
  58. data/app/validators/future_validator.rb +4 -4
  59. data/app/views/tang/account/cards/show.html.erb +1 -1
  60. data/app/views/tang/account/receipts/_receipt.html.erb +1 -1
  61. data/app/views/tang/account/subscriptions/show.html.erb +14 -3
  62. data/app/views/tang/admin/coupons/show.html.erb +1 -1
  63. data/app/views/tang/admin/customers/show.html.erb +2 -2
  64. data/app/views/tang/admin/plans/show.html.erb +1 -1
  65. data/app/views/tang/admin/subscriptions/show.html.erb +2 -2
  66. data/app/views/tang/plans/index.html.erb +1 -1
  67. data/config/initializers/stripe.rb +2 -2
  68. data/config/initializers/stripe_event.rb +38 -33
  69. data/config/routes.rb +3 -1
  70. data/db/migrate/20160928154410_create_versions.rb +4 -4
  71. data/db/migrate/20160928161623_create_tang_stripe_webhooks.rb +1 -1
  72. data/db/migrate/20160928173328_create_tang_plans.rb +1 -1
  73. data/db/migrate/20160929152510_create_tang_coupons.rb +1 -1
  74. data/db/migrate/20160929152541_add_customer_fields.rb +1 -1
  75. data/db/migrate/20160929171640_create_tang_subscriptions.rb +2 -2
  76. data/db/migrate/20160929174251_create_tang_cards.rb +1 -1
  77. data/db/migrate/20161003035434_create_tang_invoices.rb +1 -1
  78. data/db/migrate/20161114181651_create_tang_invoice_items.rb +1 -1
  79. data/db/migrate/20161115201106_create_tang_charges.rb +1 -1
  80. data/db/migrate/20170523122759_add_group_to_plans.rb +1 -1
  81. data/db/migrate/20170701162853_add_stripe_indexes.rb +1 -1
  82. data/db/migrate/20170731010913_add_subscription_indexes.rb +1 -1
  83. data/db/migrate/20200827001523_add_invoice_pdf_to_invoices.rb +1 -1
  84. data/db/migrate/20230530172604_add_enable_customer_emails.rb +6 -0
  85. data/lib/generators/tang/install_generator.rb +1 -1
  86. data/lib/generators/templates/create_tang.rb +2 -2
  87. data/lib/tang/engine.rb +1 -1
  88. data/lib/tang/version.rb +1 -1
  89. data/lib/tang.rb +6 -6
  90. data/lib/tasks/cucumber.rake +50 -51
  91. data/lib/tasks/tang_tasks.rake +3 -3
  92. metadata +42 -30
@@ -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
- unless ARGV.any? {|a| a =~ /^gems/} # Don't load anything when running the gems:* tasks
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
- vendored_cucumber_bin = Dir["#{Rails.root}/vendor/{gems,plugins}/cucumber*/bin/cucumber"].first
11
- $LOAD_PATH.unshift(File.dirname(vendored_cucumber_bin) + '/../lib') unless vendored_cucumber_bin.nil?
12
+ begin
13
+ require 'cucumber/rake/task'
12
14
 
13
- begin
14
- require 'cucumber/rake/task'
15
-
16
- namespace :cucumber do
17
- Cucumber::Rake::Task.new({:ok => 'test:prepare'}, 'Run features that should pass') do |t|
18
- t.binary = vendored_cucumber_bin # If nil, the gem's binary is used.
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
- Cucumber::Rake::Task.new({:wip => 'test:prepare'}, 'Run features that are being worked on') do |t|
24
- t.binary = vendored_cucumber_bin
25
- t.fork = true # You may get faster startup if you set this to false
26
- t.profile = 'wip'
27
- end
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
- Cucumber::Rake::Task.new({:rerun => 'test:prepare'}, 'Record failing features and run only them if any exist') do |t|
30
- t.binary = vendored_cucumber_bin
31
- t.fork = true # You may get faster startup if you set this to false
32
- t.profile = 'rerun'
33
- end
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
- desc 'Run all features'
36
- task :all => [:ok, :wip]
34
+ desc 'Run all features'
35
+ task all: [:ok, :wip]
37
36
 
38
- task :statsetup do
39
- require 'rails/code_statistics'
40
- ::STATS_DIRECTORIES << %w(Cucumber\ features features) if File.exist?('features')
41
- ::CodeStatistics::TEST_TYPES << "Cucumber features" if File.exist?('features')
42
- end
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
- task :annotations_setup do
45
- Rails.application.configure do
46
- if config.respond_to?(:annotations)
47
- config.annotations.directories << 'features'
48
- config.annotations.register_extensions('feature') { |tag| /#\s*(#{tag}):?\s*(.*)$/ }
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
- end
53
- desc 'Alias for cucumber:ok'
54
- task :cucumber => 'cucumber:ok'
52
+ desc 'Alias for cucumber:ok'
53
+ task cucumber: 'cucumber:ok'
55
54
 
56
- task :default => :cucumber
55
+ task default: :cucumber
57
56
 
58
- task :features => :cucumber do
59
- STDERR.puts "*** The 'features' task is deprecated. See rake -T cucumber ***"
60
- end
57
+ task features: :cucumber do
58
+ warn "*** The 'features' task is deprecated. See rake -T cucumber ***"
59
+ end
61
60
 
62
- # In case we don't have the generic Rails test:prepare hook, append a no-op task that we can depend upon.
63
- task 'test:prepare' do
64
- end
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
- task :stats => 'cucumber:statsetup'
65
+ task stats: 'cucumber:statsetup'
67
66
 
68
- task :notes => 'cucumber:annotations_setup'
69
- rescue LoadError
70
- desc 'cucumber rake task not available (cucumber not installed)'
71
- task :cucumber do
72
- abort 'Cucumber rake task is not available. Be sure to install cucumber as a gem or plugin'
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
@@ -4,12 +4,12 @@
4
4
  # end
5
5
 
6
6
  task :rails_best_practices do
7
- path = File.expand_path("../../../", __FILE__)
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 "brakeman -q -z"
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.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: 2021-04-13 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
- name: rails
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: stripe
33
+ name: paper_trail
29
34
  requirement: !ruby/object:Gem::Requirement
30
35
  requirements:
31
36
  - - "~>"
32
37
  - !ruby/object:Gem::Version
33
- version: '5.26'
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: '5.26'
45
+ version: '12.0'
41
46
  - !ruby/object:Gem::Dependency
42
- name: stripe_event
47
+ name: rails
43
48
  requirement: !ruby/object:Gem::Requirement
44
49
  requirements:
45
- - - "~>"
50
+ - - ">="
46
51
  - !ruby/object:Gem::Version
47
- version: '2.3'
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: '2.3'
62
+ version: '6'
63
+ - - "<"
64
+ - !ruby/object:Gem::Version
65
+ version: '8'
55
66
  - !ruby/object:Gem::Dependency
56
- name: paper_trail
67
+ name: stripe
57
68
  requirement: !ruby/object:Gem::Requirement
58
69
  requirements:
59
70
  - - "~>"
60
71
  - !ruby/object:Gem::Version
61
- version: '12.0'
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: '12.0'
79
+ version: '5.55'
69
80
  - !ruby/object:Gem::Dependency
70
- name: aasm
81
+ name: stripe_event
71
82
  requirement: !ruby/object:Gem::Requirement
72
83
  requirements:
73
84
  - - "~>"
74
85
  - !ruby/object:Gem::Version
75
- version: '4.11'
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: '4.11'
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: rails_best_practices
109
+ name: brakeman
99
110
  requirement: !ruby/object:Gem::Requirement
100
111
  requirements:
101
112
  - - "~>"
102
113
  - !ruby/object:Gem::Version
103
- version: '1.17'
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: '1.17'
121
+ version: '5.4'
111
122
  - !ruby/object:Gem::Dependency
112
- name: brakeman
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: '3.3'
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: '3.3'
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
- post_install_message:
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: 3.1.4
291
- signing_key:
303
+ rubygems_version: 4.0.8
292
304
  specification_version: 4
293
305
  summary: Tang!
294
306
  test_files: []