stripe 1.14.0 → 1.15.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ YjY0ZDhkYjEyMTQyYTc0Y2Q3ZDYxZDk0ZjI3YWU4NGRmMjA0YTQ5Yg==
5
+ data.tar.gz: !binary |-
6
+ MGZhN2E0NzAwOTA0MmJkNDcyYzFjZDgzZWVjOGEzOTczOTA0NGI0YQ==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ ZWNiNzc5YTk2MThkNmIwZDlmNjg4YjI2ZmQ4ZGE4MTk0OGZjYmU4N2M4Zjdm
10
+ MzEyMjJiNjkwMTQ4NjkyYjFmNWE4YzI0MjY2ZTA5NTE4ODE5ZGVjNmNiMDBi
11
+ MThhNDQyYTUyM2I1NjVhZjc5ZjdjNjAzZTAyZjI1NjE3ZjEyNmU=
12
+ data.tar.gz: !binary |-
13
+ Y2U1NTk4ZGJlMWVmYjI0ZTgzOWIyYzg5MzIwYTdlNGI4NDU0YTA0ZWMxZjU0
14
+ YjNjMzlmYTBkMWRiN2M4YTEzNmE3MzUyMDViNzkyNGUyZTE3MDdmZDU3OTNj
15
+ ZGUzNjI1ZWQ2YzMzMGJiODBjM2VkNjYxYjA2ZGYzNzEzMTI2YmE=
data/Gemfile CHANGED
@@ -1,2 +1,7 @@
1
1
  source "https://rubygems.org"
2
2
  gemspec
3
+
4
+ if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('1.9.3')
5
+ gem 'rest-client', '~> 1.6.8'
6
+ gem 'activesupport', '~> 3.2'
7
+ end
@@ -1,3 +1,8 @@
1
+ === 1.15.0 2014-07-26
2
+
3
+ * 1 major enhacement:
4
+ * Application Fee refunds now a list instead of array
5
+
1
6
  === 1.14.0 2014-06-17
2
7
 
3
8
  * 1 major enhancement:
data/Rakefile CHANGED
@@ -1,15 +1,7 @@
1
- task :default => [:all]
1
+ require 'rake/testtask'
2
2
 
3
- task :test do
4
- ret = true
5
- Dir["test/**/*_test.rb"].each do |f|
6
- ret = ret && ruby(f, '')
7
- end
8
- end
3
+ task :default => [:test]
9
4
 
10
- task :all do
11
- Rake::Task["test"].invoke
12
- require 'active_support/all'
13
- Rake::Task["test"].reenable
14
- Rake::Task["test"].invoke
15
- end
5
+ Rake::TestTask.new do |t|
6
+ t.pattern = './test/**/*_test.rb'
7
+ end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.14.0
1
+ 1.15.0
@@ -1,3 +1,9 @@
1
1
  source "https://rubygems.org"
2
2
  gemspec :path => File.join(File.dirname(__FILE__), "..")
3
- gem "activesupport", "~> 3.0"
3
+
4
+ if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('1.9.3')
5
+ gem 'rest-client', '~> 1.6.8'
6
+ gem 'activesupport', '~> 3.2'
7
+ else
8
+ gem 'activesupport'
9
+ end
@@ -1,4 +1,11 @@
1
1
  source "https://rubygems.org"
2
2
  gemspec :path => File.join(File.dirname(__FILE__), "..")
3
- gem "json"
4
- gem "activesupport", "~> 3.0"
3
+
4
+ if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('1.9.3')
5
+ gem 'rest-client', '~> 1.6.8'
6
+ gem 'activesupport', '~> 3.2'
7
+ else
8
+ gem 'activesupport'
9
+ end
10
+
11
+ gem 'json'
@@ -1,4 +1,11 @@
1
1
  source "https://rubygems.org"
2
2
  gemspec :path => File.join(File.dirname(__FILE__), "..")
3
- gem "yajl-ruby"
4
- gem "activesupport", "~> 3.0"
3
+
4
+ if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('1.9.3')
5
+ gem 'rest-client', '~> 1.6.8'
6
+ gem 'activesupport', '~> 3.2'
7
+ else
8
+ gem 'activesupport'
9
+ end
10
+
11
+ gem 'yajl-ruby'
@@ -39,6 +39,7 @@ require 'stripe/card'
39
39
  require 'stripe/subscription'
40
40
  require 'stripe/application_fee'
41
41
  require 'stripe/refund'
42
+ require 'stripe/application_fee_refund'
42
43
 
43
44
  # Errors
44
45
  require 'stripe/errors/stripe_error'
