stripe 5.21.0 → 5.25.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +4 -4
  3. data/.travis.yml +1 -1
  4. data/CHANGELOG.md +16 -0
  5. data/README.md +22 -22
  6. data/VERSION +1 -1
  7. data/lib/stripe.rb +32 -166
  8. data/lib/stripe/api_operations/create.rb +1 -1
  9. data/lib/stripe/api_operations/delete.rb +7 -3
  10. data/lib/stripe/api_operations/list.rb +1 -1
  11. data/lib/stripe/api_operations/nested_resource.rb +6 -5
  12. data/lib/stripe/api_operations/request.rb +19 -3
  13. data/lib/stripe/api_operations/save.rb +7 -4
  14. data/lib/stripe/api_resource.rb +4 -3
  15. data/lib/stripe/list_object.rb +2 -2
  16. data/lib/stripe/oauth.rb +3 -3
  17. data/lib/stripe/object_types.rb +2 -0
  18. data/lib/stripe/resources.rb +2 -0
  19. data/lib/stripe/resources/account.rb +2 -1
  20. data/lib/stripe/resources/account_link.rb +1 -0
  21. data/lib/stripe/resources/apple_pay_domain.rb +1 -0
  22. data/lib/stripe/resources/application_fee.rb +1 -0
  23. data/lib/stripe/resources/balance.rb +1 -0
  24. data/lib/stripe/resources/balance_transaction.rb +1 -0
  25. data/lib/stripe/resources/bank_account.rb +2 -1
  26. data/lib/stripe/resources/billing_portal/session.rb +1 -0
  27. data/lib/stripe/resources/bitcoin_receiver.rb +1 -0
  28. data/lib/stripe/resources/card.rb +1 -0
  29. data/lib/stripe/resources/charge.rb +1 -0
  30. data/lib/stripe/resources/checkout/session.rb +4 -0
  31. data/lib/stripe/resources/country_spec.rb +1 -0
  32. data/lib/stripe/resources/coupon.rb +1 -0
  33. data/lib/stripe/resources/credit_note.rb +3 -2
  34. data/lib/stripe/resources/customer.rb +2 -1
  35. data/lib/stripe/resources/dispute.rb +1 -0
  36. data/lib/stripe/resources/ephemeral_key.rb +1 -0
  37. data/lib/stripe/resources/event.rb +1 -0
  38. data/lib/stripe/resources/exchange_rate.rb +1 -0
  39. data/lib/stripe/resources/file.rb +1 -0
  40. data/lib/stripe/resources/file_link.rb +1 -0
  41. data/lib/stripe/resources/invoice.rb +3 -2
  42. data/lib/stripe/resources/invoice_item.rb +1 -0
  43. data/lib/stripe/resources/issuing/authorization.rb +1 -0
  44. data/lib/stripe/resources/issuing/card.rb +1 -0
  45. data/lib/stripe/resources/issuing/cardholder.rb +1 -0
  46. data/lib/stripe/resources/issuing/dispute.rb +12 -0
  47. data/lib/stripe/resources/issuing/transaction.rb +1 -0
  48. data/lib/stripe/resources/line_item.rb +7 -0
  49. data/lib/stripe/resources/mandate.rb +1 -0
  50. data/lib/stripe/resources/order.rb +1 -0
  51. data/lib/stripe/resources/order_return.rb +1 -0
  52. data/lib/stripe/resources/payment_intent.rb +1 -0
  53. data/lib/stripe/resources/payment_method.rb +1 -0
  54. data/lib/stripe/resources/payout.rb +1 -0
  55. data/lib/stripe/resources/plan.rb +1 -0
  56. data/lib/stripe/resources/price.rb +1 -0
  57. data/lib/stripe/resources/product.rb +1 -0
  58. data/lib/stripe/resources/promotion_code.rb +12 -0
  59. data/lib/stripe/resources/radar/early_fraud_warning.rb +1 -0
  60. data/lib/stripe/resources/radar/value_list.rb +1 -0
  61. data/lib/stripe/resources/radar/value_list_item.rb +1 -0
  62. data/lib/stripe/resources/recipient.rb +1 -0
  63. data/lib/stripe/resources/refund.rb +1 -0
  64. data/lib/stripe/resources/reporting/report_run.rb +1 -0
  65. data/lib/stripe/resources/reporting/report_type.rb +1 -0
  66. data/lib/stripe/resources/review.rb +1 -0
  67. data/lib/stripe/resources/setup_intent.rb +1 -0
  68. data/lib/stripe/resources/sigma/scheduled_query_run.rb +1 -0
  69. data/lib/stripe/resources/sku.rb +1 -0
  70. data/lib/stripe/resources/source.rb +4 -3
  71. data/lib/stripe/resources/subscription.rb +1 -0
  72. data/lib/stripe/resources/subscription_item.rb +2 -1
  73. data/lib/stripe/resources/subscription_schedule.rb +1 -0
  74. data/lib/stripe/resources/tax_rate.rb +1 -0
  75. data/lib/stripe/resources/terminal/connection_token.rb +1 -0
  76. data/lib/stripe/resources/terminal/location.rb +1 -0
  77. data/lib/stripe/resources/terminal/reader.rb +1 -0
  78. data/lib/stripe/resources/three_d_secure.rb +1 -0
  79. data/lib/stripe/resources/token.rb +1 -0
  80. data/lib/stripe/resources/topup.rb +1 -0
  81. data/lib/stripe/resources/transfer.rb +1 -0
  82. data/lib/stripe/resources/webhook_endpoint.rb +1 -0
  83. data/lib/stripe/stripe_configuration.rb +167 -0
  84. data/lib/stripe/stripe_object.rb +1 -1
  85. data/lib/stripe/version.rb +1 -1
  86. data/test/stripe/account_link_test.rb +3 -3
  87. data/test/stripe/api_resource_test.rb +7 -7
  88. data/test/stripe/checkout/session_test.rb +12 -0
  89. data/test/stripe/customer_card_test.rb +6 -0
  90. data/test/stripe/issuing/dispute_test.rb +20 -1
  91. data/test/stripe/promotion_code_test.rb +42 -0
  92. data/test/stripe/stripe_configuration_test.rb +128 -0
  93. data/test/stripe/subscription_item_test.rb +1 -1
  94. data/test/stripe_test.rb +88 -19
  95. data/test/test_helper.rb +1 -1
  96. metadata +9 -2
