stripe 10.2.0.pre.beta.1 → 10.3.0.pre.beta.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +16 -0
- data/Gemfile +5 -2
- data/OPENAPI_VERSION +1 -1
- data/Rakefile +7 -5
- data/VERSION +1 -1
- data/bin/stripe-console +1 -1
- data/lib/stripe/api_operations/request.rb +3 -5
- data/lib/stripe/api_operations/save.rb +5 -7
- data/lib/stripe/api_resource_test_helpers.rb +2 -2
- data/lib/stripe/connection_manager.rb +4 -6
- data/lib/stripe/errors.rb +3 -11
- data/lib/stripe/instrumentation.rb +5 -21
- data/lib/stripe/multipart_encoder.rb +7 -7
- data/lib/stripe/oauth.rb +6 -6
- data/lib/stripe/object_types.rb +3 -0
- data/lib/stripe/request_signing_authenticator.rb +4 -8
- data/lib/stripe/resources/account.rb +6 -10
- data/lib/stripe/resources/alipay_account.rb +1 -1
- data/lib/stripe/resources/application_fee_refund.rb +1 -1
- data/lib/stripe/resources/bank_account.rb +2 -2
- data/lib/stripe/resources/capability.rb +1 -1
- data/lib/stripe/resources/climate/order.rb +34 -0
- data/lib/stripe/resources/climate/product.rb +14 -0
- data/lib/stripe/resources/climate/supplier.rb +13 -0
- data/lib/stripe/resources/event.rb +2 -2
- data/lib/stripe/resources/file.rb +2 -4
- data/lib/stripe/resources/reversal.rb +1 -1
- data/lib/stripe/resources/tax_id.rb +1 -1
- data/lib/stripe/resources.rb +3 -0
- data/lib/stripe/stripe_client.rb +38 -55
- data/lib/stripe/stripe_configuration.rb +13 -30
- data/lib/stripe/stripe_object.rb +15 -18
- data/lib/stripe/stripe_response.rb +1 -3
- data/lib/stripe/util.rb +10 -12
- data/lib/stripe/version.rb +1 -1
- data/stripe.gemspec +3 -2
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 99e6b9749e8b1212d2c4b42f40c49b220ea10132346b5c8a4eb96894bc06247f
|
4
|
+
data.tar.gz: 76680576e92e252db64df9543df2b1befde7dd1bff4c2d4d74fe946af068a60c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c65eb672e988647ccb5844d722f57cb82d6d7ac2da7e4ee095678104ae8f2a04c2e2bb65abf34aecfcf235838b18cb4a93f6cd3b7d96075f2e4d8a7308b57efc
|
7
|
+
data.tar.gz: 8225c92b8ee117d57a968bbe13b2f9edc274ffae4fd3fd669a749a1e34a9efa1f34965db93ac435d7f8026ed5a1c40fc373b487e80a30be36a5eb0f2728037b0
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,21 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 10.3.0-beta.1 - 2023-11-30
|
4
|
+
* [#1298](https://github.com/stripe/stripe-ruby/pull/1298) Update generated code for beta
|
5
|
+
* [#1296](https://github.com/stripe/stripe-ruby/pull/1296) Merge master into beta
|
6
|
+
|
7
|
+
## 10.2.0 - 2023-11-30
|
8
|
+
* [#1292](https://github.com/stripe/stripe-ruby/pull/1292) Update generated code
|
9
|
+
* Add support for new resources `Climate.Order`, `Climate.Product`, and `Climate.Supplier`
|
10
|
+
* Add support for `cancel`, `create`, `list`, `retrieve`, and `update` methods on resource `Order`
|
11
|
+
* Add support for `list` and `retrieve` methods on resources `Product` and `Supplier`
|
12
|
+
* [#1295](https://github.com/stripe/stripe-ruby/pull/1295) Upgrade rubocop
|
13
|
+
* [#1291](https://github.com/stripe/stripe-ruby/pull/1291) Update generated code
|
14
|
+
|
15
|
+
* [#1290](https://github.com/stripe/stripe-ruby/pull/1290) Update generated code
|
16
|
+
|
17
|
+
* [#1288](https://github.com/stripe/stripe-ruby/pull/1288) Update generated code
|
18
|
+
|
3
19
|
## 10.2.0-beta.1 - 2023-11-02
|
4
20
|
* [#1287](https://github.com/stripe/stripe-ruby/pull/1287) Update generated code for beta
|
5
21
|
* Add support for `attach_payment_intent` method on resource `Invoice`
|
data/Gemfile
CHANGED
@@ -23,10 +23,13 @@ group :development do
|
|
23
23
|
# `Gemfile.lock` checked in, so to prevent good builds from suddenly going
|
24
24
|
# bad, pin to a specific version number here. Try to keep this relatively
|
25
25
|
# up-to-date, but it's not the end of the world if it's not.
|
26
|
-
|
26
|
+
#
|
27
|
+
# The latest version of rubocop is only compatible with Ruby 2.7+
|
28
|
+
gem "rubocop", "1.57.2" if RUBY_VERSION >= "2.7"
|
27
29
|
|
28
30
|
# jaro_winkler 1.5.5 installation fails for jruby
|
29
|
-
|
31
|
+
# don't install on truffleruby
|
32
|
+
gem "jaro_winkler", "1.5.4" unless RUBY_ENGINE == "truffleruby"
|
30
33
|
|
31
34
|
platforms :mri do
|
32
35
|
gem "byebug"
|
data/OPENAPI_VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
v691
|
data/Rakefile
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "rake/testtask"
|
4
|
-
require "rubocop/rake_task"
|
5
4
|
|
6
5
|
task default: %i[test rubocop]
|
7
6
|
|
@@ -9,7 +8,10 @@ Rake::TestTask.new do |t|
|
|
9
8
|
t.pattern = "./test/**/*_test.rb"
|
10
9
|
end
|
11
10
|
|
12
|
-
|
11
|
+
if RUBY_VERSION >= "2.7.0"
|
12
|
+
require "rubocop/rake_task"
|
13
|
+
RuboCop::RakeTask.new
|
14
|
+
end
|
13
15
|
|
14
16
|
desc "Update bundled certs"
|
15
17
|
task :update_certs do
|
@@ -17,7 +19,7 @@ task :update_certs do
|
|
17
19
|
require "uri"
|
18
20
|
|
19
21
|
fetch_file "https://curl.haxx.se/ca/cacert.pem",
|
20
|
-
|
22
|
+
File.expand_path("lib/data/ca-certificates.crt", __dir__)
|
21
23
|
end
|
22
24
|
|
23
25
|
#
|
@@ -25,11 +27,11 @@ end
|
|
25
27
|
#
|
26
28
|
|
27
29
|
def fetch_file(uri, dest)
|
28
|
-
|
30
|
+
File.open(dest, "w") do |file|
|
29
31
|
resp = Net::HTTP.get_response(URI.parse(uri))
|
30
32
|
unless resp.code.to_i == 200
|
31
33
|
abort("bad response when fetching: #{uri}\n" \
|
32
|
-
|
34
|
+
"Status #{resp.code}: #{resp.body}")
|
33
35
|
end
|
34
36
|
file.write(resp.body)
|
35
37
|
puts "Successfully fetched: #{uri}"
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
10.
|
1
|
+
10.3.0-beta.1
|
data/bin/stripe-console
CHANGED
@@ -89,7 +89,7 @@ module Stripe
|
|
89
89
|
|
90
90
|
raise ArgumentError,
|
91
91
|
"request option '#{opt}' should be a string value " \
|
92
|
-
|
92
|
+
"(was a #{val.class})"
|
93
93
|
end
|
94
94
|
end
|
95
95
|
|
@@ -98,14 +98,12 @@ module Stripe
|
|
98
98
|
|
99
99
|
raise ArgumentError,
|
100
100
|
"request params should be either a Hash or nil " \
|
101
|
-
|
101
|
+
"(was a #{params.class})"
|
102
102
|
end
|
103
103
|
|
104
104
|
private def warn_on_opts_in_params(params)
|
105
105
|
Util::OPTS_USER_SPECIFIED.each do |opt|
|
106
|
-
if params.key?(opt)
|
107
|
-
warn("WARNING: '#{opt}' should be in opts instead of params.")
|
108
|
-
end
|
106
|
+
warn("WARNING: '#{opt}' should be in opts instead of params.") if params.key?(opt)
|
109
107
|
end
|
110
108
|
end
|
111
109
|
end
|
@@ -19,9 +19,7 @@ module Stripe
|
|
19
19
|
# {APIOperations::Request.execute_resource_request}.
|
20
20
|
def update(id, params = {}, opts = {})
|
21
21
|
params.each_key do |k|
|
22
|
-
if protected_fields.include?(k)
|
23
|
-
raise ArgumentError, "Cannot update protected field: #{k}"
|
24
|
-
end
|
22
|
+
raise ArgumentError, "Cannot update protected field: #{k}" if protected_fields.include?(k)
|
25
23
|
end
|
26
24
|
|
27
25
|
request_stripe_object(
|
@@ -64,7 +62,7 @@ module Stripe
|
|
64
62
|
|
65
63
|
values = serialize_params(self).merge(params)
|
66
64
|
|
67
|
-
# note that id gets removed here our call to #url above has already
|
65
|
+
# Please note that id gets removed here our call to #url above has already
|
68
66
|
# generated a uri for this object with an identifier baked in
|
69
67
|
values.delete(:id)
|
70
68
|
|
@@ -72,9 +70,9 @@ module Stripe
|
|
72
70
|
initialize_from(resp.data, opts)
|
73
71
|
end
|
74
72
|
extend Gem::Deprecate
|
75
|
-
deprecate :save, "the `update` class method (for examples"\
|
76
|
-
|
77
|
-
|
73
|
+
deprecate :save, "the `update` class method (for examples " \
|
74
|
+
"see https://github.com/stripe/stripe-ruby" \
|
75
|
+
"/wiki/Migration-guide-for-v8)", 2022, 11
|
78
76
|
|
79
77
|
def self.included(base)
|
80
78
|
# Set `metadata` as additive so that when it's set directly we remember
|
@@ -31,8 +31,8 @@ module Stripe
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def self.resource_url
|
34
|
-
"/v1/test_helpers/"\
|
35
|
-
|
34
|
+
"/v1/test_helpers/" \
|
35
|
+
"#{self::RESOURCE_CLASS::OBJECT_NAME.downcase.tr('.', '/')}s"
|
36
36
|
end
|
37
37
|
|
38
38
|
def resource_url
|
@@ -157,9 +157,7 @@ module Stripe
|
|
157
157
|
|
158
158
|
connection.open_timeout = config.open_timeout
|
159
159
|
connection.read_timeout = config.read_timeout
|
160
|
-
if connection.respond_to?(:write_timeout=)
|
161
|
-
connection.write_timeout = config.write_timeout
|
162
|
-
end
|
160
|
+
connection.write_timeout = config.write_timeout if connection.respond_to?(:write_timeout=)
|
163
161
|
|
164
162
|
connection.use_ssl = uri.scheme == "https"
|
165
163
|
|
@@ -192,9 +190,9 @@ module Stripe
|
|
192
190
|
|
193
191
|
@verify_ssl_warned = true
|
194
192
|
warn("WARNING: Running without SSL cert verification. " \
|
195
|
-
|
196
|
-
|
197
|
-
|
193
|
+
"You should never do this in production. " \
|
194
|
+
"Execute `Stripe.verify_ssl_certs = true` to enable " \
|
195
|
+
"verification.")
|
198
196
|
end
|
199
197
|
end
|
200
198
|
end
|
data/lib/stripe/errors.rb
CHANGED
@@ -4,22 +4,14 @@ module Stripe
|
|
4
4
|
# StripeError is the base error from which all other more specific Stripe
|
5
5
|
# errors derive.
|
6
6
|
class StripeError < StandardError
|
7
|
-
attr_reader :message
|
7
|
+
attr_reader :message, :code, :error, :http_body, :http_headers, :http_status, :json_body, :request_id
|
8
8
|
|
9
9
|
# Response contains a StripeResponse object that has some basic information
|
10
10
|
# about the response that conveyed the error.
|
11
|
-
attr_accessor :response
|
12
|
-
|
13
|
-
attr_reader :code
|
14
|
-
attr_reader :error
|
15
|
-
attr_reader :http_body
|
16
|
-
attr_reader :http_headers
|
17
|
-
attr_reader :http_status
|
18
|
-
attr_reader :json_body # equivalent to #data
|
19
|
-
attr_reader :request_id
|
11
|
+
attr_accessor :response # equivalent to #data
|
20
12
|
|
21
13
|
# Initializes a StripeError.
|
22
|
-
def initialize(message = nil, http_status: nil, http_body: nil,
|
14
|
+
def initialize(message = nil, http_status: nil, http_body: nil, # rubocop:todo Lint/MissingSuper
|
23
15
|
json_body: nil, http_headers: nil, code: nil)
|
24
16
|
@message = message
|
25
17
|
@http_status = http_status
|
@@ -4,8 +4,7 @@ module Stripe
|
|
4
4
|
class Instrumentation
|
5
5
|
# Event emitted on `request_begin` callback.
|
6
6
|
class RequestBeginEvent
|
7
|
-
attr_reader :method
|
8
|
-
attr_reader :path
|
7
|
+
attr_reader :method, :path
|
9
8
|
|
10
9
|
# Arbitrary user-provided data in the form of a Ruby hash that's passed
|
11
10
|
# from subscribers on `request_begin` to subscribers on `request_end`.
|
@@ -27,16 +26,8 @@ module Stripe
|
|
27
26
|
|
28
27
|
# Event emitted on `request_end` callback.
|
29
28
|
class RequestEndEvent
|
30
|
-
attr_reader :duration
|
31
|
-
|
32
|
-
attr_reader :method
|
33
|
-
attr_reader :num_retries
|
34
|
-
attr_reader :path
|
35
|
-
attr_reader :request_id
|
36
|
-
attr_reader :response_header
|
37
|
-
attr_reader :response_body
|
38
|
-
attr_reader :request_header
|
39
|
-
attr_reader :request_body
|
29
|
+
attr_reader :duration, :http_status, :method, :num_retries, :path, :request_id, :response_header, :response_body,
|
30
|
+
:request_header, :request_body
|
40
31
|
|
41
32
|
# Arbitrary user-provided data in the form of a Ruby hash that's passed
|
42
33
|
# from subscribers on `request_begin` to subscribers on `request_end`.
|
@@ -62,12 +53,7 @@ module Stripe
|
|
62
53
|
end
|
63
54
|
|
64
55
|
class RequestContext
|
65
|
-
attr_reader :duration
|
66
|
-
attr_reader :method
|
67
|
-
attr_reader :path
|
68
|
-
attr_reader :request_id
|
69
|
-
attr_reader :body
|
70
|
-
attr_reader :header
|
56
|
+
attr_reader :duration, :method, :path, :request_id, :body, :header
|
71
57
|
|
72
58
|
def initialize(duration:, context:, header:)
|
73
59
|
@duration = duration
|
@@ -80,9 +66,7 @@ module Stripe
|
|
80
66
|
end
|
81
67
|
|
82
68
|
class ResponseContext
|
83
|
-
attr_reader :http_status
|
84
|
-
attr_reader :body
|
85
|
-
attr_reader :header
|
69
|
+
attr_reader :http_status, :body, :header
|
86
70
|
|
87
71
|
def initialize(http_status:, response:)
|
88
72
|
@http_status = http_status
|
@@ -106,22 +106,22 @@ module Stripe
|
|
106
106
|
end
|
107
107
|
|
108
108
|
private def write_field(name, data, filename:)
|
109
|
-
if
|
110
|
-
@body << "\r\n"
|
111
|
-
else
|
109
|
+
if @first_field
|
112
110
|
@first_field = false
|
111
|
+
else
|
112
|
+
@body << "\r\n"
|
113
113
|
end
|
114
114
|
|
115
115
|
@body << "--#{@boundary}\r\n"
|
116
116
|
|
117
117
|
if filename
|
118
|
-
@body << %(Content-Disposition: form-data) +
|
118
|
+
@body << (%(Content-Disposition: form-data) +
|
119
119
|
%(; name="#{escape(name.to_s)}") +
|
120
|
-
%(; filename="#{escape(filename)}"\r\n)
|
120
|
+
%(; filename="#{escape(filename)}"\r\n))
|
121
121
|
@body << %(Content-Type: application/octet-stream\r\n)
|
122
122
|
else
|
123
|
-
@body << %(Content-Disposition: form-data) +
|
124
|
-
%(; name="#{escape(name.to_s)}"\r\n)
|
123
|
+
@body << (%(Content-Disposition: form-data) +
|
124
|
+
%(; name="#{escape(name.to_s)}"\r\n))
|
125
125
|
end
|
126
126
|
|
127
127
|
@body << "\r\n"
|
data/lib/stripe/oauth.rb
CHANGED
@@ -18,12 +18,12 @@ module Stripe
|
|
18
18
|
client_id = params[:client_id] || Stripe.client_id
|
19
19
|
unless client_id
|
20
20
|
raise AuthenticationError, "No client_id provided. " \
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
21
|
+
'Set your client_id using "Stripe.client_id = <CLIENT-ID>". ' \
|
22
|
+
"You can find your client_ids in your Stripe dashboard at " \
|
23
|
+
"https://dashboard.stripe.com/account/applications/settings, " \
|
24
|
+
"after registering your account as a platform. See " \
|
25
|
+
"https://stripe.com/docs/connect/standalone-accounts for details, " \
|
26
|
+
"or email support@stripe.com if you have any questions."
|
27
27
|
end
|
28
28
|
client_id
|
29
29
|
end
|
data/lib/stripe/object_types.rb
CHANGED
@@ -33,6 +33,9 @@ module Stripe
|
|
33
33
|
CashBalance::OBJECT_NAME => CashBalance,
|
34
34
|
Charge::OBJECT_NAME => Charge,
|
35
35
|
Checkout::Session::OBJECT_NAME => Checkout::Session,
|
36
|
+
Climate::Order::OBJECT_NAME => Climate::Order,
|
37
|
+
Climate::Product::OBJECT_NAME => Climate::Product,
|
38
|
+
Climate::Supplier::OBJECT_NAME => Climate::Supplier,
|
36
39
|
ConfirmationToken::OBJECT_NAME => ConfirmationToken,
|
37
40
|
CountrySpec::OBJECT_NAME => CountrySpec,
|
38
41
|
Coupon::OBJECT_NAME => Coupon,
|
@@ -13,12 +13,8 @@ module Stripe
|
|
13
13
|
attr_reader :auth_token, :sign_lambda
|
14
14
|
|
15
15
|
def initialize(auth_token, sign_lambda)
|
16
|
-
unless auth_token.is_a?(String)
|
17
|
-
|
18
|
-
end
|
19
|
-
unless sign_lambda.is_a?(Proc)
|
20
|
-
raise ArgumentError, "sign_lambda must be a lambda"
|
21
|
-
end
|
16
|
+
raise ArgumentError, "auth_token must be a string" unless auth_token.is_a?(String)
|
17
|
+
raise ArgumentError, "sign_lambda must be a lambda" unless sign_lambda.is_a?(Proc)
|
22
18
|
|
23
19
|
@auth_token = auth_token
|
24
20
|
@sign_lambda = sign_lambda
|
@@ -68,8 +64,8 @@ module Stripe
|
|
68
64
|
private def encoded_signature(signature_base)
|
69
65
|
Base64.strict_encode64(sign(signature_base))
|
70
66
|
rescue StandardError
|
71
|
-
raise AuthenticationError, "Encountered '#{e.message} (#{e.class})' "\
|
72
|
-
|
67
|
+
raise AuthenticationError, "Encountered '#{e.message} (#{e.class})' " \
|
68
|
+
"when calculating request signature."
|
73
69
|
end
|
74
70
|
|
75
71
|
private def content_digest(content)
|
@@ -123,17 +123,13 @@ module Stripe
|
|
123
123
|
end
|
124
124
|
|
125
125
|
def serialize_params_account(_obj, update_hash, options = {})
|
126
|
-
if (entity = @values[:legal_entity])
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
serialize_additional_owners(entity, owners)
|
131
|
-
end
|
126
|
+
if (entity = @values[:legal_entity]) && (owners = entity[:additional_owners])
|
127
|
+
entity_update = update_hash[:legal_entity] ||= {}
|
128
|
+
entity_update[:additional_owners] =
|
129
|
+
serialize_additional_owners(entity, owners)
|
132
130
|
end
|
133
|
-
if (individual = @values[:individual])
|
134
|
-
|
135
|
-
update_hash[:individual] = individual.serialize_params(options)
|
136
|
-
end
|
131
|
+
if (individual = @values[:individual]) && (individual.is_a?(Person) && !update_hash.key?(:individual))
|
132
|
+
update_hash[:individual] = individual.serialize_params(options)
|
137
133
|
end
|
138
134
|
update_hash
|
139
135
|
end
|
@@ -31,8 +31,8 @@ module Stripe
|
|
31
31
|
|
32
32
|
def self.update(_id, _params = nil, _opts = nil)
|
33
33
|
raise NotImplementedError,
|
34
|
-
"Bank accounts cannot be updated without a customer ID or an
|
35
|
-
"
|
34
|
+
"Bank accounts cannot be updated without a customer ID or an " \
|
35
|
+
"account ID. Update a bank account using " \
|
36
36
|
"`Customer.update_source('customer_id', 'bank_account_id', " \
|
37
37
|
"update_params)` or `Account.update_external_account(" \
|
38
38
|
"'account_id', 'bank_account_id', update_params)`"
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# File generated from our OpenAPI spec
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Stripe
|
5
|
+
module Climate
|
6
|
+
# Orders represent your intent to purchase a particular Climate product. When you create an order, the
|
7
|
+
# payment is deducted from your merchant balance.
|
8
|
+
class Order < APIResource
|
9
|
+
extend Stripe::APIOperations::Create
|
10
|
+
extend Stripe::APIOperations::List
|
11
|
+
include Stripe::APIOperations::Save
|
12
|
+
|
13
|
+
OBJECT_NAME = "climate.order"
|
14
|
+
|
15
|
+
def cancel(params = {}, opts = {})
|
16
|
+
request_stripe_object(
|
17
|
+
method: :post,
|
18
|
+
path: format("/v1/climate/orders/%<order>s/cancel", { order: CGI.escape(self["id"]) }),
|
19
|
+
params: params,
|
20
|
+
opts: opts
|
21
|
+
)
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.cancel(order, params = {}, opts = {})
|
25
|
+
request_stripe_object(
|
26
|
+
method: :post,
|
27
|
+
path: format("/v1/climate/orders/%<order>s/cancel", { order: CGI.escape(order) }),
|
28
|
+
params: params,
|
29
|
+
opts: opts
|
30
|
+
)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# File generated from our OpenAPI spec
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Stripe
|
5
|
+
module Climate
|
6
|
+
# A Climate product represents a type of carbon removal unit available for reservation.
|
7
|
+
# You can retrieve it to see the current price and availability.
|
8
|
+
class Product < APIResource
|
9
|
+
extend Stripe::APIOperations::List
|
10
|
+
|
11
|
+
OBJECT_NAME = "climate.product"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# File generated from our OpenAPI spec
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Stripe
|
5
|
+
module Climate
|
6
|
+
# A supplier of carbon removal.
|
7
|
+
class Supplier < APIResource
|
8
|
+
extend Stripe::APIOperations::List
|
9
|
+
|
10
|
+
OBJECT_NAME = "climate.supplier"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -23,8 +23,8 @@ module Stripe
|
|
23
23
|
# `Event` objects directly to an endpoint on your server. You can manage
|
24
24
|
# webhooks in your
|
25
25
|
# [account settings](https://dashboard.stripe.com/account/webhooks). Learn how
|
26
|
-
# to [listen for events]
|
27
|
-
#
|
26
|
+
# to [listen for events](https://stripe.com/docs/webhooks)
|
27
|
+
# so that your integration can automatically trigger reactions.
|
28
28
|
#
|
29
29
|
# When using [Connect](https://stripe.com/docs/connect), you can also receive event notifications
|
30
30
|
# that occur in connected accounts. For these events, there's an
|
@@ -26,10 +26,8 @@ module Stripe
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def self.create(params = {}, opts = {})
|
29
|
-
if params[:file] && !params[:file].is_a?(String)
|
30
|
-
|
31
|
-
raise ArgumentError, "file must respond to `#read`"
|
32
|
-
end
|
29
|
+
if params[:file] && !params[:file].is_a?(String) && !params[:file].respond_to?(:read)
|
30
|
+
raise ArgumentError, "file must respond to `#read`"
|
33
31
|
end
|
34
32
|
|
35
33
|
config = opts[:client]&.config || Stripe.config
|
data/lib/stripe/resources.rb
CHANGED
@@ -22,6 +22,9 @@ require "stripe/resources/card"
|
|
22
22
|
require "stripe/resources/cash_balance"
|
23
23
|
require "stripe/resources/charge"
|
24
24
|
require "stripe/resources/checkout/session"
|
25
|
+
require "stripe/resources/climate/order"
|
26
|
+
require "stripe/resources/climate/product"
|
27
|
+
require "stripe/resources/climate/supplier"
|
25
28
|
require "stripe/resources/confirmation_token"
|
26
29
|
require "stripe/resources/country_spec"
|
27
30
|
require "stripe/resources/coupon"
|
data/lib/stripe/stripe_client.rb
CHANGED
@@ -36,8 +36,7 @@ module Stripe
|
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
39
|
-
attr_reader :config
|
40
|
-
attr_reader :options
|
39
|
+
attr_reader :config, :options
|
41
40
|
|
42
41
|
# Gets a currently active `StripeClient`. Set for the current thread when
|
43
42
|
# `StripeClient#request` is being run so that API operations being executed
|
@@ -80,9 +79,7 @@ module Stripe
|
|
80
79
|
end
|
81
80
|
end
|
82
81
|
|
83
|
-
if thread_context.default_connection_managers.empty?
|
84
|
-
pruned_contexts << thread_context
|
85
|
-
end
|
82
|
+
pruned_contexts << thread_context if thread_context.default_connection_managers.empty?
|
86
83
|
end
|
87
84
|
|
88
85
|
@thread_contexts_with_connection_managers.subtract(pruned_contexts)
|
@@ -120,7 +117,7 @@ module Stripe
|
|
120
117
|
when Net::OpenTimeout, Net::ReadTimeout
|
121
118
|
# Retry on timeout-related problems (either on open or read).
|
122
119
|
true
|
123
|
-
when EOFError, Errno::ECONNREFUSED, Errno::ECONNRESET,
|
120
|
+
when EOFError, Errno::ECONNREFUSED, Errno::ECONNRESET, # rubocop:todo Lint/DuplicateBranch
|
124
121
|
Errno::EHOSTUNREACH, Errno::ETIMEDOUT, SocketError
|
125
122
|
# Destination refused the connection, the connection was reset, or a
|
126
123
|
# variety of other connection failures. This could occur from a single
|
@@ -290,21 +287,21 @@ module Stripe
|
|
290
287
|
|
291
288
|
ERROR_MESSAGE_CONNECTION =
|
292
289
|
"Unexpected error communicating when trying to connect to " \
|
293
|
-
|
294
|
-
|
295
|
-
|
290
|
+
"Stripe (%s). You may be seeing this message because your DNS is not " \
|
291
|
+
"working or you don't have an internet connection. To check, try " \
|
292
|
+
"running `host stripe.com` from the command line."
|
296
293
|
ERROR_MESSAGE_SSL =
|
297
294
|
"Could not establish a secure connection to Stripe (%s), you " \
|
298
|
-
|
299
|
-
|
300
|
-
|
295
|
+
"may need to upgrade your OpenSSL version. To check, try running " \
|
296
|
+
"`openssl s_client -connect api.stripe.com:443` from the command " \
|
297
|
+
"line."
|
301
298
|
|
302
299
|
# Common error suffix sared by both connect and read timeout messages.
|
303
300
|
ERROR_MESSAGE_TIMEOUT_SUFFIX =
|
304
301
|
"Please check your internet connection and try again. " \
|
305
|
-
|
306
|
-
|
307
|
-
|
302
|
+
"If this problem persists, you should check Stripe's service " \
|
303
|
+
"status at https://status.stripe.com, or let us know at " \
|
304
|
+
"support@stripe.com."
|
308
305
|
|
309
306
|
ERROR_MESSAGE_TIMEOUT_CONNECT = (
|
310
307
|
"Timed out connecting to Stripe (%s). " +
|
@@ -496,9 +493,7 @@ module Stripe
|
|
496
493
|
response_block =
|
497
494
|
if block_given?
|
498
495
|
lambda do |response|
|
499
|
-
unless should_handle_as_error(response.code.to_i)
|
500
|
-
response.read_body(&read_body_chunk_block)
|
501
|
-
end
|
496
|
+
response.read_body(&read_body_chunk_block) unless should_handle_as_error(response.code.to_i)
|
502
497
|
end
|
503
498
|
end
|
504
499
|
|
@@ -523,26 +518,26 @@ module Stripe
|
|
523
518
|
private def check_keys!(api_key, authenticator)
|
524
519
|
if api_key && authenticator
|
525
520
|
raise AuthenticationError, "Can't specify both API key " \
|
526
|
-
|
527
|
-
|
528
|
-
|
521
|
+
"and authenticator. Either set your API key" \
|
522
|
+
'using "Stripe.api_key = <API-KEY>", or set your authenticator ' \
|
523
|
+
'using "Stripe.authenticator = <AUTHENTICATOR>"' \
|
529
524
|
end
|
530
525
|
|
531
526
|
unless api_key || authenticator
|
532
527
|
# Default to missing API key error message for general users.
|
533
528
|
raise AuthenticationError, "No API key provided. " \
|
534
|
-
|
535
|
-
|
536
|
-
|
537
|
-
|
529
|
+
'Set your API key using "Stripe.api_key = <API-KEY>". ' \
|
530
|
+
"You can generate API keys from the Stripe web interface. " \
|
531
|
+
"See https://stripe.com/api for details, or email " \
|
532
|
+
"support@stripe.com if you have any questions."
|
538
533
|
end
|
539
534
|
|
540
535
|
return unless api_key =~ /\s/
|
541
536
|
|
542
537
|
raise AuthenticationError, "Your API key is invalid, as it contains " \
|
543
|
-
|
544
|
-
|
545
|
-
|
538
|
+
"whitespace. (HINT: You can double-check your API key from the " \
|
539
|
+
"Stripe web interface. See https://stripe.com/api for details, or " \
|
540
|
+
"email support@stripe.com if you have any questions.)"
|
546
541
|
end
|
547
542
|
|
548
543
|
# Encodes a set of body parameters using multipart if `Content-Type` is set
|
@@ -571,15 +566,15 @@ module Stripe
|
|
571
566
|
body = Util.encode_parameters(body_params)
|
572
567
|
end
|
573
568
|
|
574
|
-
if api_mode == :preview
|
575
|
-
|
576
|
-
|
577
|
-
|
578
|
-
|
579
|
-
|
580
|
-
|
581
|
-
|
582
|
-
|
569
|
+
body_log = if api_mode == :preview
|
570
|
+
body
|
571
|
+
else
|
572
|
+
# We don't use `Util.encode_parameters` partly as an optimization (to
|
573
|
+
# not redo work we've already done), and partly because the encoded
|
574
|
+
# forms of certain characters introduce a lot of visual noise and it's
|
575
|
+
# nice to have a clearer format for logs.
|
576
|
+
flattened_params.map { |k, v| "#{k}=#{v}" }.join("&")
|
577
|
+
end
|
583
578
|
|
584
579
|
[body, body_log]
|
585
580
|
end
|
@@ -605,9 +600,7 @@ module Stripe
|
|
605
600
|
http_status = resp.code.to_i
|
606
601
|
context = context.dup_from_response_headers(resp)
|
607
602
|
|
608
|
-
if should_handle_as_error(http_status)
|
609
|
-
handle_error_response(resp, context)
|
610
|
-
end
|
603
|
+
handle_error_response(resp, context) if should_handle_as_error(http_status)
|
611
604
|
|
612
605
|
log_response(context, request_start, http_status, resp.body, resp)
|
613
606
|
notify_request_end(context, request_duration, http_status,
|
@@ -657,7 +650,7 @@ module Stripe
|
|
657
650
|
|
658
651
|
# Only handle errors when we know we can do so, and re-raise otherwise.
|
659
652
|
# This should be pretty infrequent.
|
660
|
-
else
|
653
|
+
else # rubocop:todo Lint/DuplicateBranch
|
661
654
|
raise
|
662
655
|
end
|
663
656
|
end
|
@@ -868,7 +861,7 @@ module Stripe
|
|
868
861
|
|
869
862
|
if errors.nil?
|
870
863
|
message = "Unexpected error #{error.class.name} communicating " \
|
871
|
-
|
864
|
+
"with Stripe. Please let us know at support@stripe.com."
|
872
865
|
end
|
873
866
|
|
874
867
|
api_base ||= config.api_base
|
@@ -882,9 +875,7 @@ module Stripe
|
|
882
875
|
|
883
876
|
private def request_headers(api_key, method, api_mode)
|
884
877
|
user_agent = "Stripe/v1 RubyBindings/#{Stripe::VERSION}"
|
885
|
-
unless Stripe.app_info.nil?
|
886
|
-
user_agent += " " + format_app_info(Stripe.app_info)
|
887
|
-
end
|
878
|
+
user_agent += " " + format_app_info(Stripe.app_info) unless Stripe.app_info.nil?
|
888
879
|
|
889
880
|
headers = {
|
890
881
|
"User-Agent" => user_agent,
|
@@ -996,16 +987,8 @@ module Stripe
|
|
996
987
|
# that we can log certain information. It's useful because it means that we
|
997
988
|
# don't have to pass around as many parameters.
|
998
989
|
class RequestLogContext
|
999
|
-
attr_accessor :body
|
1000
|
-
|
1001
|
-
attr_accessor :api_key
|
1002
|
-
attr_accessor :authenticator
|
1003
|
-
attr_accessor :api_version
|
1004
|
-
attr_accessor :idempotency_key
|
1005
|
-
attr_accessor :method
|
1006
|
-
attr_accessor :path
|
1007
|
-
attr_accessor :query
|
1008
|
-
attr_accessor :request_id
|
990
|
+
attr_accessor :body, :account, :api_key, :authenticator, :api_version, :idempotency_key, :method, :path, :query,
|
991
|
+
:request_id
|
1009
992
|
|
1010
993
|
# The idea with this method is that we might want to update some of
|
1011
994
|
# context information because a response that we've received from the API
|
@@ -25,27 +25,12 @@ module Stripe
|
|
25
25
|
# If `.logger` is set, the value of `.log_level` is ignored. The decision on
|
26
26
|
# what levels to print is entirely deferred to the logger.
|
27
27
|
class StripeConfiguration
|
28
|
-
attr_accessor :api_key
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
attr_accessor :stripe_account
|
35
|
-
|
36
|
-
attr_reader :api_base
|
37
|
-
attr_reader :uploads_base
|
38
|
-
attr_reader :connect_base
|
39
|
-
attr_reader :ca_bundle_path
|
40
|
-
attr_reader :log_level
|
41
|
-
attr_reader :initial_network_retry_delay
|
42
|
-
attr_reader :max_network_retries
|
43
|
-
attr_reader :max_network_retry_delay
|
44
|
-
attr_reader :open_timeout
|
45
|
-
attr_reader :read_timeout
|
46
|
-
attr_reader :write_timeout
|
47
|
-
attr_reader :proxy
|
48
|
-
attr_reader :verify_ssl_certs
|
28
|
+
attr_accessor :api_key, :api_version, :authenticator, :client_id, :enable_telemetry, :logger, :stripe_account
|
29
|
+
|
30
|
+
attr_reader :api_base, :uploads_base, :connect_base, :ca_bundle_path, :log_level, :initial_network_retry_delay,
|
31
|
+
# rubocop:todo Layout/LineLength
|
32
|
+
:max_network_retries, :max_network_retry_delay, :open_timeout, :read_timeout, :write_timeout, :proxy, :verify_ssl_certs
|
33
|
+
# rubocop:enable Layout/LineLength
|
49
34
|
|
50
35
|
def self.setup
|
51
36
|
new.tap do |instance|
|
@@ -97,8 +82,8 @@ module Stripe
|
|
97
82
|
|
98
83
|
if !val.nil? && !levels.include?(val)
|
99
84
|
raise ArgumentError,
|
100
|
-
"log_level should only be set to `nil`, `debug`, `info`," \
|
101
|
-
"
|
85
|
+
"log_level should only be set to `nil`, `debug`, `info`, " \
|
86
|
+
"or `error`"
|
102
87
|
end
|
103
88
|
@log_level = val
|
104
89
|
end
|
@@ -126,9 +111,7 @@ module Stripe
|
|
126
111
|
end
|
127
112
|
|
128
113
|
def write_timeout=(write_timeout)
|
129
|
-
unless Net::HTTP.instance_methods.include?(:write_timeout=)
|
130
|
-
raise NotImplementedError
|
131
|
-
end
|
114
|
+
raise NotImplementedError unless Net::HTTP.instance_methods.include?(:write_timeout=)
|
132
115
|
|
133
116
|
@write_timeout = write_timeout
|
134
117
|
StripeClient.clear_all_connection_managers(config: self)
|
@@ -179,10 +162,10 @@ module Stripe
|
|
179
162
|
# and is itself not thread safe.
|
180
163
|
def ca_store
|
181
164
|
@ca_store ||= begin
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
165
|
+
store = OpenSSL::X509::Store.new
|
166
|
+
store.add_file(ca_bundle_path)
|
167
|
+
store
|
168
|
+
end
|
186
169
|
end
|
187
170
|
|
188
171
|
def enable_telemetry?
|
data/lib/stripe/stripe_object.rb
CHANGED
@@ -320,8 +320,8 @@ module Stripe
|
|
320
320
|
# Here we swallow that error and issue a warning so at least
|
321
321
|
# the program doesn't crash.
|
322
322
|
warn("WARNING: Unable to remove method `#{method_name}`; " \
|
323
|
-
|
324
|
-
|
323
|
+
"if custom, please consider renaming to a name that doesn't " \
|
324
|
+
"collide with an API property name.")
|
325
325
|
end
|
326
326
|
end
|
327
327
|
end
|
@@ -351,17 +351,15 @@ module Stripe
|
|
351
351
|
define_method(:"#{k}=") do |v|
|
352
352
|
if v == ""
|
353
353
|
raise ArgumentError, "You cannot set #{k} to an empty string. " \
|
354
|
-
|
355
|
-
|
354
|
+
"We interpret empty strings as nil in requests. " \
|
355
|
+
"You may set (object).#{k} = nil to delete the property."
|
356
356
|
end
|
357
357
|
@values[k] = Util.convert_to_stripe_object(v, @opts)
|
358
358
|
dirty_value!(@values[k])
|
359
359
|
@unsaved_values.add(k)
|
360
360
|
end
|
361
361
|
|
362
|
-
if [FalseClass, TrueClass].include?(values[k].class)
|
363
|
-
define_method(:"#{k}?") { @values[k] }
|
364
|
-
end
|
362
|
+
define_method(:"#{k}?") { @values[k] } if [FalseClass, TrueClass].include?(values[k].class)
|
365
363
|
end
|
366
364
|
end
|
367
365
|
end
|
@@ -369,7 +367,6 @@ module Stripe
|
|
369
367
|
# Disabling the cop because it's confused by the fact that the methods are
|
370
368
|
# protected, but we do define `#respond_to_missing?` just below. Hopefully
|
371
369
|
# this is fixed in more recent Rubocop versions.
|
372
|
-
# rubocop:disable Style/MissingRespondToMissing
|
373
370
|
protected def method_missing(name, *args)
|
374
371
|
# TODO: only allow setting in updateable classes.
|
375
372
|
if name.to_s.end_with?("=")
|
@@ -405,16 +402,14 @@ module Stripe
|
|
405
402
|
|
406
403
|
raise NoMethodError,
|
407
404
|
e.message + ". HINT: The '#{name}' attribute was set in the " \
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
405
|
+
"past, however. It was then wiped when refreshing the object " \
|
406
|
+
"with the result returned by Stripe's API, probably as a " \
|
407
|
+
"result of a save(). The attributes currently available on " \
|
408
|
+
"this object are: #{@values.keys.join(', ')}"
|
412
409
|
end
|
413
410
|
end
|
414
|
-
# rubocop:enable Style/MissingRespondToMissing
|
415
|
-
|
416
411
|
protected def respond_to_missing?(symbol, include_private = false)
|
417
|
-
@values && @values.key?(symbol) || super
|
412
|
+
(@values && @values.key?(symbol)) || super
|
418
413
|
end
|
419
414
|
|
420
415
|
# Re-initializes the object based on a hash of values (usually one that's
|
@@ -460,7 +455,8 @@ module Stripe
|
|
460
455
|
self
|
461
456
|
end
|
462
457
|
|
463
|
-
|
458
|
+
# rubocop:todo Metrics/PerceivedComplexity
|
459
|
+
protected def serialize_params_value(value, original, unsaved, force, # rubocop:todo Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
464
460
|
key: nil)
|
465
461
|
if value.nil?
|
466
462
|
""
|
@@ -494,8 +490,8 @@ module Stripe
|
|
494
490
|
value
|
495
491
|
else
|
496
492
|
raise ArgumentError, "Cannot save property `#{key}` containing " \
|
497
|
-
|
498
|
-
|
493
|
+
"an API resource. It doesn't appear to be persisted and is " \
|
494
|
+
"not marked as `save_with_parent`."
|
499
495
|
end
|
500
496
|
|
501
497
|
elsif value.is_a?(Array)
|
@@ -535,6 +531,7 @@ module Stripe
|
|
535
531
|
value
|
536
532
|
end
|
537
533
|
end
|
534
|
+
# rubocop:enable Metrics/PerceivedComplexity
|
538
535
|
|
539
536
|
# Produces a deep copy of the given object including support for arrays,
|
540
537
|
# hashes, and StripeObjects.
|
@@ -41,9 +41,7 @@ module Stripe
|
|
41
41
|
|
42
42
|
def [](name)
|
43
43
|
values = @hash[name.downcase]
|
44
|
-
if values && values.count > 1
|
45
|
-
warn("Duplicate header values for `#{name}`; returning only first")
|
46
|
-
end
|
44
|
+
warn("Duplicate header values for `#{name}`; returning only first") if values && values.count > 1
|
47
45
|
values ? values.first : nil
|
48
46
|
end
|
49
47
|
end
|
data/lib/stripe/util.rb
CHANGED
@@ -80,8 +80,8 @@ module Stripe
|
|
80
80
|
"id should be a string representing the ID of an API resource"
|
81
81
|
end
|
82
82
|
|
83
|
-
url = "#{target.resource_url}/"\
|
84
|
-
"#{CGI.escape(id)}/"\
|
83
|
+
url = "#{target.resource_url}/" \
|
84
|
+
"#{CGI.escape(id)}/" \
|
85
85
|
"#{CGI.escape(http_path)}"
|
86
86
|
|
87
87
|
resp, opts = resource.execute_resource_request(
|
@@ -140,9 +140,7 @@ module Stripe
|
|
140
140
|
|
141
141
|
# set filters so that we can fetch the same limit, expansions, and
|
142
142
|
# predicates when accessing the next and previous pages
|
143
|
-
if obj && (obj.is_a?(SearchResultObject) || obj.is_a?(ListObject))
|
144
|
-
obj.filters = params.dup
|
145
|
-
end
|
143
|
+
obj.filters = params.dup if obj && (obj.is_a?(SearchResultObject) || obj.is_a?(ListObject))
|
146
144
|
|
147
145
|
obj
|
148
146
|
else
|
@@ -154,7 +152,7 @@ module Stripe
|
|
154
152
|
config = data.delete(:config) || Stripe.config
|
155
153
|
logger = config.logger || Stripe.logger
|
156
154
|
if !logger.nil? ||
|
157
|
-
!config.log_level.nil? && config.log_level <= Stripe::LEVEL_ERROR
|
155
|
+
(!config.log_level.nil? && config.log_level <= Stripe::LEVEL_ERROR)
|
158
156
|
log_internal(message, data, color: :cyan, level: Stripe::LEVEL_ERROR,
|
159
157
|
logger: Stripe.logger, out: $stderr)
|
160
158
|
end
|
@@ -164,7 +162,7 @@ module Stripe
|
|
164
162
|
config = data.delete(:config) || Stripe.config
|
165
163
|
logger = config.logger || Stripe.logger
|
166
164
|
if !logger.nil? ||
|
167
|
-
!config.log_level.nil? && config.log_level <= Stripe::LEVEL_INFO
|
165
|
+
(!config.log_level.nil? && config.log_level <= Stripe::LEVEL_INFO)
|
168
166
|
log_internal(message, data, color: :cyan, level: Stripe::LEVEL_INFO,
|
169
167
|
logger: Stripe.logger, out: $stdout)
|
170
168
|
end
|
@@ -174,7 +172,7 @@ module Stripe
|
|
174
172
|
config = data.delete(:config) || Stripe.config
|
175
173
|
logger = config.logger || Stripe.logger
|
176
174
|
if !logger.nil? ||
|
177
|
-
!config.log_level.nil? && config.log_level <= Stripe::LEVEL_DEBUG
|
175
|
+
(!config.log_level.nil? && config.log_level <= Stripe::LEVEL_DEBUG)
|
178
176
|
log_internal(message, data, color: :blue, level: Stripe::LEVEL_DEBUG,
|
179
177
|
logger: Stripe.logger, out: $stdout)
|
180
178
|
end
|
@@ -186,10 +184,10 @@ module Stripe
|
|
186
184
|
new_hash = {}
|
187
185
|
object.each do |key, value|
|
188
186
|
key = (begin
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
187
|
+
key.to_sym
|
188
|
+
rescue StandardError
|
189
|
+
key
|
190
|
+
end) || key
|
193
191
|
new_hash[key] = symbolize_names(value)
|
194
192
|
end
|
195
193
|
new_hash
|
data/lib/stripe/version.rb
CHANGED
data/stripe.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
$LOAD_PATH.unshift(
|
3
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "lib"))
|
4
4
|
|
5
5
|
require "stripe/version"
|
6
6
|
|
@@ -24,6 +24,7 @@ Gem::Specification.new do |s|
|
|
24
24
|
"github_repo" => "ssh://github.com/stripe/stripe-ruby",
|
25
25
|
"homepage_uri" => "https://stripe.com/docs/api?lang=ruby",
|
26
26
|
"source_code_uri" => "https://github.com/stripe/stripe-ruby",
|
27
|
+
"rubygems_mfa_required" => "false",
|
27
28
|
}
|
28
29
|
|
29
30
|
ignored = Regexp.union(
|
@@ -36,6 +37,6 @@ Gem::Specification.new do |s|
|
|
36
37
|
)
|
37
38
|
s.files = `git ls-files`.split("\n").reject { |f| ignored.match(f) }
|
38
39
|
s.executables = `git ls-files -- bin/*`.split("\n")
|
39
|
-
.map { |f|
|
40
|
+
.map { |f| File.basename(f) }
|
40
41
|
s.require_paths = ["lib"]
|
41
42
|
end
|
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: 10.
|
4
|
+
version: 10.3.0.pre.beta.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stripe
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-11-
|
11
|
+
date: 2023-11-30 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.
|
@@ -74,6 +74,9 @@ files:
|
|
74
74
|
- lib/stripe/resources/cash_balance.rb
|
75
75
|
- lib/stripe/resources/charge.rb
|
76
76
|
- lib/stripe/resources/checkout/session.rb
|
77
|
+
- lib/stripe/resources/climate/order.rb
|
78
|
+
- lib/stripe/resources/climate/product.rb
|
79
|
+
- lib/stripe/resources/climate/supplier.rb
|
77
80
|
- lib/stripe/resources/confirmation_token.rb
|
78
81
|
- lib/stripe/resources/country_spec.rb
|
79
82
|
- lib/stripe/resources/coupon.rb
|
@@ -204,6 +207,7 @@ metadata:
|
|
204
207
|
github_repo: ssh://github.com/stripe/stripe-ruby
|
205
208
|
homepage_uri: https://stripe.com/docs/api?lang=ruby
|
206
209
|
source_code_uri: https://github.com/stripe/stripe-ruby
|
210
|
+
rubygems_mfa_required: 'false'
|
207
211
|
post_install_message:
|
208
212
|
rdoc_options: []
|
209
213
|
require_paths:
|