diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d21ef5553..e9183625c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -59,7 +59,7 @@ jobs: - ubuntu-24.04 # https://docs.stripe.com/sdks/versioning?lang=ruby#stripe-sdk-language-version-support-policy # https://endoflife.date/ruby - ruby-version: ['2.7', '3.0', '3.1', '3.2', '3.3', '3.4', jruby-9.4.7.0, truffleruby-25.0.0] + ruby-version: ['3.0', '3.1', '3.2', '3.3', '3.4', jruby-9.4.7.0, truffleruby-25.0.0] include: - os: windows-latest # use any modern-ish version diff --git a/.hark/changes/2026-09-17_zacchua_rename-reversal-transferreversal.change.md b/.hark/changes/2026-09-17_zacchua_rename-reversal-transferreversal.change.md new file mode 100644 index 000000000..fee1da3a2 --- /dev/null +++ b/.hark/changes/2026-09-17_zacchua_rename-reversal-transferreversal.change.md @@ -0,0 +1,7 @@ +--- +title: Rename `Stripe::Reversal` to `Stripe::TransferReversal` +pr_url: https://github.com/stripe/stripe-ruby/pull/1971 +semver_level: major +--- + +- Rename the `Stripe::Reversal` resource class to `Stripe::TransferReversal`. Update references and Sorbet type annotations to use `Stripe::TransferReversal`. diff --git a/.hark/changes/2026-09-25_unknown_drop-support-ruby-2-7.change.md b/.hark/changes/2026-09-25_unknown_drop-support-ruby-2-7.change.md new file mode 100644 index 000000000..e12148959 --- /dev/null +++ b/.hark/changes/2026-09-25_unknown_drop-support-ruby-2-7.change.md @@ -0,0 +1,4 @@ +--- +title: Drop support for Ruby 2.7 +semver_level: major +--- diff --git a/.hark/migration-guides/v20.md b/.hark/migration-guides/v20.md new file mode 100644 index 000000000..291303ad4 --- /dev/null +++ b/.hark/migration-guides/v20.md @@ -0,0 +1,39 @@ +# Migration guide for v20 + + + +This version uses API version `2026-09-30.endive`. If the format of this API version looks new to you, see our new [API release process](https://stripe.com/blog/introducing-stripes-new-api-release-process). + +Please review our API changelog for `2026-09-30.endive` to understand all the breaking changes to the Stripe API, the reasons behind them and potential alternatives. + +The Ruby SDK specific [changelog for v20](https://github.com/stripe/stripe-ruby/blob/master/CHANGELOG.md) has the corresponding changes in the SDKs as well as SDK specific breaking changes. + +## Minimum Ruby version raised to 3.0 + +Ruby 2.7 is no longer supported. The gem now requires Ruby >= 3.0.0. + +**Action required**: Upgrade to Ruby 3.0 or later before updating to the latest SDK version. For more information, see our [language version support policy](https://docs.stripe.com/sdks/versioning?lang=ruby#stripe-sdk-language-version-support-policy). + +Note that this is the last major release that supports Ruby `3.0`. Please make plans to update to a higher version before March 2027. + +## Rename `Stripe::Reversal` to `Stripe::TransferReversal` + +The class representing a transfer reversal has been renamed from `Stripe::Reversal` to `Stripe::TransferReversal` + +This change affects integrations that reference `Stripe::Reversal` directly, including class comparisons, `is_a?` checks, and Sorbet type annotations. Replace those references with `Stripe::TransferReversal`: + +```ruby +# Before +reversal = Stripe::Transfer.retrieve_reversal("tr_123", "trr_123") +reversal.is_a?(Stripe::Reversal) + +# After +reversal = Stripe::Transfer.retrieve_reversal("tr_123", "trr_123") +reversal.is_a?(Stripe::TransferReversal) +``` + +The methods for creating, retrieving, updating, and listing transfer reversals have not changed. Code that only calls those methods and reads attributes from the returned object does not require an update. diff --git a/.rubocop.yml b/.rubocop.yml index 3cd651ed2..60f2824cc 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -2,7 +2,7 @@ inherit_from: .rubocop_todo.yml AllCops: DisplayCopNames: true - TargetRubyVersion: 2.7 + TargetRubyVersion: 3.0 SuggestExtensions: false Layout/CaseIndentation: diff --git a/Gemfile b/Gemfile index 41d8c1dd8..76cae1ede 100644 --- a/Gemfile +++ b/Gemfile @@ -14,8 +14,8 @@ group :development do gem "test-unit" - # Version doesn't matter that much, but this one contains some fixes for Ruby - # 2.7 warnings that add noise to the test suite. + # Version doesn't matter that much, but this one contains fixes that reduce + # warning noise in the test suite. gem "webmock", ">= 3.8.0" # Rubocop changes pretty quickly: new cops get added and old cops change @@ -24,8 +24,7 @@ group :development do # bad, pin to a specific version number here. Try to keep this relatively # up-to-date, but it's not the end of the world if it's not. # - # The latest version of rubocop is only compatible with Ruby 2.7+ - gem "rubocop", "1.75.2" if RUBY_VERSION >= "2.7" + gem "rubocop", "1.75.2" unless RUBY_PLATFORM =~ /mingw|mswin/ gem "sorbet" diff --git a/Makefile b/Makefile index 218187cf0..e391fd1e6 100644 --- a/Makefile +++ b/Makefile @@ -11,12 +11,6 @@ codegen-format: ci-test: bundle install && bundle exec rake test - @version=$$(ruby -e "puts RUBY_VERSION.split('.')[0..1].join.to_i"); \ - if [ $$version -ge 27 ]; then \ - echo "Ruby version >= 2.7, continue with srb tc"; \ - bundle exec srb tc; \ - else \ - echo "Ruby version < 2.7, skipping srb tc"; \ - fi + bundle exec srb tc test: ci-test diff --git a/README.md b/README.md index 557ba8f8c..abcbde59c 100644 --- a/README.md +++ b/README.md @@ -40,9 +40,9 @@ gem build stripe.gemspec ### Requirements -Per our [Language Version Support Policy](https://docs.stripe.com/sdks/versioning?lang=ruby#stripe-sdk-language-version-support-policy), we currently support **Ruby 2.7+**. +Per our [Language Version Support Policy](https://docs.stripe.com/sdks/versioning?lang=ruby#stripe-sdk-language-version-support-policy), we currently support **Ruby 3.0+**. -Support for Ruby 2.7 is deprecated and will be removed in upcoming major versions. Read more and see the full schedule in the docs: https://docs.stripe.com/sdks/versioning?lang=ruby#stripe-sdk-language-version-support-policy +Support for Ruby 3.0 is deprecated and will be removed in upcoming major versions. Read more and see the full schedule in the docs: https://docs.stripe.com/sdks/versioning?lang=ruby#stripe-sdk-language-version-support-policy ### Bundler diff --git a/justfile b/justfile index 6af454ada..96f3b76d4 100644 --- a/justfile +++ b/justfile @@ -33,11 +33,7 @@ update-certs: install # run sorbet to check type definitions typecheck: install - {{ if semver_matches(`ruby -e "puts RUBY_VERSION"`, ">=2.7") == "true" { \ - "bundle exec srb tc" \ - } else { \ - "echo \"Ruby version < 2.7, skipping srb tc\"" \ - } }} + bundle exec srb tc # called by tooling [private] diff --git a/lib/stripe/object_types.rb b/lib/stripe/object_types.rb index 3ba1c8fce..7ac91ef66 100644 --- a/lib/stripe/object_types.rb +++ b/lib/stripe/object_types.rb @@ -117,7 +117,7 @@ def self.object_names_to_classes Reserve::Plan.object_name => Reserve::Plan, Reserve::Release.object_name => Reserve::Release, ReserveTransaction.object_name => ReserveTransaction, - Reversal.object_name => Reversal, + TransferReversal.object_name => TransferReversal, Review.object_name => Review, SetupAttempt.object_name => SetupAttempt, SetupIntent.object_name => SetupIntent, diff --git a/lib/stripe/resources.rb b/lib/stripe/resources.rb index ead823a48..a7c1a3fd9 100644 --- a/lib/stripe/resources.rb +++ b/lib/stripe/resources.rb @@ -61,7 +61,6 @@ module Stripe autoload :Quote, "stripe/resources/quote" autoload :Refund, "stripe/resources/refund" autoload :ReserveTransaction, "stripe/resources/reserve_transaction" - autoload :Reversal, "stripe/resources/reversal" autoload :Review, "stripe/resources/review" autoload :SetupAttempt, "stripe/resources/setup_attempt" autoload :SetupIntent, "stripe/resources/setup_intent" @@ -79,6 +78,7 @@ module Stripe autoload :Token, "stripe/resources/token" autoload :Topup, "stripe/resources/topup" autoload :Transfer, "stripe/resources/transfer" + autoload :TransferReversal, "stripe/resources/transfer_reversal" autoload :WebhookEndpoint, "stripe/resources/webhook_endpoint" module Apps @@ -424,7 +424,6 @@ module Stripe stripe/resources/reserve/plan stripe/resources/reserve/release stripe/resources/reserve_transaction - stripe/resources/reversal stripe/resources/review stripe/resources/setup_attempt stripe/resources/setup_intent @@ -456,6 +455,7 @@ module Stripe stripe/resources/token stripe/resources/topup stripe/resources/transfer + stripe/resources/transfer_reversal stripe/resources/treasury/credit_reversal stripe/resources/treasury/debit_reversal stripe/resources/treasury/financial_account diff --git a/lib/stripe/resources/reversal.rb b/lib/stripe/resources/transfer_reversal.rb similarity index 98% rename from lib/stripe/resources/reversal.rb rename to lib/stripe/resources/transfer_reversal.rb index 7b212be00..f87e6223a 100644 --- a/lib/stripe/resources/reversal.rb +++ b/lib/stripe/resources/transfer_reversal.rb @@ -15,7 +15,7 @@ module Stripe # reversal. # # Related guide: [Reverse transfers](https://docs.stripe.com/connect/separate-charges-and-transfers#reverse-transfers) - class Reversal < APIResource + class TransferReversal < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "transfer_reversal" diff --git a/lib/stripe/stripe_object.rb b/lib/stripe/stripe_object.rb index 6a7d45149..e055a4c6d 100644 --- a/lib/stripe/stripe_object.rb +++ b/lib/stripe/stripe_object.rb @@ -143,8 +143,8 @@ def inspect # ==== Attributes # # * +values+ - Hash of values to use to update the current attributes of - # the object. If you are on ruby 2.7 or higher make sure to wrap in curly - # braces to be ruby 3 compatible. + # the object. Make sure to wrap values in curly braces for Ruby 3 + # compatibility. # * +opts+ - Options for +StripeObject+ like an API key that will be reused # on subsequent API calls. # diff --git a/rbi/stripe.rbi b/rbi/stripe.rbi index 61a53ef06..cae7a1420 100644 --- a/rbi/stripe.rbi +++ b/rbi/stripe.rbi @@ -5808,7 +5808,7 @@ module Stripe def reporting_category; end # This transaction relates to the Stripe object. sig { - returns(T.nilable(T.any(String, T.any(::Stripe::ApplicationFee, ::Stripe::Charge, ::Stripe::ConnectCollectionTransfer, ::Stripe::CustomerCashBalanceTransaction, ::Stripe::Dispute, ::Stripe::ApplicationFeeRefund, ::Stripe::Issuing::Authorization, ::Stripe::Issuing::Dispute, ::Stripe::Issuing::Transaction, ::Stripe::Payout, ::Stripe::Refund, ::Stripe::ReserveTransaction, ::Stripe::TaxDeductedAtSource, ::Stripe::Topup, ::Stripe::Transfer, ::Stripe::Reversal)))) + returns(T.nilable(T.any(String, T.any(::Stripe::ApplicationFee, ::Stripe::Charge, ::Stripe::ConnectCollectionTransfer, ::Stripe::CustomerCashBalanceTransaction, ::Stripe::Dispute, ::Stripe::ApplicationFeeRefund, ::Stripe::Issuing::Authorization, ::Stripe::Issuing::Dispute, ::Stripe::Issuing::Transaction, ::Stripe::Payout, ::Stripe::Refund, ::Stripe::ReserveTransaction, ::Stripe::TaxDeductedAtSource, ::Stripe::Topup, ::Stripe::Transfer, ::Stripe::TransferReversal)))) } def source; end # The transaction's net funds status in the Stripe balance, which are either `available` or `pending`. @@ -39307,13 +39307,13 @@ module Stripe sig { returns(T.nilable(String)) } def receipt_number; end # The transfer reversal that's associated with the refund. Only present if the charge came from another Stripe account. - sig { returns(T.nilable(T.any(String, ::Stripe::Reversal))) } + sig { returns(T.nilable(T.any(String, ::Stripe::TransferReversal))) } def source_transfer_reversal; end # Status of the refund. This can be `pending`, `requires_action`, `succeeded`, `failed`, or `canceled`. Learn more about [failed refunds](https://docs.stripe.com/refunds#failed-refunds). sig { returns(T.nilable(String)) } def status; end # This refers to the transfer reversal object if the accompanying transfer reverses. This is only applicable if the charge was created using the destination parameter. - sig { returns(T.nilable(T.any(String, ::Stripe::Reversal))) } + sig { returns(T.nilable(T.any(String, ::Stripe::TransferReversal))) } def transfer_reversal; end # Cancels a refund with a status of requires_action. # @@ -50102,7 +50102,7 @@ module Stripe # reversal. # # Related guide: [Reverse transfers](https://docs.stripe.com/connect/separate-charges-and-transfers#reverse-transfers) - class Reversal < APIResource + class TransferReversal < APIResource # Amount, in cents (or local equivalent). sig { returns(Integer) } def amount; end @@ -61417,7 +61417,7 @@ module Stripe # # Once entirely reversed, a transfer can't be reversed again. This method will return an error when called on an already-reversed transfer, or when trying to reverse more money than is left on a transfer. sig { - params(id: String, params: T.any(::Stripe::TransferReversalCreateParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(::Stripe::Reversal) + params(id: String, params: T.any(::Stripe::TransferReversalCreateParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(::Stripe::TransferReversal) } def create(id, params = {}, opts = {}); end @@ -61429,7 +61429,7 @@ module Stripe # By default, you can see the 10 most recent reversals stored directly on the transfer object, but you can also retrieve details about a specific reversal stored on the transfer. sig { - params(transfer: String, id: String, params: T.any(::Stripe::TransferReversalRetrieveParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(::Stripe::Reversal) + params(transfer: String, id: String, params: T.any(::Stripe::TransferReversalRetrieveParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(::Stripe::TransferReversal) } def retrieve(transfer, id, params = {}, opts = {}); end @@ -61437,7 +61437,7 @@ module Stripe # # This request only accepts metadata and description as arguments. sig { - params(transfer: String, id: String, params: T.any(::Stripe::TransferReversalUpdateParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(::Stripe::Reversal) + params(transfer: String, id: String, params: T.any(::Stripe::TransferReversalUpdateParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(::Stripe::TransferReversal) } def update(transfer, id, params = {}, opts = {}); end end @@ -173643,4 +173643,4 @@ module Stripe class EventDestinationPingParams < ::Stripe::RequestParams; end end end -end \ No newline at end of file +end diff --git a/rbi/stripe/resources/balance_transaction.rbi b/rbi/stripe/resources/balance_transaction.rbi index c271e5c73..c3e3aaca8 100644 --- a/rbi/stripe/resources/balance_transaction.rbi +++ b/rbi/stripe/resources/balance_transaction.rbi @@ -72,7 +72,7 @@ module Stripe def reporting_category; end # This transaction relates to the Stripe object. sig { - returns(T.nilable(T.any(String, T.any(::Stripe::ApplicationFee, ::Stripe::Charge, ::Stripe::ConnectCollectionTransfer, ::Stripe::CustomerCashBalanceTransaction, ::Stripe::Dispute, ::Stripe::ApplicationFeeRefund, ::Stripe::Issuing::Authorization, ::Stripe::Issuing::Dispute, ::Stripe::Issuing::Transaction, ::Stripe::Payout, ::Stripe::Refund, ::Stripe::ReserveTransaction, ::Stripe::TaxDeductedAtSource, ::Stripe::Topup, ::Stripe::Transfer, ::Stripe::Reversal)))) + returns(T.nilable(T.any(String, T.any(::Stripe::ApplicationFee, ::Stripe::Charge, ::Stripe::ConnectCollectionTransfer, ::Stripe::CustomerCashBalanceTransaction, ::Stripe::Dispute, ::Stripe::ApplicationFeeRefund, ::Stripe::Issuing::Authorization, ::Stripe::Issuing::Dispute, ::Stripe::Issuing::Transaction, ::Stripe::Payout, ::Stripe::Refund, ::Stripe::ReserveTransaction, ::Stripe::TaxDeductedAtSource, ::Stripe::Topup, ::Stripe::Transfer, ::Stripe::TransferReversal)))) } def source; end # The transaction's net funds status in the Stripe balance, which are either `available` or `pending`. @@ -89,4 +89,4 @@ module Stripe } def self.list(params = {}, opts = {}); end end -end \ No newline at end of file +end diff --git a/rbi/stripe/resources/refund.rbi b/rbi/stripe/resources/refund.rbi index 0d874147e..a60b458d0 100644 --- a/rbi/stripe/resources/refund.rbi +++ b/rbi/stripe/resources/refund.rbi @@ -672,13 +672,13 @@ module Stripe sig { returns(T.nilable(String)) } def receipt_number; end # The transfer reversal that's associated with the refund. Only present if the charge came from another Stripe account. - sig { returns(T.nilable(T.any(String, ::Stripe::Reversal))) } + sig { returns(T.nilable(T.any(String, ::Stripe::TransferReversal))) } def source_transfer_reversal; end # Status of the refund. This can be `pending`, `requires_action`, `succeeded`, `failed`, or `canceled`. Learn more about [failed refunds](https://docs.stripe.com/refunds#failed-refunds). sig { returns(T.nilable(String)) } def status; end # This refers to the transfer reversal object if the accompanying transfer reverses. This is only applicable if the charge was created using the destination parameter. - sig { returns(T.nilable(T.any(String, ::Stripe::Reversal))) } + sig { returns(T.nilable(T.any(String, ::Stripe::TransferReversal))) } def transfer_reversal; end # Cancels a refund with a status of requires_action. # @@ -726,4 +726,4 @@ module Stripe } def self.update(refund, params = {}, opts = {}); end end -end \ No newline at end of file +end diff --git a/rbi/stripe/resources/reversal.rbi b/rbi/stripe/resources/transfer_reversal.rbi similarity index 98% rename from rbi/stripe/resources/reversal.rbi rename to rbi/stripe/resources/transfer_reversal.rbi index 1e514900b..247381efb 100644 --- a/rbi/stripe/resources/reversal.rbi +++ b/rbi/stripe/resources/transfer_reversal.rbi @@ -16,7 +16,7 @@ module Stripe # reversal. # # Related guide: [Reverse transfers](https://docs.stripe.com/connect/separate-charges-and-transfers#reverse-transfers) - class Reversal < APIResource + class TransferReversal < APIResource # Amount, in cents (or local equivalent). sig { returns(Integer) } def amount; end @@ -48,4 +48,4 @@ module Stripe sig { returns(T.any(String, ::Stripe::Transfer)) } def transfer; end end -end \ No newline at end of file +end diff --git a/rbi/stripe/services/transfer_reversal_service.rbi b/rbi/stripe/services/transfer_reversal_service.rbi index 86713f04c..4a5bc7ff3 100644 --- a/rbi/stripe/services/transfer_reversal_service.rbi +++ b/rbi/stripe/services/transfer_reversal_service.rbi @@ -10,7 +10,7 @@ module Stripe # # Once entirely reversed, a transfer can't be reversed again. This method will return an error when called on an already-reversed transfer, or when trying to reverse more money than is left on a transfer. sig { - params(id: String, params: T.any(::Stripe::TransferReversalCreateParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(::Stripe::Reversal) + params(id: String, params: T.any(::Stripe::TransferReversalCreateParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(::Stripe::TransferReversal) } def create(id, params = {}, opts = {}); end @@ -22,7 +22,7 @@ module Stripe # By default, you can see the 10 most recent reversals stored directly on the transfer object, but you can also retrieve details about a specific reversal stored on the transfer. sig { - params(transfer: String, id: String, params: T.any(::Stripe::TransferReversalRetrieveParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(::Stripe::Reversal) + params(transfer: String, id: String, params: T.any(::Stripe::TransferReversalRetrieveParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(::Stripe::TransferReversal) } def retrieve(transfer, id, params = {}, opts = {}); end @@ -30,8 +30,8 @@ module Stripe # # This request only accepts metadata and description as arguments. sig { - params(transfer: String, id: String, params: T.any(::Stripe::TransferReversalUpdateParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(::Stripe::Reversal) + params(transfer: String, id: String, params: T.any(::Stripe::TransferReversalUpdateParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(::Stripe::TransferReversal) } def update(transfer, id, params = {}, opts = {}); end end -end \ No newline at end of file +end diff --git a/stripe.gemspec b/stripe.gemspec index 3f071dbbe..5f982c5d4 100644 --- a/stripe.gemspec +++ b/stripe.gemspec @@ -7,7 +7,7 @@ require "stripe/version" Gem::Specification.new do |s| s.name = "stripe" s.version = Stripe::VERSION - s.required_ruby_version = ">= 2.7.0" + s.required_ruby_version = ">= 3.0.0" s.summary = "Ruby bindings for the Stripe API" s.description = "Stripe is the easiest way to accept payments online. " \ "See https://stripe.com for details." diff --git a/test/stripe/generated_examples_test.rb b/test/stripe/generated_examples_test.rb index 2f36ecfa7..d666cb028 100644 --- a/test/stripe/generated_examples_test.rb +++ b/test/stripe/generated_examples_test.rb @@ -6848,7 +6848,7 @@ class CodegennedExampleTest < Test::Unit::TestCase assert_requested :post, "#{Stripe::DEFAULT_API_BASE}/v1/transfers/tr_xxxxxxxxxxxxx" end should "Test transfers reversals get" do - reversals = Stripe::Transfer.list_reversals("tr_xxxxxxxxxxxxx", { limit: 3 }) + transfer_reversals = Stripe::Transfer.list_reversals("tr_xxxxxxxxxxxxx", { limit: 3 }) assert_requested :get, "#{Stripe.api_base}/v1/transfers/tr_xxxxxxxxxxxxx/reversals?limit=3" end should "Test transfers reversals get (service)" do @@ -6858,11 +6858,11 @@ class CodegennedExampleTest < Test::Unit::TestCase ).to_return(body: "{}") client = Stripe::StripeClient.new("sk_test_123") - reversals = client.v1.transfers.reversals.list("tr_xxxxxxxxxxxxx", { limit: 3 }) + transfer_reversals = client.v1.transfers.reversals.list("tr_xxxxxxxxxxxxx", { limit: 3 }) assert_requested :get, "#{Stripe::DEFAULT_API_BASE}/v1/transfers/tr_xxxxxxxxxxxxx/reversals?limit=3" end should "Test transfers reversals get 2" do - reversal = Stripe::Transfer.retrieve_reversal("tr_xxxxxxxxxxxxx", "trr_xxxxxxxxxxxxx") + transfer_reversal = Stripe::Transfer.retrieve_reversal("tr_xxxxxxxxxxxxx", "trr_xxxxxxxxxxxxx") assert_requested :get, "#{Stripe.api_base}/v1/transfers/tr_xxxxxxxxxxxxx/reversals/trr_xxxxxxxxxxxxx" end should "Test transfers reversals get 2 (service)" do @@ -6872,11 +6872,11 @@ class CodegennedExampleTest < Test::Unit::TestCase ).to_return(body: "{}") client = Stripe::StripeClient.new("sk_test_123") - reversal = client.v1.transfers.reversals.retrieve("tr_xxxxxxxxxxxxx", "trr_xxxxxxxxxxxxx") + transfer_reversal = client.v1.transfers.reversals.retrieve("tr_xxxxxxxxxxxxx", "trr_xxxxxxxxxxxxx") assert_requested :get, "#{Stripe::DEFAULT_API_BASE}/v1/transfers/tr_xxxxxxxxxxxxx/reversals/trr_xxxxxxxxxxxxx" end should "Test transfers reversals post 2" do - reversal = Stripe::Transfer.update_reversal( + transfer_reversal = Stripe::Transfer.update_reversal( "tr_xxxxxxxxxxxxx", "trr_xxxxxxxxxxxxx", { metadata: { order_id: "6735" } } @@ -6890,7 +6890,7 @@ class CodegennedExampleTest < Test::Unit::TestCase ).to_return(body: "{}") client = Stripe::StripeClient.new("sk_test_123") - reversal = client.v1.transfers.reversals.update( + transfer_reversal = client.v1.transfers.reversals.update( "tr_xxxxxxxxxxxxx", "trr_xxxxxxxxxxxxx", { metadata: { order_id: "6735" } } diff --git a/test/stripe/stripe_object_test.rb b/test/stripe/stripe_object_test.rb index 2b192fa09..905988f9f 100644 --- a/test/stripe/stripe_object_test.rb +++ b/test/stripe/stripe_object_test.rb @@ -103,7 +103,7 @@ class StripeObjectTest < Test::Unit::TestCase copy_obj = Stripe::StripeObject.send(:deep_copy, obj, api_mode: :v1) assert_equal values, copy_obj.instance_variable_get(:@values) - assert_equal opts.reject { |k, _v| k == :client }, + assert_equal opts.except(:client), copy_obj.instance_variable_get(:@opts) end diff --git a/test/stripe/stripe_service_test.rb b/test/stripe/stripe_service_test.rb index bcee1cbca..9288be4a8 100644 --- a/test/stripe/stripe_service_test.rb +++ b/test/stripe/stripe_service_test.rb @@ -46,8 +46,8 @@ def initialize(client) @meter_events_bases = TestMeterEventsBaseService.new(client.instance_variable_get(:@requestor)) end - def method_missing(method, *args, &block) - @client.send(method, *args, &block) + def method_missing(method, ...) + @client.send(method, ...) end def respond_to_missing?(method, include_private = false) diff --git a/test/stripe/reversal_test.rb b/test/stripe/transfer_reversal_test.rb similarity index 83% rename from test/stripe/reversal_test.rb rename to test/stripe/transfer_reversal_test.rb index 009f93566..e2fb155ea 100644 --- a/test/stripe/reversal_test.rb +++ b/test/stripe/transfer_reversal_test.rb @@ -3,7 +3,7 @@ require File.expand_path("../test_helper", __dir__) module Stripe - class ReversalTest < Test::Unit::TestCase + class TransferReversalTest < Test::Unit::TestCase setup do @transfer = Stripe::Transfer.retrieve("tr_123") end @@ -13,14 +13,14 @@ class ReversalTest < Test::Unit::TestCase assert_requested :get, "#{Stripe.api_base}/v1/transfers/#{@transfer.id}/reversals" assert reversals.data.is_a?(Array) - assert reversals.data[0].is_a?(Stripe::Reversal) + assert reversals.data[0].is_a?(Stripe::TransferReversal) end should "be retrievable" do reversal = @transfer.reversals.retrieve("trr_123") assert_requested :get, "#{Stripe.api_base}/v1/transfers/#{@transfer.id}/reversals/trr_123" - assert reversal.is_a?(Stripe::Reversal) + assert reversal.is_a?(Stripe::TransferReversal) end should "be creatable" do @@ -29,7 +29,7 @@ class ReversalTest < Test::Unit::TestCase ) assert_requested :post, "#{Stripe.api_base}/v1/transfers/#{@transfer.id}/reversals" - assert reversal.is_a?(Stripe::Reversal) + assert reversal.is_a?(Stripe::TransferReversal) end should "be saveable" do diff --git a/test/stripe/transfer_test.rb b/test/stripe/transfer_test.rb index 1bc7897f2..33a47b17c 100644 --- a/test/stripe/transfer_test.rb +++ b/test/stripe/transfer_test.rb @@ -47,7 +47,7 @@ class TransferTest < Test::Unit::TestCase amount: 100 ) assert_requested :post, "#{Stripe.api_base}/v1/transfers/tr_123/reversals" - assert reversal.is_a?(Stripe::Reversal) + assert reversal.is_a?(Stripe::TransferReversal) end end @@ -58,7 +58,7 @@ class TransferTest < Test::Unit::TestCase "trr_123" ) assert_requested :get, "#{Stripe.api_base}/v1/transfers/tr_123/reversals/trr_123" - assert reversal.is_a?(Stripe::Reversal) + assert reversal.is_a?(Stripe::TransferReversal) end end @@ -70,7 +70,7 @@ class TransferTest < Test::Unit::TestCase metadata: { foo: "bar" } ) assert_requested :post, "#{Stripe.api_base}/v1/transfers/tr_123/reversals/trr_123" - assert reversal.is_a?(Stripe::Reversal) + assert reversal.is_a?(Stripe::TransferReversal) end end @@ -93,7 +93,7 @@ class TransferTest < Test::Unit::TestCase {} ) assert_requested :get, "#{Stripe.api_base}/v1/transfers/tr_123/reversals/trr_123?expand%5B%5D=transfer" - assert reversal.is_a?(Stripe::Reversal) + assert reversal.is_a?(Stripe::TransferReversal) end should "be retrievable with opts and params" do @@ -105,7 +105,7 @@ class TransferTest < Test::Unit::TestCase assert_equal("acct_123", req.headers["Stripe-Account"]) true end - assert transfer_reversal.is_a?(Stripe::Reversal) + assert transfer_reversal.is_a?(Stripe::TransferReversal) end should "be retrievable with params and an explicitly empty opts" do transfer_reversal = Stripe::Transfer.retrieve_reversal( @@ -118,7 +118,7 @@ class TransferTest < Test::Unit::TestCase assert_nil(req.headers["Stripe-Account"]) true end - assert transfer_reversal.is_a?(Stripe::Reversal) + assert transfer_reversal.is_a?(Stripe::TransferReversal) end end end diff --git a/test/stripe_mock.rb b/test/stripe_mock.rb index edb3835e4..d91c7418f 100644 --- a/test/stripe_mock.rb +++ b/test/stripe_mock.rb @@ -4,8 +4,8 @@ module Stripe class StripeMock include Singleton - PATH_SPEC = "#{::File.dirname(__FILE__)}/openapi/spec3.json" - PATH_FIXTURES = "#{::File.dirname(__FILE__)}/openapi/fixtures3.json" + PATH_SPEC = "#{::File.dirname(__FILE__)}/openapi/spec3.json".freeze + PATH_FIXTURES = "#{::File.dirname(__FILE__)}/openapi/fixtures3.json".freeze @pid = nil @port = -1