stripe 5.13.0 → 5.14.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: 7924a6c0f1c0e2d9ca240993b1c712ba67cffe7ffd2b0d7cc6583d15458d1dd8
4
- data.tar.gz: 2218883f89ec0cbfd2e7e70b7811df20157bc6bb0767d2a633d04673e206205b
3
+ metadata.gz: 47a1fda0057d116729cd70477218913ecf097898f633952d287327ecfaf99133
4
+ data.tar.gz: ed37e7cb7f025d48a11d075bc507cb6e84f92a36fc542f8d8bcff1bc8729dc50
5
5
  SHA512:
6
- metadata.gz: df0af80373f9e1b1fbc3f2fd071dd69eb1c0de845af2e1ea445fc2ceb1d6b277acc6548407680b123074a9c6a9c9a2b585875104391b3cb5c6bb154313faac7d
7
- data.tar.gz: '0325253693ccd991bfb19afb2c2f8acb7cfbe1ffbe51f2488bba98faf6c21d5646f11b27ee1460462363717963b66e2191ec294eed1cee9b555f82d0281fa8cc'
6
+ metadata.gz: 84dda96e1a4da56d9643b13ae8bb6c6352f90baae770de860834461c73f3489501a81a03c3f98e4f0d0da9e6284c66111df743b9c907fbc82774979ab4f009d0
7
+ data.tar.gz: 4d166d7eded67674487f2f1e678e86d11a6cb54f88848e185a55a4bca93831307f2dca9f8cc2b8608f1305d7193715ddba48e3bbe3baa0e5245b582fe3bd9090
data/.rubocop.yml CHANGED
@@ -13,18 +13,23 @@ AllCops:
13
13
  Layout/CaseIndentation:
14
14
  EnforcedStyle: end
15
15
 
16
- Layout/IndentFirstArrayElement:
16
+ Layout/FirstArrayElementIndentation:
17
17
  EnforcedStyle: consistent
18
18
 
19
- Layout/IndentFirstHashElement:
19
+ Layout/FirstHashElementIndentation:
20
20
  EnforcedStyle: consistent
21
21
 
22
22
  # This can be re-enabled once we're 2.3+ only and can use the squiggly heredoc
23
23
  # operator. Prior to that, Rubocop recommended bringing in a library like
24
24
  # ActiveSupport to get heredoc indentation, which is just terrible.
25
- Layout/IndentHeredoc:
25
+ Layout/HeredocIndentation:
26
26
  Enabled: false
27
27
 
28
+ Layout/LineLength:
29
+ Exclude:
30
+ - "lib/stripe/resources/**/*.rb"
31
+ - "test/**/*.rb"
32
+
28
33
  Metrics/BlockLength:
29
34
  Max: 40
30
35
  Exclude:
@@ -38,11 +43,6 @@ Metrics/ClassLength:
38
43
  # to adhere to this rule.
39
44
  - "test/**/*.rb"
40
45
 
41
- Metrics/LineLength:
42
- Exclude:
43
- - "lib/stripe/resources/**/*.rb"
44
- - "test/**/*.rb"
45
-
46
46
  Metrics/MethodLength:
47
47
  # There's ~2 long methods in `StripeClient`. If we want to truncate those a
48
48
  # little, we could move this to be closer to ~30 (but the default of 10 is
data/.travis.yml CHANGED
@@ -17,7 +17,7 @@ sudo: false
17
17
  env:
18
18
  global:
19
19
  # If changing this number, please also change it in `test/test_helper.rb`.
20
- - STRIPE_MOCK_VERSION=0.76.0
20
+ - STRIPE_MOCK_VERSION=0.79.0
21
21
 
22
22
  cache:
23
23
  directories:
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 5.14.0 - 2020-01-14
4
+ * [#896](https://github.com/stripe/stripe-ruby/pull/896) Add support for `CreditNoteLineItem`
5
+ * [#894](https://github.com/stripe/stripe-ruby/pull/894) Clean up test output by capturing `$stderr` when we expect warnings
6
+ * [#892](https://github.com/stripe/stripe-ruby/pull/892) Explicitly pass a parameter as hash to be more ruby 2.7 friendly
7
+ * [#893](https://github.com/stripe/stripe-ruby/pull/893) Upgrade Rubocop to 0.79
8
+
3
9
  ## 5.13.0 - 2020-01-08
4
10
  * [#891](https://github.com/stripe/stripe-ruby/pull/891) Fix most Ruby 2.7 warnings
5
11
 
data/Gemfile CHANGED
@@ -18,7 +18,7 @@ group :development do
18
18
  # `Gemfile.lock` checked in, so to prevent good builds from suddenly going
19
19
  # bad, pin to a specific version number here. Try to keep this relatively
20
20
  # up-to-date, but it's not the end of the world if it's not.
21
- gem "rubocop", "0.73"
21
+ gem "rubocop", "0.79"
22
22
 
23
23
  platforms :mri do
24
24
  gem "byebug"
data/VERSION CHANGED
@@ -1 +1 @@
1
- 5.13.0
1
+ 5.14.0
@@ -28,6 +28,7 @@ module Stripe
28
28
  CountrySpec::OBJECT_NAME => CountrySpec,
29
29
  Coupon::OBJECT_NAME => Coupon,
30
30
  CreditNote::OBJECT_NAME => CreditNote,
31
+ CreditNoteLineItem::OBJECT_NAME => CreditNoteLineItem,
31
32
  Customer::OBJECT_NAME => Customer,
32
33
  CustomerBalanceTransaction::OBJECT_NAME => CustomerBalanceTransaction,
33
34
  Discount::OBJECT_NAME => Discount,
@@ -18,6 +18,7 @@ require "stripe/resources/checkout/session"
18
18
  require "stripe/resources/country_spec"
19
19
  require "stripe/resources/coupon"
20
20
  require "stripe/resources/credit_note"
21
+ require "stripe/resources/credit_note_line_item"
21
22
  require "stripe/resources/customer"
22
23
  require "stripe/resources/customer_balance_transaction"
23
24
  require "stripe/resources/discount"
@@ -23,5 +23,10 @@ module Stripe
23
23
  resp, opts = request(:get, resource_url + "/preview", params, opts)
24
24
  Util.convert_to_stripe_object(resp.data, opts)
25
25
  end
26
+
27
+ def self.list_preview_line_items(params, opts = {})
28
+ resp, opts = request(:get, resource_url + "/preview/lines", params, opts)
29
+ Util.convert_to_stripe_object(resp.data, opts)
30
+ end
26
31
  end
27
32
  end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Stripe
4
+ class CreditNoteLineItem < StripeObject
5
+ OBJECT_NAME = "credit_note_line_item"
6
+ end
7
+ end
@@ -135,7 +135,8 @@ module Stripe
135
135
  # ==== Attributes
136
136
  #
137
137
  # * +values+ - Hash of values to use to update the current attributes of
138
- # the object.
138
+ # the object. If you are on ruby 2.7 or higher make sure to wrap in curly
139
+ # braces to be ruby 3 compatible.
139
140
  # * +opts+ - Options for +StripeObject+ like an API key that will be reused
140
141
  # on subsequent API calls.
141
142
  #
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Stripe
4
- VERSION = "5.13.0"
4
+ VERSION = "5.14.0"
5
5
  end
@@ -72,5 +72,19 @@ module Stripe
72
72
  assert credit_note.is_a?(Stripe::CreditNote)
73
73
  end
74
74
  end
75
+
76
+ context ".list_preview_line_items" do
77
+ should "list_preview_line_items" do
78
+ line_items = Stripe::CreditNote.list_preview_line_items(
79
+ invoice: "in_123"
80
+ )
81
+ assert_requested :get, "#{Stripe.api_base}/v1/credit_notes/preview/lines",
82
+ query: {
83
+ invoice: "in_123",
84
+ }
85
+ assert line_items.data.is_a?(Array)
86
+ assert line_items.data[0].is_a?(Stripe::CreditNoteLineItem)
87
+ end
88
+ end
75
89
  end
76
90
  end
@@ -99,10 +99,20 @@ module Stripe
99
99
 
100
100
  context "#source_transactions" do
101
101
  should "list source transactions" do
102
- source = Stripe::Source.construct_from(id: "src_123",
103
- object: "source")
104
- source.source_transactions
105
- assert_requested :get, "#{Stripe.api_base}/v1/sources/src_123/source_transactions"
102
+ old_stderr = $stderr
103
+ $stderr = StringIO.new
104
+
105
+ begin
106
+ source = Stripe::Source.construct_from(id: "src_123",
107
+ object: "source")
108
+ source.source_transactions
109
+ assert_requested :get, "#{Stripe.api_base}/v1/sources/src_123/source_transactions"
110
+
111
+ assert_include $stderr.string,
112
+ "use Source.list_source_transactions instead"
113
+ ensure
114
+ $stderr = old_stderr
115
+ end
106
116
  end
107
117
  end
108
118
  end
@@ -212,26 +212,29 @@ module Stripe
212
212
 
213
213
  should "mass assign values with #update_attributes" do
214
214
  obj = Stripe::StripeObject.construct_from(id: 1, name: "Stripe")
215
- obj.update_attributes(name: "STRIPE")
215
+
216
+ obj.update_attributes({ name: "STRIPE" }) # rubocop:disable Style/BracesAroundHashParameters
217
+
216
218
  assert_equal "STRIPE", obj.name
217
219
 
218
220
  # unfortunately, we even assign unknown properties to duplicate the
219
221
  # behavior that we currently have via magic accessors with
220
222
  # method_missing
221
- obj.update_attributes(unknown: "foo")
223
+ obj.update_attributes({ unknown: "foo" }) # rubocop:disable Style/BracesAroundHashParameters
224
+
222
225
  assert_equal "foo", obj.unknown
223
226
  end
224
227
 
225
228
  should "#update_attributes with a hash" do
226
229
  obj = Stripe::StripeObject.construct_from({})
227
- obj.update_attributes(metadata: { foo: "bar" })
230
+ obj.update_attributes({ metadata: { foo: "bar" } }) # rubocop:disable Style/BracesAroundHashParameters
228
231
  assert_equal Stripe::StripeObject, obj.metadata.class
229
232
  end
230
233
 
231
234
  should "create accessors when #update_attributes is called" do
232
235
  obj = Stripe::StripeObject.construct_from({})
233
236
  assert_equal false, obj.send(:metaclass).method_defined?(:foo)
234
- obj.update_attributes(foo: "bar")
237
+ obj.update_attributes({ foo: "bar" }) # rubocop:disable Style/BracesAroundHashParameters
235
238
  assert_equal true, obj.send(:metaclass).method_defined?(:foo)
236
239
  end
237
240
 
@@ -268,7 +271,7 @@ module Stripe
268
271
 
269
272
  should "#serialize_params on a basic object" do
270
273
  obj = Stripe::StripeObject.construct_from(foo: nil)
271
- obj.update_attributes(foo: "bar")
274
+ obj.update_attributes({ foo: "bar" }) # rubocop:disable Style/BracesAroundHashParameters
272
275
  assert_equal({ foo: "bar" }, obj.serialize_params)
273
276
  end
274
277
 
@@ -9,11 +9,21 @@ module Stripe
9
9
  end
10
10
 
11
11
  should "be listable" do
12
- transactions = @sub_item.usage_record_summaries
12
+ old_stderr = $stderr
13
+ $stderr = StringIO.new
13
14
 
14
- assert_requested :get, "#{Stripe.api_base}/v1/subscription_items/#{@sub_item.id}/usage_record_summaries"
15
- assert transactions.data.is_a?(Array)
16
- assert transactions.first.is_a?(Stripe::UsageRecordSummary)
15
+ begin
16
+ transactions = @sub_item.usage_record_summaries
17
+
18
+ assert_requested :get, "#{Stripe.api_base}/v1/subscription_items/#{@sub_item.id}/usage_record_summaries"
19
+ assert transactions.data.is_a?(Array)
20
+ assert transactions.first.is_a?(Stripe::UsageRecordSummary)
21
+
22
+ assert_include $stderr.string,
23
+ "use SubscriptionItem.list_usage_record_summaries instead"
24
+ ensure
25
+ $stderr = old_stderr
26
+ end
17
27
  end
18
28
  end
19
29
  end
data/test/test_helper.rb CHANGED
@@ -16,7 +16,7 @@ require ::File.expand_path("test_data", __dir__)
16
16
  require ::File.expand_path("stripe_mock", __dir__)
17
17
 
18
18
  # If changing this number, please also change it in `.travis.yml`.
19
- MOCK_MINIMUM_VERSION = "0.76.0"
19
+ MOCK_MINIMUM_VERSION = "0.79.0"
20
20
  MOCK_PORT = Stripe::StripeMock.start
21
21
 
22
22
  # Disable all real network connections except those that are outgoing to
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stripe
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.13.0
4
+ version: 5.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stripe
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-08 00:00:00.000000000 Z
11
+ date: 2020-01-14 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Stripe is the easiest way to accept payments online. See https://stripe.com
14
14
  for details.
@@ -73,6 +73,7 @@ files:
73
73
  - lib/stripe/resources/country_spec.rb
74
74
  - lib/stripe/resources/coupon.rb
75
75
  - lib/stripe/resources/credit_note.rb
76
+ - lib/stripe/resources/credit_note_line_item.rb
76
77
  - lib/stripe/resources/customer.rb
77
78
  - lib/stripe/resources/customer_balance_transaction.rb
78
79
  - lib/stripe/resources/discount.rb