@@ -0,0 +1,14 @@
1
+ module Stripe
2
+ class ApplicationFeeRefund < APIResource
3
+ include Stripe::APIOperations::Update
4
+ include Stripe::APIOperations::List
5
+
6
+ def url
7
+ "#{ApplicationFee.url}/#{CGI.escape(fee)}/refunds/#{CGI.escape(id)}"
8
+ end
9
+
10
+ def self.retrieve(id, api_key=nil)
11
+ raise NotImplementedError.new("Refunds cannot be retrieved without an application fee ID. Retrieve a refund using appfee.refunds.retrieve('refund_id')")
12
+ end
13
+ end
14
+ end
@@ -1,6 +1,7 @@
1
1
  module Stripe
2
2
  class Refund < APIResource
3
3
  include Stripe::APIOperations::Update
4
+ include Stripe::APIOperations::List
4
5
 
5
6
  def url
6
7
  "#{Charge.url}/#{CGI.escape(charge)}/refunds/#{CGI.escape(id)}"
@@ -95,7 +95,10 @@ module Stripe
95
95
  end
96
96
 
97
97
  def to_hash
98
- @values
98
+ @values.inject({}) do |acc, (key, value)|
99
+ acc[key] = value.respond_to?(:to_hash) ? value.to_hash : value
100
+ acc
101
+ end
99
102
  end
100
103
 
101
104
  def each(&blk)
@@ -181,7 +184,7 @@ module Stripe
181
184
  end
182
185
 
183
186
  def respond_to_missing?(symbol, include_private = false)
184
- @values.has_key?(symbol) || super
187
+ @values && @values.has_key?(symbol) || super
185
188
  end
186
189
  end
187
190
  end
@@ -32,7 +32,8 @@ module Stripe
32
32
  'subscription' => Subscription,
33
33
  'list' => ListObject,
34
34
  'refund' => Refund,
35
- 'application_fee' => ApplicationFee
35
+ 'application_fee' => ApplicationFee,
36
+ 'fee_refund' => ApplicationFeeRefund
36
37
  }
37
38
  end
38
39
 
@@ -1,3 +1,3 @@
1
1
  module Stripe
2
- VERSION = '1.14.0'
2
+ VERSION = '1.15.0'
3
3
  end
@@ -13,7 +13,7 @@ spec = Gem::Specification.new do |s|
13
13
  s.license = 'MIT'
14
14
 
15
15
  s.add_dependency('rest-client', '~> 1.4')
16
- s.add_dependency('mime-types', '~> 1.25')
16
+ s.add_dependency('mime-types', '>= 1.25', '< 3.0')
17
17
  s.add_dependency('json', '~> 1.8.1')
18
18
 
19
19
  s.add_development_dependency('mocha', '~> 0.13.2')
@@ -0,0 +1,47 @@
1
+ require File.expand_path('../../test_helper', __FILE__)
2
+
3
+ module Stripe
4
+ class ApplicationFeeRefundTest < Test::Unit::TestCase
5
+ should "refunds should be listable" do
6
+ @mock.expects(:get).once.returns(test_response(test_application_fee))
7
+
8
+ application_fee = Stripe::ApplicationFee.retrieve('test_application_fee')
9
+
10
+ assert application_fee.refunds.first.kind_of?(Stripe::ApplicationFeeRefund)
11
+ end
12
+
13
+ should "refunds should be refreshable" do
14
+ @mock.expects(:get).twice.returns(test_response(test_application_fee), test_response(test_application_fee_refund(:id => 'refreshed_refund')))
15
+
16
+ application_fee = Stripe::ApplicationFee.retrieve('test_application_fee')
17
+ refund = application_fee.refunds.first
18
+ refund.refresh
19
+
20
+ assert_equal 'refreshed_refund', refund.id
21
+ end
22
+
23
+ should "refunds should be updateable" do
24
+ @mock.expects(:get).once.returns(test_response(test_application_fee))
25
+ @mock.expects(:post).once.returns(test_response(test_application_fee_refund(:metadata => {'key' => 'value'})))
26
+
27
+ application_fee = Stripe::ApplicationFee.retrieve('test_application_fee')
28
+ refund = application_fee.refunds.first
29
+
30
+ assert_equal nil, refund.metadata['key']
31
+
32
+ refund.metadata['key'] = 'valu'
33
+ refund.save
34
+
35
+ assert_equal 'value', refund.metadata['key']
36
+ end
37
+
38
+ should "create should return a new refund" do
39
+ @mock.expects(:get).once.returns(test_response(test_application_fee))
40
+ @mock.expects(:post).once.returns(test_response(test_application_fee_refund(:id => 'test_new_refund')))
41
+
42
+ application_fee = Stripe::ApplicationFee.retrieve('test_application_fee')
43
+ refund = application_fee.refunds.create(:amount => 20)
44
+ assert_equal 'test_new_refund', refund.id
45
+ end
46
+ end
47
+ end
@@ -16,5 +16,12 @@ module Stripe
16
16
  assert_equal 'Stripe', m.name