@@ -375,7 +375,7 @@ module Stripe
375
375
  begin
376
376
  super
377
377
  rescue NoMethodError => e
378
- # If we notice the accessed name if our set of transient values we can
378
+ # If we notice the accessed name of our set of transient values we can
379
379
  # give the user a slightly more helpful error message. If not, just
380
380
  # raise right away.
381
381
  raise unless @transient_values.include?(name)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Stripe
4
- VERSION = "5.21.0"
4
+ VERSION = "5.25.0"
5
5
  end
@@ -7,9 +7,9 @@ module Stripe
7
7
  should "be creatable" do
8
8
  link = Stripe::AccountLink.create(
9
9
  account: "acct_123",
10
- failure_url: "https://stripe.com/failure",
11
- success_url: "https://stripe.com/success",
12
- type: "custom_account_verification"
10
+ refresh_url: "https://stripe.com/refresh",
11
+ return_url: "https://stripe.com/return",
12
+ type: "account_onboarding"
13
13
  )
14
14
  assert_requested :post, "#{Stripe.api_base}/v1/account_links"
15
15
  assert link.is_a?(Stripe::AccountLink)
@@ -111,15 +111,15 @@ module Stripe
111
111
  end
112
112
 
113
113
  should "send expand when fetching through ListObject" do
