stripe-rails 2.3.5 → 2.4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c0689a9e336780e3cfdd44afb914a5f5162e1ffa00f458f43e91b0f325b07be3
4
- data.tar.gz: 74b39a714aea039928fcd94636c080a7ec8cb222a2f3e3a41823285e3c434c25
3
+ metadata.gz: 4f877c1646308e099953867cf62109fc8274a9d452d4b1ddbaddacc421c5bc77
4
+ data.tar.gz: c6986a7464043e10d13580ad1149120931b794070640c4103368daa474580bf9
5
5
  SHA512:
6
- metadata.gz: b5ecf2a6c8812ec03b8accd5ab8453a1a3836dee7b6127692f29f7886a737795027f6f1905a25d68f59afecfc38ac9203d7f01941c133a3f2a80c6d8efeaf51a
7
- data.tar.gz: 10a572f102d2670274dc12868993bfc5c10ba555ef0cc342c081f2569117cb928ea1e6c4a87726b6a1b901cabeee305ff8a7437ae0b4d7515ff0c8016d0e8b3c
6
+ metadata.gz: 132c1fec2a1510815e2694c0150a646cbec3d90f7bf8cb4b231ad209ba28e12e9b40ba2a89f77d75d8499b8a5559c332d4e5f6db9c20f3d4f4ff5b08601f6d7d
7
+ data.tar.gz: 43779b3dfbcfdeeb1ed74c14e783faf09b74dc81a8279a800c815cab4717bfc746d0a1da558853201546199545c25f991eaa44348c477418edae4cca63c3c7bf
@@ -14,12 +14,12 @@ jobs:
14
14
 
15
15
  strategy:
16
16
  matrix:
17
- ruby: [2.5.x, 2.6.x, 2.7.x]
17
+ ruby: [2.5.9, 2.6.10, 2.7.7]
18
18
  gemfile: [Gemfile, gemfiles/rails60.gemfile, gemfiles/rails52.gemfile, gemfiles/rails51.gemfile]
19
19
  steps:
20
20
  - uses: actions/checkout@v1
21
21
  - name: Set up Ruby
22
- uses: actions/setup-ruby@v1
22
+ uses: ruby/setup-ruby@v1
23
23
  with:
24
24
  ruby-version: ${{ matrix.ruby }}
25
25
  - name: Set up Code Climate
data/Changelog.md CHANGED
@@ -1,4 +1,6 @@
1
- ## Unreleased
1
+ ## 2.4.0 (2023-02-04)
2
+
3
+ - Add `tax_behavior` attribute to Price. Thanks @szechyjs !
2
4
 
3
5
  ## 2.3.5 (2022-10-01)
4
6
 
data/Gemfile CHANGED
@@ -16,7 +16,7 @@ group :test do
16
16
  gem 'webmock'
17
17
  # System tests
18
18
  gem 'capybara'
19
- gem 'puma'
19
+ gem 'puma', '< 6' # https://github.com/teamcapybara/capybara/issues/2598
20
20
  gem 'selenium-webdriver'
21
21
  gem 'webdrivers'
22
22
  end
@@ -14,7 +14,7 @@ group :test do
14
14
  gem 'webmock'
15
15
  # Required for system tests
16
16
  gem 'capybara'
17
- gem 'puma'
17
+ gem 'puma', '< 6' # https://github.com/teamcapybara/capybara/issues/2598
18
18
  gem 'selenium-webdriver'
19
19
  gem 'webdrivers'
20
20
  end
@@ -14,7 +14,7 @@ group :test do
14
14
  gem 'webmock'
15
15
  # Required for system tests
16
16
  gem 'capybara'
17
- gem 'puma'
17
+ gem 'puma', '< 6' # https://github.com/teamcapybara/capybara/issues/2598
18
18
  gem 'selenium-webdriver'
19
19
  gem 'webdrivers'
20
20
  end
@@ -13,7 +13,7 @@ group :test do
13
13
  gem 'webmock'
14
14
  # Required for system tests
15
15
  gem 'capybara'
16
- gem 'puma'
16
+ gem 'puma', '< 6' # https://github.com/teamcapybara/capybara/issues/2598
17
17
  gem 'selenium-webdriver'
18
18
  gem 'webdrivers'
19
19
  end
data/lib/stripe/prices.rb CHANGED
@@ -16,6 +16,7 @@ module Stripe
16
16
  :product_id,
17
17
  :recurring,
18
18
  :statement_descriptor,
19
+ :tax_behavior,
19
20
  :tiers,
20
21
  :tiers_mode,
21
22
  :transform_quantity,
@@ -40,6 +41,7 @@ module Stripe
40
41
  validates :billing_scheme, inclusion: { in: %w{ per_unit tiered } }, allow_nil: true
41
42
  validates :recurring_aggregate_usage, inclusion: { in: %w{ sum last_during_period last_ever max } }, allow_nil: true