17
17
  assert_equal 'apikey', m.api_key
18
18
  end
19
+
20
+ should "recursively call to_hash on its values" do
21
+ nested = Stripe::StripeObject.construct_from({ :id => 7, :foo => 'bar' })
22
+ obj = Stripe::StripeObject.construct_from({ :id => 1, :nested => nested })
23
+ expected_hash = { :id => 1, :nested => { :id => 7, :foo => 'bar' } }
24
+ assert_equal expected_hash, obj.to_hash
25
+ end
19
26
  end
20
27
  end
@@ -71,20 +71,34 @@ def test_balance_transaction_array
71
71
  end
72
72
 
73
73
  def test_application_fee(params={})
74
+ id = params[:id] || 'fee_test_fee'
74
75
  {
75
76
  :refunded => false,
76
77
  :amount => 100,
77
78
  :application => "ca_test_application",
78
79
  :user => "acct_test_user",
79
80
  :charge => "ch_test_charge",
80
- :id => "fee_test_fee",
81
+ :id => id,
81
82
  :livemode => false,
82
83
  :currency => "usd",
83
84
  :object => "application_fee",
85
+ :refunds => test_application_fee_refund_array(id),
84
86
  :created => 1304114826
85
87
  }.merge(params)
86
88
  end
87
89
 
90
+ def test_application_fee_refund(params = {})
91
+ {
92
+ :object => 'fee_refund',
93
+ :amount => 30,
94
+ :currency => "usd",
95
+ :created => 1308595038,
96
+ :id => "ref_test_app_fee_refund",
97
+ :fee => "ca_test_application",
98
+ :metadata => {}
99
+ }.merge(params)
100
+ end
101
+
88
102
  def test_application_fee_array
89
103
  {
90
104
  :data => [test_application_fee, test_application_fee, test_application_fee],
@@ -93,6 +107,14 @@ def test_application_fee_array
93
107
  }
94
108
  end
95
109
 
110
+ def test_application_fee_refund_array(fee_id)
111
+ {
112
+ :data => [test_application_fee_refund, test_application_fee_refund, test_application_fee_refund],
113
+ :object => 'list',
114
+ :url => '/v1/application_fees/' + fee_id + '/refunds'
115
+ }
116
+ end
117
+
96
118
  def test_customer(params={})
97
119
  id = params[:id] || 'c_test_customer'