114
- stub_request(:get, "#{Stripe.api_base}/v1/customers/cus_123")
115
- .to_return(body: JSON.generate(customer_fixture))
114
+ stub_request(:get, "#{Stripe.api_base}/v1/charges/ch_123")
115
+ .to_return(body: JSON.generate(charge_fixture))
116
116
 
117
- stub_request(:get, "#{Stripe.api_base}/v1/customers/cus_123/sources/cc_test_card")
118
- .with(query: { "expand" => ["customer"] })
119
- .to_return(body: JSON.generate(customer_fixture))
117
+ stub_request(:get, "#{Stripe.api_base}/v1/charges/ch_123/refunds/re_123")
118
+ .with(query: { "expand" => ["balance_transaction"] })
119
+ .to_return(body: JSON.generate(charge_fixture))
120
120
 
121
- customer = Stripe::Customer.retrieve("cus_123")
122
- customer.sources.retrieve(id: "cc_test_card", expand: [:customer])
121
+ charge = Stripe::Charge.retrieve("ch_123")
122
+ charge.refunds.retrieve(id: "re_123", expand: [:balance_transaction])
123
123
  end
124
124
 
125
125
  context "when specifying per-object credentials" do
@@ -36,6 +36,18 @@ module Stripe
36
36
  assert_requested :get, "#{Stripe.api_base}/v1/checkout/sessions/cs_123"
37
37
  assert charge.is_a?(Stripe::Checkout::Session)
38
38
  end
39
+
40
+ context "#list_line_items" do
41
+ should "list the session's line items" do
42
+ sources = Stripe::Checkout::Session.list_line_items(
43
+ "cs_123"
44
+ )
45
+ assert_requested :get, "#{Stripe.api_base}/v1/checkout/sessions/cs_123/line_items"
46
+ assert sources.is_a?(Stripe::ListObject)
47
+ assert sources.data.is_a?(Array)
48
+ assert sources.data[0].is_a?(Stripe::LineItem)
49
+ end
50
+ end
39
51
  end
40
52
  end
41
53
  end
@@ -5,6 +5,12 @@ require ::File.expand_path("../test_helper", __dir__)
5
5
  module Stripe
6
6
  class CustomerCardTest < Test::Unit::TestCase
7
7
  setup do
8
+ # Unfortunately, the OpenAPI spec has an issue where the sources list has the wrong
9
+ # url so we need to mock this call instead.
10
+ customer_json = { id: "cus_123", object: "customer", sources: { object: "list", data: [], has_more: true, url: "/v1/customers/cus_123/sources" } }
11
+ stub_request(:get, "#{Stripe.api_base}/v1/customers/cus_123")
12
+ .to_return(body: JSON.generate(customer_json))
13
+
8
14
  @customer = Stripe::Customer.retrieve("cus_123")
9
15
  end
10
16
 
@@ -6,7 +6,7 @@ module Stripe
6
6
  module Issuing
7
7
  class DisputeTest < Test::Unit::TestCase
8
8
  should "be creatable" do
9
- dispute = Stripe::Issuing::Dispute.create
9
+ dispute = Stripe::Issuing::Dispute.create(transaction: "ipi_123")
10
10
 
11
11
  assert_requested :post, "#{Stripe.api_base}/v1/issuing/disputes"
12
12
  assert dispute.is_a?(Stripe::Issuing::Dispute)
@@ -30,6 +30,25 @@ module Stripe
30
30
  assert_requested :post, "#{Stripe.api_base}/v1/issuing/disputes/ich_123"
31
31
  assert dispute.is_a?(Stripe::Issuing::Dispute)
32
32
  end
