stripe 3.26.1 → 3.27.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: 4ac82de8d5c93956f56ab752a21fbd5470aa3f2452c7360c8bad21b62437f1de
4
- data.tar.gz: 4c03b8ed0e4d03a24a4b18e6668147b7c88e4ae1977cbb5d7d6319ff4c0535f0
3
+ metadata.gz: c1bbd688d73104dce2fc75c1363172aed7f44f6f6e3d40e634588adc1efd9cb3
4
+ data.tar.gz: b05dd5cec9bdaabdd57f305fd1cd08058158d71cea7f2377e98949f12d856c57
5
5
  SHA512:
6
- metadata.gz: 3094e2f430018ebba15fe8f78c6b9e28480c8f47ec5aeb3185296a5c7f27357673b3436f1631c76bdc5b09535bdd6885794de7a5b24c6cfe4d6d2fb16e1c68b5
7
- data.tar.gz: ef354896a762a5cb3fd34028f9f04413bf1b576b44d040167b2e51fd6724164cb72821a2f4be02679c16ea4663738409b6a83ffd8426a4de2191832f397ed250
6
+ metadata.gz: ccb476039053498ddd0b3e67971acdf6b35d81fc7c86b5871523d742eb8534d72f0d1094d93d5ae778125528c33fbfba6552ce3edde0e5b88114aba1b5f3c6c1
7
+ data.tar.gz: a347c29e5cf52a0df6d12232cb3cb82a371b536858ce254e296dd1292e3d1422606eb87577307480a6abd5baa706cafb8d444c56c45eb6c7f156d9f048ed9af3
data/.travis.yml CHANGED
@@ -18,7 +18,7 @@ sudo: false
18
18
  env:
19
19
  global:
20
20
  # If changing this number, please also change it in `test/test_helper.rb`.
21
- - STRIPE_MOCK_VERSION=0.30.0
21
+ - STRIPE_MOCK_VERSION=0.32.0
22
22
 
23
23
  cache:
24
24
  directories:
data/CHANGELOG.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.27.0 - 2018-09-24
4
+ * [#689](https://github.com/stripe/stripe-ruby/pull/689) Rename `FileUpload` to `File`
5
+
3
6
  ## 3.26.1 - 2018-09-14
4
7
  * [#688](https://github.com/stripe/stripe-ruby/pull/688) Fix hash equality on `StripeObject`
5
8
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.26.1
1
+ 3.27.0
data/lib/stripe.rb CHANGED
@@ -55,8 +55,8 @@ require "stripe/dispute"
55
55
  require "stripe/ephemeral_key"
56
56
  require "stripe/event"
57
57
  require "stripe/exchange_rate"
58
+ require "stripe/file"
58
59
  require "stripe/file_link"
59
- require "stripe/file_upload"
60
60
  require "stripe/invoice"
61
61
  require "stripe/invoice_item"
62
62
  require "stripe/invoice_line_item"
@@ -103,7 +103,7 @@ module Stripe
103
103
 
104
104
  @api_base = "https://api.stripe.com"
105
105
  @connect_base = "https://connect.stripe.com"
106
- @uploads_base = "https://uploads.stripe.com"
106
+ @uploads_base = "https://files.stripe.com"
107
107
 
108
108
  @log_level = nil
109
109
  @logger = nil
@@ -1,23 +1,21 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Stripe
4
- class FileUpload < APIResource
4
+ class File < APIResource
5
5
  extend Stripe::APIOperations::Create
6
6
  extend Stripe::APIOperations::List
7
7
 
8
- OBJECT_NAME = "file_upload".freeze
8
+ # This resource can have two different object names. In latter API
9
+ # versions, only `file` is used, but since stripe-ruby may be used with
10
+ # any API version, we need to support deserializing the older
11
+ # `file_upload` object into the same class.
12
+ OBJECT_NAME = "file".freeze
13
+ OBJECT_NAME_ALT = "file_upload".freeze
9
14
 
10
15
  def self.resource_url
11
16
  "/v1/files"
12
17
  end
13
18
 
14
- def self.request(method, url, params = {}, opts = {})
15
- opts = {
16
- api_base: Stripe.uploads_base,
17
- }.merge(Util.normalize_opts(opts))
18
- super
19
- end
20
-
21
19
  def self.create(params = {}, opts = {})
22
20
  # rest-client would accept a vanilla `File` for upload, but Faraday does
23
21
  # not. Support the old API by wrapping a `File`-like object with an
@@ -27,9 +25,13 @@ module Stripe
27
25
  end
28
26
 
29
27
  opts = {
28
+ api_base: Stripe.uploads_base,
30
29
  content_type: "multipart/form-data",
31
30
  }.merge(Util.normalize_opts(opts))
32
31
  super
33
32
  end
34
33
  end
34
+
35
+ # For backwards compatibility, the `File` class is aliased to `FileUpload`.
36
+ FileUpload = File
35
37
  end
@@ -96,13 +96,14 @@ module Stripe
96
96
  other.is_a?(StripeObject) && @values == other.instance_variable_get(:@values)
97
97
  end
98
98
 
99
- # Hash equality. As with ==, we consider two equivalent Stripe objects equal.
99
+ # Hash equality. As with `#==`, we consider two equivalent Stripe objects equal.
100
100
  def eql?(other)
101
+ # Defer to the implementation on `#==`.
101
102
  self == other
102
103
  end
103
104
 
104
- # As for equality, we hash to Stripe objects to the same value if they're
105
- # equivalent objects.
105
+ # As with equality in `#==` and `#eql?`, we hash two Stripe objects to the
106
+ # same value if they're equivalent objects.
106
107
  def hash
107
108
  @values.hash
108
109
  end
data/lib/stripe/util.rb CHANGED
@@ -64,8 +64,9 @@ module Stripe
64
64
  EphemeralKey::OBJECT_NAME => EphemeralKey,
65
65
  Event::OBJECT_NAME => Event,
66
66
  ExchangeRate::OBJECT_NAME => ExchangeRate,
67
+ File::OBJECT_NAME => File,
68
+ File::OBJECT_NAME_ALT => File,
67
69
  FileLink::OBJECT_NAME => FileLink,
68
- FileUpload::OBJECT_NAME => FileUpload,
69
70
  Invoice::OBJECT_NAME => Invoice,
70
71
  InvoiceItem::OBJECT_NAME => InvoiceItem,
71
72
  InvoiceLineItem::OBJECT_NAME => InvoiceLineItem,
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Stripe
4
- VERSION = "3.26.1".freeze
4
+ VERSION = "3.27.0".freeze
5
5
  end
@@ -0,0 +1,73 @@
1
+ # frozen_string_literal: true
2
+
3
+ require ::File.expand_path("../../test_helper", __FILE__)
4
+
5
+ module Stripe
6
+ class FileTest < Test::Unit::TestCase
7
+ should "be listable" do
8
+ files = Stripe::File.list
9
+ assert_requested :get, "#{Stripe.api_base}/v1/files"
10
+ assert files.data.is_a?(Array)
11
+ assert files.data[0].is_a?(Stripe::File)
12
+ end
13
+
14
+ should "be retrievable" do
15
+ file = Stripe::File.retrieve("file_123")
16
+ assert_requested :get, "#{Stripe.api_base}/v1/files/file_123"
17
+ assert file.is_a?(Stripe::File)
18
+ end
19
+
20
+ context ".create" do
21
+ setup do
22
+ # We don't point to the same host for the API and uploads in
23
+ # production, but `stripe-mock` supports both APIs.
24
+ Stripe.uploads_base = Stripe.api_base
25
+
26
+ # Set `api_base` to `nil` to ensure that these requests are _not_ sent
27
+ # to the default API hostname.
28
+ Stripe.api_base = nil
29
+ end
30
+
31
+ should "be creatable with a File" do
32
+ file = Stripe::File.create(
33
+ purpose: "dispute_evidence",
34
+ file: ::File.new(__FILE__)
35
+ )
36
+ assert_requested :post, "#{Stripe.uploads_base}/v1/files"
37
+ assert file.is_a?(Stripe::File)
38
+ end
39
+
40
+ should "be creatable with a Tempfile" do
41
+ tempfile = Tempfile.new("foo")
42
+ tempfile.write("Hello world")
43
+ tempfile.rewind
44
+
45
+ file = Stripe::File.create(
46
+ purpose: "dispute_evidence",
47
+ file: tempfile
48
+ )
49
+ assert_requested :post, "#{Stripe.uploads_base}/v1/files"
50
+ assert file.is_a?(Stripe::File)
51
+ end
52
+
53
+ should "be creatable with Faraday::UploadIO" do
54
+ file = Stripe::File.create(
55
+ purpose: "dispute_evidence",
56
+ file: Faraday::UploadIO.new(::File.new(__FILE__), nil)
57
+ )
58
+ assert_requested :post, "#{Stripe.uploads_base}/v1/files"
59
+ assert file.is_a?(Stripe::File)
60
+ end
61
+ end
62
+
63
+ should "be deserializable when `object=file`" do
64
+ file = Stripe::Util.convert_to_stripe_object({ object: "file" }, {})
65
+ assert file.is_a?(Stripe::File)
66
+ end
67
+
68
+ should "be deserializable when `object=file_upload`" do
69
+ file = Stripe::Util.convert_to_stripe_object({ object: "file_upload" }, {})
70
+ assert file.is_a?(Stripe::File)
71
+ end
72
+ end
73
+ end
@@ -3,43 +3,73 @@
3
3
  require ::File.expand_path("../../test_helper", __FILE__)
4
4
 
5
5
  module Stripe
6
+ # This is a strict copy of `FileTest`, except that it uses
7
+ # `Stripe::FileUpload` instead of `Stripe::File`.
6
8
  class FileUploadTest < Test::Unit::TestCase
7
9
  should "be listable" do
8
10
  files = Stripe::FileUpload.list
11
+ assert_requested :get, "#{Stripe.api_base}/v1/files"
9
12
  assert files.data.is_a?(Array)
10
13
  assert files.data[0].is_a?(Stripe::FileUpload)
11
14
  end
12
15
 
13
16
  should "be retrievable" do
14
17
  file = Stripe::FileUpload.retrieve("file_123")
18
+ assert_requested :get, "#{Stripe.api_base}/v1/files/file_123"
15
19
  assert file.is_a?(Stripe::FileUpload)
16
20
  end
17
21
 
18
- should "be creatable with a File" do
19
- file = Stripe::FileUpload.create(
20
- purpose: "dispute_evidence",
21
- file: ::File.new(__FILE__)
22
- )
23
- assert file.is_a?(Stripe::FileUpload)
24
- end
22
+ context ".create" do
23
+ setup do
24
+ # We don't point to the same host for the API and uploads in
25
+ # production, but `stripe-mock` supports both APIs.
26
+ Stripe.uploads_base = Stripe.api_base
27
+
28
+ # Set `api_base` to `nil` to ensure that these requests are _not_ sent
29
+ # to the default API hostname. `api_base` is reset when each test
30
+ # starts so this won't affect the global state.
31
+ Stripe.api_base = nil
32
+ end
33
+
34
+ should "be creatable with a File" do
35
+ file = Stripe::FileUpload.create(
36
+ purpose: "dispute_evidence",
37
+ file: ::File.new(__FILE__)
38
+ )
39
+ assert_requested :post, "#{Stripe.uploads_base}/v1/files"
40
+ assert file.is_a?(Stripe::FileUpload)
41
+ end
25
42
 
26
- should "be creatable with a Tempfile" do
27
- tempfile = Tempfile.new("foo")
28
- tempfile.write("Hello world")
29
- tempfile.rewind
43
+ should "be creatable with a Tempfile" do
44
+ tempfile = Tempfile.new("foo")
45
+ tempfile.write("Hello world")
46
+ tempfile.rewind
47
+
48
+ file = Stripe::FileUpload.create(
49
+ purpose: "dispute_evidence",
50
+ file: tempfile
51
+ )
52
+ assert_requested :post, "#{Stripe.uploads_base}/v1/files"
53
+ assert file.is_a?(Stripe::FileUpload)
54
+ end
55
+
56
+ should "be creatable with Faraday::UploadIO" do
57
+ file = Stripe::FileUpload.create(
58
+ purpose: "dispute_evidence",
59
+ file: Faraday::UploadIO.new(::File.new(__FILE__), nil)
60
+ )
61
+ assert_requested :post, "#{Stripe.uploads_base}/v1/files"
62
+ assert file.is_a?(Stripe::FileUpload)
63
+ end
64
+ end
30
65
 
31
- file = Stripe::FileUpload.create(
32
- purpose: "dispute_evidence",
33
- file: tempfile
34
- )
66
+ should "be deserializable when `object=file`" do
67
+ file = Stripe::Util.convert_to_stripe_object({ object: "file" }, {})
35
68
  assert file.is_a?(Stripe::FileUpload)
36
69
  end
37
70
 
38
- should "be creatable with Faraday::UploadIO" do
39
- file = Stripe::FileUpload.create(
40
- purpose: "dispute_evidence",
41
- file: Faraday::UploadIO.new(::File.new(__FILE__), nil)
42
- )
71
+ should "be deserializable when `object=file_upload`" do
72
+ file = Stripe::Util.convert_to_stripe_object({ object: "file_upload" }, {})
43
73
  assert file.is_a?(Stripe::FileUpload)
44
74
  end
45
75
  end
@@ -8,7 +8,7 @@ module Stripe
8
8
  should "be creatable" do
9
9
  dispute = Stripe::Issuing::Dispute.create(
10
10
  reason: "fraudulent",
11
- transaction: "ipi_123"
11
+ disputed_transaction: "ipi_123"
12
12
  )
13
13
  assert_requested :post, "#{Stripe.api_base}/v1/issuing/disputes"
14
14
  assert dispute.is_a?(Stripe::Issuing::Dispute)
@@ -118,7 +118,7 @@ module Stripe
118
118
  end
119
119
 
120
120
  context "#eql?" do
121
- should "produce the true for two equivalent Stripe objects" do
121
+ should "produce true for two equivalent Stripe objects" do
122
122
  obj1 = Stripe::StripeObject.construct_from(id: 1, name: "Stripe")
123
123
  obj2 = Stripe::StripeObject.construct_from(id: 1, name: "Stripe")
124
124
  assert obj1.eql?(obj2)
data/test/test_helper.rb CHANGED
@@ -16,7 +16,7 @@ PROJECT_ROOT = ::File.expand_path("../../", __FILE__)
16
16
  require ::File.expand_path("../test_data", __FILE__)
17
17
 
18
18
  # If changing this number, please also change it in `.travis.yml`.
19
- MOCK_MINIMUM_VERSION = "0.30.0".freeze
19
+ MOCK_MINIMUM_VERSION = "0.32.0".freeze
20
20
  MOCK_PORT = ENV["STRIPE_MOCK_PORT"] || 12_111
21
21
 
22
22
  # Disable all real network connections except those that are outgoing to
@@ -50,10 +50,6 @@ module Test
50
50
  Stripe.api_key = "sk_test_123"
51
51
  Stripe.api_base = "http://localhost:#{MOCK_PORT}"
52
52
 
53
- # We don't point to the same host for the API and uploads in
54
- # production, but `stripe-mock` supports both APIs.
55
- Stripe.uploads_base = Stripe.api_base
56
-
57
53
  stub_connect
58
54
  end
59
55
 
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: 3.26.1
4
+ version: 3.27.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stripe
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-09-14 00:00:00.000000000 Z
11
+ date: 2018-09-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -76,8 +76,8 @@ files:
76
76
  - lib/stripe/errors.rb
77
77
  - lib/stripe/event.rb
78
78
  - lib/stripe/exchange_rate.rb
79
+ - lib/stripe/file.rb
79
80
  - lib/stripe/file_link.rb
80
- - lib/stripe/file_upload.rb
81
81
  - lib/stripe/invoice.rb
82
82
  - lib/stripe/invoice_item.rb
83
83
  - lib/stripe/invoice_line_item.rb
@@ -147,6 +147,7 @@ files:
147
147
  - test/stripe/errors_test.rb
148
148
  - test/stripe/exchange_rate_test.rb
149
149
  - test/stripe/file_link_test.rb
150
+ - test/stripe/file_test.rb
150
151
  - test/stripe/file_upload_test.rb
151
152
  - test/stripe/invoice_item_test.rb
152
153
  - test/stripe/invoice_line_item_test.rb
@@ -240,6 +241,7 @@ test_files:
240
241
  - test/stripe/errors_test.rb
241
242
  - test/stripe/exchange_rate_test.rb
242
243
  - test/stripe/file_link_test.rb
244
+ - test/stripe/file_test.rb
243
245
  - test/stripe/file_upload_test.rb
244
246
  - test/stripe/invoice_item_test.rb
245
247
  - test/stripe/invoice_line_item_test.rb