98
120
  {
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stripe
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.14.0
5
- prerelease:
4
+ version: 1.15.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Ross Boucher
@@ -10,12 +9,11 @@ authors:
10
9
  autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2014-06-18 00:00:00.000000000 Z
12
+ date: 2014-07-30 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: rest-client
17
16
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
17
  requirements:
20
18
  - - ~>
21
19
  - !ruby/object:Gem::Version
@@ -23,7 +21,6 @@ dependencies:
23
21
  type: :runtime
24
22
  prerelease: false
25
23
  version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
24
  requirements:
28
25
  - - ~>
29
26
  - !ruby/object:Gem::Version
@@ -31,23 +28,26 @@ dependencies:
31
28
  - !ruby/object:Gem::Dependency
32
29
  name: mime-types
33
30
  requirement: !ruby/object:Gem::Requirement
34
- none: false
35
31
  requirements:
36
- - - ~>
32
+ - - ! '>='
37
33
  - !ruby/object:Gem::Version
38
34
  version: '1.25'
35
+ - - <
36
+ - !ruby/object:Gem::Version
37
+ version: '3.0'
39
38
  type: :runtime
40
39
  prerelease: false
41
40
  version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
41
  requirements:
44
- - - ~>
42
+ - - ! '>='
45
43
  - !ruby/object:Gem::Version
46
44
  version: '1.25'
45
+ - - <
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
47
48
  - !ruby/object:Gem::Dependency
48
49
  name: json
49
50
  requirement: !ruby/object:Gem::Requirement
50
- none: false
51
51
  requirements:
52
52
  - - ~>
53
53
  - !ruby/object:Gem::Version
@@ -55,7 +55,6 @@ dependencies:
55
55
  type: :runtime
56
56
  prerelease: false
57
57
  version_requirements: !ruby/object:Gem::Requirement
58
- none: false
59
58
  requirements:
60
59
  - - ~>
61
60
  - !ruby/object:Gem::Version
@@ -63,7 +62,6 @@ dependencies:
63
62
  - !ruby/object:Gem::Dependency
64
63
  name: mocha
65
64
  requirement: !ruby/object:Gem::Requirement
66
- none: false
67
65
  requirements:
68
66
  - - ~>
69
67
  - !ruby/object:Gem::Version
@@ -71,7 +69,6 @@ dependencies:
71
69
  type: :development
72
70
  prerelease: false
73
71
  version_requirements: !ruby/object:Gem::Requirement
74
- none: false
75
72
  requirements:
76
73
  - - ~>
77
74
  - !ruby/object:Gem::Version
@@ -79,7 +76,6 @@ dependencies:
79
76
  - !ruby/object:Gem::Dependency
80
77
  name: shoulda
81
78
  requirement: !ruby/object:Gem::Requirement
82
- none: false
83
79
  requirements:
84
80
  - - ~>
85
81
  - !ruby/object:Gem::Version
@@ -87,7 +83,6 @@ dependencies:
87
83
  type: :development
88
84
  prerelease: false
89
85
  version_requirements: !ruby/object:Gem::Requirement
90
- none: false
91
86
  requirements:
92
87
  - - ~>
93
88
  - !ruby/object:Gem::Version
@@ -95,7 +90,6 @@ dependencies:
95
90
  - !ruby/object:Gem::Dependency
96
91
  name: test-unit
97
92
  requirement: !ruby/object:Gem::Requirement
98
- none: false
99
93
  requirements:
100
94
  - - ! '>='
101
95
  - !ruby/object:Gem::Version
@@ -103,7 +97,6 @@ dependencies:
103
97
  type: :development
104
98
  prerelease: false
105
99
  version_requirements: !ruby/object:Gem::Requirement
106
- none: false
107
100
  requirements:
108
101
  - - ! '>='
109
102
  - !ruby/object:Gem::Version
@@ -111,7 +104,6 @@ dependencies:
111
104
  - !ruby/object:Gem::Dependency
112
105
  name: rake
113
106
  requirement: !ruby/object:Gem::Requirement
114
- none: false
115
107
  requirements:
116
108
  - - ! '>='
117
109
  - !ruby/object:Gem::Version
@@ -119,7 +111,6 @@ dependencies:
119
111
  type: :development
120
112
  prerelease: false
121
113
  version_requirements: !ruby/object:Gem::Requirement
122
- none: false
123
114
  requirements:
124
115
  - - ! '>='
125
116
  - !ruby/object:Gem::Version
@@ -156,6 +147,7 @@ files:
156
147
  - lib/stripe/api_operations/update.rb
157
148
  - lib/stripe/api_resource.rb
158
149
  - lib/stripe/application_fee.rb
150
+ - lib/stripe/application_fee_refund.rb
159
151
  - lib/stripe/balance.rb
160
152
  - lib/stripe/balance_transaction.rb
161
153
  - lib/stripe/card.rb
@@ -186,6 +178,7 @@ files:
186
178
  - stripe.gemspec
187
179
  - test/stripe/account_test.rb
188
180
  - test/stripe/api_resource_test.rb
181
+ - test/stripe/application_fee_refund_test.rb
189
182
  - test/stripe/application_fee_test.rb
190
183
  - test/stripe/certificate_blacklist_test.rb
191
184
  - test/stripe/charge_test.rb
@@ -205,31 +198,31 @@ files:
205
198
  homepage: https://stripe.com/api
206
199
  licenses:
207
200
  - MIT
201
+ metadata: {}
208
202
  post_install_message:
209
203
  rdoc_options: []
210
204
  require_paths:
211
205
  - lib
212
206
  required_ruby_version: !ruby/object:Gem::Requirement
213
- none: false
214
207
  requirements:
215
208
  - - ! '>='
216
209
  - !ruby/object:Gem::Version
217
210
  version: '0'
218
211
  required_rubygems_version: !ruby/object:Gem::Requirement
219
- none: false
220
212
  requirements:
221
213
  - - ! '>='
222
214
  - !ruby/object:Gem::Version
223
215
  version: '0'
224
216
  requirements: []
225
217
  rubyforge_project:
226
- rubygems_version: 1.8.23
218
+ rubygems_version: 2.2.2
227
219
  signing_key:
228
- specification_version: 3
220
+ specification_version: 4
229
221
  summary: Ruby bindings for the Stripe API
230
222
  test_files:
231
223
  - test/stripe/account_test.rb
232
224
  - test/stripe/api_resource_test.rb
225
+ - test/stripe/application_fee_refund_test.rb
233
226
  - test/stripe/application_fee_test.rb
234
227
  - test/stripe/certificate_blacklist_test.rb
235
228
  - test/stripe/charge_test.rb