33
+
34
+ context "#submit" do
35
+ should "submit the dispute" do
36
+ dispute = Stripe::Issuing::Dispute.retrieve("idp_123")
37
+ dispute = dispute.submit
38
+ assert_requested :post,
39
+ "#{Stripe.api_base}/v1/issuing/disputes/idp_123/submit"
40
+ assert dispute.is_a?(Stripe::Issuing::Dispute)
41
+ end
42
+ end
43
+
44
+ context ".submit" do
45
+ should "submit the dispute" do
46
+ dispute = Stripe::Issuing::Dispute.submit("idp_123")
47
+ assert_requested :post,
48
+ "#{Stripe.api_base}/v1/issuing/disputes/idp_123/submit"
49
+ assert dispute.is_a?(Stripe::Issuing::Dispute)
50
+ end
51
+ end
33
52
  end
34
53
  end
35
54
  end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ require ::File.expand_path("../test_helper", __dir__)
4
+
5
+ module Stripe
6
+ class PromotionCodeTest < Test::Unit::TestCase
7
+ should "be listable" do
8
+ promotion_codes = Stripe::PromotionCode.list
9
+ assert_requested :get, "#{Stripe.api_base}/v1/promotion_codes"
10
+ assert promotion_codes.data.is_a?(Array)
11
+ assert promotion_codes.first.is_a?(Stripe::PromotionCode)
12
+ end
13
+
14
+ should "be retrievable" do
15
+ coupon = Stripe::PromotionCode.retrieve("PROMO_123")
16
+ assert_requested :get, "#{Stripe.api_base}/v1/promotion_codes/PROMO_123"
17
+ assert coupon.is_a?(Stripe::PromotionCode)
18
+ end
19
+
20
+ should "be creatable" do
21
+ coupon = Stripe::PromotionCode.create(
22
+ coupon: "co_123",
23
+ code: "MYCODE"
24
+ )
25
+ assert_requested :post, "#{Stripe.api_base}/v1/promotion_codes"
26
+ assert coupon.is_a?(Stripe::PromotionCode)
27
+ end
28
+
29
+ should "be saveable" do
30
+ coupon = Stripe::PromotionCode.retrieve("PROMO_123")
31
+ coupon.metadata["key"] = "value"
32
+ coupon.save
33
+ assert_requested :post, "#{Stripe.api_base}/v1/promotion_codes/#{coupon.id}"
34
+ end
35
+
36
+ should "be updateable" do
37
+ coupon = Stripe::PromotionCode.update("PROMO_123", metadata: { key: "value" })
38
+ assert_requested :post, "#{Stripe.api_base}/v1/promotion_codes/PROMO_123"
39
+ assert coupon.is_a?(Stripe::PromotionCode)
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,128 @@
1
+ # frozen_string_literal: true
2
+
3
+ require ::File.expand_path("../test_helper", __dir__)
4
+
5
+ module Stripe
6
+ class StripeConfigurationTest < Test::Unit::TestCase
7
+ context ".setup" do
8
+ should "initialize a new configuration with defaults" do
9
+ config = Stripe::StripeConfiguration.setup
10
+
11
+ assert_equal Stripe::DEFAULT_CA_BUNDLE_PATH, config.ca_bundle_path
12
+ assert_equal true, config.enable_telemetry
13
+ assert_equal true, config.verify_ssl_certs
14
+ assert_equal 2, config.max_network_retry_delay
15
+ assert_equal 0.5, config.initial_network_retry_delay
16
+ assert_equal 0, config.max_network_retries
17
+ assert_equal 30, config.open_timeout
18
+ assert_equal 80, config.read_timeout
19
+ assert_equal "https://api.stripe.com", config.api_base
20
+ assert_equal "https://connect.stripe.com", config.connect_base
21
+ assert_equal "https://files.stripe.com", config.uploads_base
22
+ end
23
+
24
+ should "allow for overrides when a block is passed" do
25
+ config = Stripe::StripeConfiguration.setup do |c|
26
+ c.open_timeout = 100
27
+ c.read_timeout = 100
28
+ end
29
+
30
+ assert_equal 100, config.open_timeout
31
+ assert_equal 100, config.read_timeout
32
+ end
33
+ end
34
+
35
+ context "#reverse_duplicate_merge" do
36
+ should "return a duplicate object with overrides" do
37
+ config = Stripe::StripeConfiguration.setup do |c|
38
+ c.open_timeout = 100
39
+ end
40
+
41
+ duped_config = config.reverse_duplicate_merge(read_timeout: 500)
42
+
43
+ assert_equal config.open_timeout, duped_config.open_timeout
44
+ assert_equal 500, duped_config.read_timeout
45
+ end
46
+ end
47
+
48
+ context "#max_network_retries=" do
49
+ should "coerce the option into an integer" do
50
+ config = Stripe::StripeConfiguration.setup
51
+
52
+ config.max_network_retries = "10"
53
+ assert_equal 10, config.max_network_retries
54
+ end
55
+ end
56
+
57
+ context "#log_level=" do
58
+ should "be backwards compatible with old values" do
59
+ config = Stripe::StripeConfiguration.setup
60
+
61
+ config.log_level = "debug"
62
+ assert_equal Stripe::LEVEL_DEBUG, config.log_level
63
+
64
+ config.log_level = "info"
65
+ assert_equal Stripe::LEVEL_INFO, config.log_level
66
+ end
67
+
68
+ should "raise an error if the value isn't valid" do
69
+ config = Stripe::StripeConfiguration.setup
70
+
71
+ assert_raises ArgumentError do
72
+ config.log_level = "Foo"
73
+ end
74
+ end
75
+ end
76
+
77
+ context "options that require all connection managers to be cleared" do
78
+ should "clear when setting allow ca_bundle_path" do
79
+ config = Stripe::StripeConfiguration.setup
80
+
81
+ StripeClient.expects(:clear_all_connection_managers)
82
+ config.ca_bundle_path = "/path/to/ca/bundle"
83
+ end
84
+
85
+ should "clear when setting open timeout" do
86
+ config = Stripe::StripeConfiguration.setup
87
+
88
+ StripeClient.expects(:clear_all_connection_managers)
89
+ config.open_timeout = 10
90
+ end
91
+
92
+ should "clear when setting read timeout" do
93
+ config = Stripe::StripeConfiguration.setup
94
+
95
+ StripeClient.expects(:clear_all_connection_managers)
96
+ config.read_timeout = 10
97
+ end
98
+
99
+ should "clear when setting uploads_base" do
100
+ config = Stripe::StripeConfiguration.setup
101
+
102
+ StripeClient.expects(:clear_all_connection_managers)
103
+ config.uploads_base = "https://other.stripe.com"
104
+ end
105
+
106
+ should "clearn when setting api_base to be configured" do
107
+ config = Stripe::StripeConfiguration.setup
108
+
109
+ StripeClient.expects(:clear_all_connection_managers)
110
+ config.api_base = "https://other.stripe.com"
111
+ end
112
+
113
+ should "clear when setting connect_base" do
114
+ config = Stripe::StripeConfiguration.setup
115
+
116
+ StripeClient.expects(:clear_all_connection_managers)
117
+ config.connect_base = "https://other.stripe.com"
118
+ end
119
+
120
+ should "clear when setting verify_ssl_certs" do
121
+ config = Stripe::StripeConfiguration.setup
122
+
123
+ StripeClient.expects(:clear_all_connection_managers)
124
+ config.verify_ssl_certs = false
125
+ end
126
+ end
127
+ end
128
+ end
@@ -22,7 +22,7 @@ module Stripe
22
22
 