42
43
  validates :recurring_usage_type, inclusion: { in: %w{ metered licensed } }, allow_nil: true
44
+ validates :tax_behavior, inclusion: { in: %w{ inclusive exclusive unspecified } }, allow_nil: true
43
45
  validates :tiers_mode, inclusion: { in: %w{ graduated volume } }, allow_nil: true
44
46
 
45
47
  validate :name_or_product_id
@@ -171,6 +173,7 @@ module Stripe
171
173
  tiers_mode: tiers_mode,
172
174
  billing_scheme: billing_scheme,
173
175
  lookup_key: @lookup_key,
176
+ tax_behavior: tax_behavior,
174
177
  transform_quantity: transform_quantity,
175
178
  }.merge(product_options).compact
176
179
  end
@@ -1,5 +1,5 @@
1
1
  module Stripe
2
2
  module Rails
3
- VERSION = '2.3.5'.freeze
3
+ VERSION = '2.4.0'.freeze
4
4
  end
5
5
  end
@@ -6,6 +6,12 @@ Stripe.price :gold do |price|
6
6
  }
7
7
  end
8
8
 
9
+ Stripe.price :taxable_gold do |price|
10
+ price.name = 'Taxable Gold'
11
+ price.unit_amount = 699
12
+ price.tax_behavior = 'exclusive'
13
+ end
14
+
9
15
  Stripe.price "Solid Gold".to_sym do |price|
10
16
  price.constant_name = 'SOLID_GOLD'
11
17
  price.name = 'Solid Gold'
@@ -267,6 +267,46 @@ describe 'building prices' do
267
267
  }).must_raise Stripe::InvalidConfigurationError
268
268
  end
269
269
 
270
+ it 'denies invalid tax_behavior' do
271
+ _(lambda {
272
+ Stripe.price :broken do |price|
273
+ price.name = 'Invalid tax'
274
+ price.unit_amount = 999
275
+ price.tax_behavior = 'whatever'
276
+ end
277
+ }).must_raise Stripe::InvalidConfigurationError
278
+ end
279
+
280
+ it 'accepts a tax_behavior of exclusive' do
281
+ Stripe.price :exclusive do |price|
282
+ price.name = 'Exclusive tax'
283
+ price.unit_amount = 4800
284
+ price.tax_behavior = 'exclusive'
285
+ end
286
+
287
+ _(Stripe::Prices::EXCLUSIVE).wont_be_nil
288
+ end
289
+
290
+ it 'accepts a tax_behavior of inclusive' do
291
+ Stripe.price :inclusive do |price|
292
+ price.name = 'Inclusive tax'
293
+ price.unit_amount = 4800
294
+ price.tax_behavior = 'inclusive'
295
+ end
296
+
297
+ _(Stripe::Prices::INCLUSIVE).wont_be_nil
298
+ end
299
+
300
+ it 'accepts a tax_behavior of unspecified' do
301
+ Stripe.price :unspecified do |price|
302
+ price.name = 'Unspecified tax'
303
+ price.unit_amount = 4800
304
+ price.tax_behavior = 'unspecified'
305
+ end
306
+
307
+ _(Stripe::Prices::UNSPECIFIED).wont_be_nil
308
+ end
309
+
270
310
  describe 'name and product id validation' do
271
311
  it 'should be valid when using just the product id' do
272
312
  Stripe.price :prodded do |price|
@@ -322,6 +362,22 @@ describe 'building prices' do
322
362
  Stripe::Prices::GOLD.put!
323
363
  end
324
364
 
365
+ it 'creates a price with tax_behavior' do
366
+ Stripe::Price.expects(:create).with(
367
+ :lookup_key => 'taxable_gold',
368
+ :nickname => 'taxable_gold',
369
+ :currency => 'usd',
370
+ :product_data => {
371
+ :name => 'Taxable Gold',
372
+ :statement_descriptor => nil
373
+ },
374
+ :unit_amount => 699,
375
+ :recurring => {},
376
+ :tax_behavior => 'exclusive'
377
+ )
378
+ Stripe::Prices::TAXABLE_GOLD.put!
379
+ end
380
+
325
381
  it 'creates a price with an alternative currency' do
326
382
  Stripe::Price.expects(:create).with(
327
383
  :lookup_key => 'alternative_currency',
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stripe-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.5
4
+ version: 2.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Charles Lowell
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2022-10-01 00:00:00.000000000 Z
13
+ date: 2023-02-04 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails
@@ -188,7 +188,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
188
188
  - !ruby/object:Gem::Version
189
189
  version: '0'
190
190
  requirements: []
191
- rubygems_version: 3.3.18
191
+ rubygems_version: 3.3.24
192
192
  signing_key:
193
193
  specification_version: 4
194
194
  summary: A gem to integrate stripe into your rails app