stripe 3.26.1 → 3.27.0

Sign up to get free protection for your applications and to get access to all the features.
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