23
23
  should "be creatable" do
24
24
  item = Stripe::SubscriptionItem.create(
25
- plan: "sapphire-elite",
25
+ price: "sapphire-elite",
26
26
  quantity: 3,
27
27
  subscription: "sub_123"
28
28
  )
@@ -23,28 +23,97 @@ class StripeTest < Test::Unit::TestCase
23
23
  end
24
24
  end
25
25
 
26
- should "allow ca_bundle_path to be configured" do
27
- begin
28
- old = Stripe.ca_bundle_path
29
- Stripe.ca_bundle_path = "path/to/ca/bundle"
30
- assert_equal "path/to/ca/bundle", Stripe.ca_bundle_path
31
- ensure
32
- Stripe.ca_bundle_path = old
26
+ context "forwardable configurations" do
27
+ context "internal configurations" do
28
+ should "return the certificate store" do
29
+ assert Stripe.ca_store.is_a?(OpenSSL::X509::Store)
30
+ end
31
+
32
+ should "return the max_network_retry_delay" do
33
+ assert_equal 2, Stripe.max_network_retry_delay
34
+ end
35
+
36
+ should "return the initial_network_retry_delay" do
37
+ assert_equal 0.5, Stripe.initial_network_retry_delay
38
+ end
33
39
  end
34
- end
35
40
 
36
- should "allow max_network_retries to be configured" do
37
- begin
38
- old = Stripe.max_network_retries
39
- Stripe.max_network_retries = 99
40
- assert_equal 99, Stripe.max_network_retries
41
- ensure
42
- Stripe.max_network_retries = old
41
+ should "allow ca_bundle_path to be configured" do
42
+ Stripe::StripeClient.expects(:clear_all_connection_managers)
43
+ Stripe.ca_bundle_path = "/path/to/ca/bundle"
44
+ assert_equal "/path/to/ca/bundle", Stripe.ca_bundle_path
43
45
  end
44
- end
45
46
 
46
- should "have default open and read timeouts" do
47
- assert_equal Stripe.open_timeout, 30
48
- assert_equal Stripe.read_timeout, 80
47
+ should "allow open timeout to be configured" do
48
+ Stripe.open_timeout = 10
49
+ assert_equal 10, Stripe.open_timeout
50
+ end
51
+
52
+ should "allow read timeout to be configured" do
53
+ Stripe.read_timeout = 10
54
+ assert_equal 10, Stripe.read_timeout
55
+ end
56
+
57
+ should "allow api_key to be configured" do
58
+ Stripe.api_key = "sk_local_test"
59
+ assert_equal "sk_local_test", Stripe.api_key
60
+ end
61
+
62
+ should "allow stripe_account to be configured" do
63
+ Stripe.stripe_account = "acct_1234"
64
+ assert_equal "acct_1234", Stripe.stripe_account
65
+ end
66
+
67
+ should "allow enable_telemetry to be configured" do
68
+ begin
69
+ old = Stripe.enable_telemetry?
70
+
71
+ Stripe.enable_telemetry = false
72
+ assert_equal false, Stripe.enable_telemetry?
73
+ ensure
74
+ Stripe.enable_telemetry = old
75
+ end
76
+ end
77
+
78
+ should "allow log_level to be configured" do
79
+ Stripe.log_level = "debug"
80
+ assert_equal ::Logger::DEBUG, Stripe.log_level
81
+ end
82
+
83
+ should "allow logger to be configured" do
84
+ logger = Object.new
85
+ Stripe.logger = logger
86
+ assert_equal logger, Stripe.logger
87
+ end
88
+
89
+ should "allow proxy to be configured" do
90
+ Stripe.proxy = "http://proxy"
91
+ assert_equal "http://proxy", Stripe.proxy
92
+ end
93
+
94
+ should "allow uploads_base to be configured" do
95
+ Stripe.uploads_base = "https://other.stripe.com"
96
+ assert_equal "https://other.stripe.com", Stripe.uploads_base
97
+ end
98
+
99
+ should "allow api_base to be configured" do
100
+ Stripe.api_base = "https://other.stripe.com"
101
+ assert_equal "https://other.stripe.com", Stripe.api_base
102
+ end
103
+
104
+ should "allow connect_base to be configured" do
105
+ Stripe.connect_base = "https://other.stripe.com"
106
+ assert_equal "https://other.stripe.com", Stripe.connect_base
107
+ end
108
+
109
+ should "allow verify_ssl_certs to be configured" do
110
+ Stripe.verify_ssl_certs = false
111
+ assert_equal false, Stripe.verify_ssl_certs
112
+ end
113
+
114
+ should "allow client_id to be configured" do
115
+ Stripe.client_id = "client"
116
+ assert_equal "client", Stripe.client_id
117
+ end
49
118
  end
50
119
  end
@@ -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.89.0"
19
+ MOCK_MINIMUM_VERSION = "0.98.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.21.0
4
+ version: 5.25.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-04-29 00:00:00.000000000 Z
11
+ date: 2020-09-02 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.
@@ -93,6 +93,7 @@ files:
93
93
  - lib/stripe/resources/issuing/cardholder.rb
94
94
  - lib/stripe/resources/issuing/dispute.rb
95
95
  - lib/stripe/resources/issuing/transaction.rb
96
+ - lib/stripe/resources/line_item.rb
96
97
  - lib/stripe/resources/login_link.rb
97
98
  - lib/stripe/resources/mandate.rb
98
99
  - lib/stripe/resources/order.rb
@@ -104,6 +105,7 @@ files:
104
105
  - lib/stripe/resources/plan.rb
105
106
  - lib/stripe/resources/price.rb
106
107
  - lib/stripe/resources/product.rb
108
+ - lib/stripe/resources/promotion_code.rb
107
109
  - lib/stripe/resources/radar/early_fraud_warning.rb
108
110
  - lib/stripe/resources/radar/value_list.rb
109
111
  - lib/stripe/resources/radar/value_list_item.rb
@@ -136,6 +138,7 @@ files:
136
138
  - lib/stripe/resources/webhook_endpoint.rb
137
139
  - lib/stripe/singleton_api_resource.rb
138
140
  - lib/stripe/stripe_client.rb
141
+ - lib/stripe/stripe_configuration.rb
139
142
  - lib/stripe/stripe_object.rb
140
143
  - lib/stripe/stripe_response.rb
141
144
  - lib/stripe/util.rb
@@ -194,6 +197,7 @@ files:
194
197
  - test/stripe/plan_test.rb
195
198
  - test/stripe/price_test.rb
196
199
  - test/stripe/product_test.rb
200
+ - test/stripe/promotion_code_test.rb
197
201
  - test/stripe/radar/early_fraud_warning_test.rb
198
202
  - test/stripe/radar/value_list_item_test.rb
199
203
  - test/stripe/radar/value_list_test.rb
@@ -208,6 +212,7 @@ files:
208
212
  - test/stripe/sku_test.rb
209
213
  - test/stripe/source_test.rb
210
214
  - test/stripe/stripe_client_test.rb
215
+ - test/stripe/stripe_configuration_test.rb
211
216
  - test/stripe/stripe_object_test.rb
212
217
  - test/stripe/stripe_response_test.rb
213
218
  - test/stripe/subscription_item_test.rb
@@ -311,6 +316,7 @@ test_files:
311
316
  - test/stripe/plan_test.rb
312
317
  - test/stripe/price_test.rb
313
318
  - test/stripe/product_test.rb
319
+ - test/stripe/promotion_code_test.rb
314
320
  - test/stripe/radar/early_fraud_warning_test.rb
315
321
  - test/stripe/radar/value_list_item_test.rb
316
322
  - test/stripe/radar/value_list_test.rb
@@ -325,6 +331,7 @@ test_files:
325
331
  - test/stripe/sku_test.rb
326
332
  - test/stripe/source_test.rb
327
333
  - test/stripe/stripe_client_test.rb
334
+ - test/stripe/stripe_configuration_test.rb
328
335
  - test/stripe/stripe_object_test.rb
329
336
  - test/stripe/stripe_response_test.rb
330
337
  - test/stripe/subscription_item_test.rb