gocardless 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +24 -0
- data/Gemfile +2 -2
- data/Rakefile +2 -1
- data/lib/gocardless/client.rb +9 -3
- data/lib/gocardless/version.rb +1 -1
- data/spec/client_spec.rb +11 -4
- metadata +15 -15
data/CHANGELOG.md
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
## 0.1.3 - February 22, 2012
|
2
|
+
|
3
|
+
- Fix parameter encoding in `Client#new_merchant_url` (related to Faraday issue
|
4
|
+
#115)
|
5
|
+
- Allow changing environment / base_url after client init
|
6
|
+
|
7
|
+
|
8
|
+
## 0.1.2 - February 2, 2012
|
9
|
+
|
10
|
+
- Add `webhook_valid?` method to `Client`
|
11
|
+
- Make `confirm_resource` play nicely with `HashWithIndifferentAccess`
|
12
|
+
- More RFC compliant parameter encoding
|
13
|
+
|
14
|
+
|
15
|
+
## 0.1.1 - January 12, 2012
|
16
|
+
|
17
|
+
- Add `name` to `Bill`
|
18
|
+
- Add `state` support to `new_{subscription,pre_authorization,bill}_url`
|
19
|
+
|
20
|
+
|
21
|
+
## 0.1.0 - November 23, 2011
|
22
|
+
|
23
|
+
- Initial release
|
24
|
+
|
data/Gemfile
CHANGED
data/Rakefile
CHANGED
@@ -3,7 +3,8 @@ require 'rspec/core/rake_task'
|
|
3
3
|
|
4
4
|
desc "Generate YARD documentation"
|
5
5
|
YARD::Rake::YardocTask.new do |t|
|
6
|
-
|
6
|
+
files = ['lib/**/*.rb', '-', 'CHANGELOG.md', 'LICENSE']
|
7
|
+
t.files = files.reject { |f| f =~ /seed|example/ }
|
7
8
|
end
|
8
9
|
|
9
10
|
desc "Run the specs"
|
data/lib/gocardless/client.rb
CHANGED
@@ -53,6 +53,8 @@ module GoCardless
|
|
53
53
|
:response_type => 'code',
|
54
54
|
:scope => 'manage_merchant'
|
55
55
|
}
|
56
|
+
# Faraday doesn't flatten params in this case (Faraday issue #115)
|
57
|
+
options = Hash[Utils.flatten_params(options)]
|
56
58
|
@oauth_client.authorize_url(params.merge(options))
|
57
59
|
end
|
58
60
|
alias :new_merchant_url :authorize_url
|
@@ -250,7 +252,7 @@ module GoCardless
|
|
250
252
|
# Validates the payload contents of a webhook request.
|
251
253
|
#
|
252
254
|
# @param [Hash] params the contents of payload of the webhook
|
253
|
-
# @return [
|
255
|
+
# @return [Boolean] true when valid, false otherwise
|
254
256
|
def webhook_valid?(params)
|
255
257
|
signature_valid?(params)
|
256
258
|
end
|
@@ -261,14 +263,18 @@ module GoCardless
|
|
261
263
|
#
|
262
264
|
# @param [Symbol] method the HTTP method to use (e.g. +:get+, +:post+)
|
263
265
|
# @param [String] path the path fragment of the URL
|
264
|
-
# @option [
|
265
|
-
# @option [Hash] params query string parameters
|
266
|
+
# @option [Hash] opts query string parameters
|
266
267
|
def request(method, path, opts = {})
|
267
268
|
raise ClientError, 'Access token missing' unless @access_token
|
269
|
+
|
268
270
|
opts[:headers] = {} if opts[:headers].nil?
|
269
271
|
opts[:headers]['Accept'] = 'application/json'
|
270
272
|
opts[:headers]['Content-Type'] = 'application/json' unless method == :get
|
271
273
|
opts[:body] = JSON.generate(opts[:data]) if !opts[:data].nil?
|
274
|
+
|
275
|
+
# Reset the URL in case the environment / base URL has been changed.
|
276
|
+
@oauth_client.site = self.class.base_url
|
277
|
+
|
272
278
|
header_keys = opts[:headers].keys.map(&:to_s)
|
273
279
|
if header_keys.map(&:downcase).include?('authorization')
|
274
280
|
@oauth_client.request(method, path, opts)
|
data/lib/gocardless/version.rb
CHANGED
data/spec/client_spec.rb
CHANGED
@@ -53,6 +53,13 @@ describe GoCardless::Client do
|
|
53
53
|
query['redirect_uri'].first.should == @redirect_uri
|
54
54
|
query['client_id'].first.should == @app_id
|
55
55
|
end
|
56
|
+
|
57
|
+
it "encodes prefilling parameters correctly" do
|
58
|
+
params = {:merchant => {:user => {:email => "a@b.com"}}}
|
59
|
+
url = @client.authorize_url(params.merge(:redirect_uri => @redirect_uri))
|
60
|
+
encoded_key = GoCardless::Utils.percent_encode('merchant[user][email]')
|
61
|
+
URI.parse(url).query.should match /#{encoded_key}=a%40b\.com/
|
62
|
+
end
|
56
63
|
end
|
57
64
|
|
58
65
|
describe "#fetch_access_token" do
|
@@ -341,10 +348,10 @@ describe GoCardless::Client do
|
|
341
348
|
end
|
342
349
|
|
343
350
|
it "should include the redirect_uri in the URL query" do
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
351
|
+
params = { 'a' => '1', 'b' => '2', :redirect_uri => "http://www.google.com" }
|
352
|
+
url = @client.send(:new_limit_url, :subscription, params)
|
353
|
+
get_params(url)["redirect_uri"].should == "http://www.google.com"
|
354
|
+
end
|
348
355
|
|
349
356
|
it "should add merchant_id to the limit" do
|
350
357
|
url = @client.send(:new_limit_url, :subscription, {})
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gocardless
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 800522045387967993
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 3
|
10
|
+
version: 0.1.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Harry Marr
|
@@ -16,8 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2012-02-
|
20
|
-
default_executable:
|
19
|
+
date: 2012-02-22 00:00:00 Z
|
21
20
|
dependencies:
|
22
21
|
- !ruby/object:Gem::Dependency
|
23
22
|
name: oauth2
|
@@ -27,7 +26,7 @@ dependencies:
|
|
27
26
|
requirements:
|
28
27
|
- - ~>
|
29
28
|
- !ruby/object:Gem::Version
|
30
|
-
hash:
|
29
|
+
hash: 2087324949208970369
|
31
30
|
segments:
|
32
31
|
- 0
|
33
32
|
- 5
|
@@ -45,7 +44,7 @@ dependencies:
|
|
45
44
|
requirements:
|
46
45
|
- - ">="
|
47
46
|
- !ruby/object:Gem::Version
|
48
|
-
hash:
|
47
|
+
hash: 3211771947681907367
|
49
48
|
segments:
|
50
49
|
- 1
|
51
50
|
- 5
|
@@ -61,7 +60,7 @@ dependencies:
|
|
61
60
|
requirements:
|
62
61
|
- - ~>
|
63
62
|
- !ruby/object:Gem::Version
|
64
|
-
hash:
|
63
|
+
hash: 4369430763100613689
|
65
64
|
segments:
|
66
65
|
- 2
|
67
66
|
- 6
|
@@ -76,7 +75,7 @@ dependencies:
|
|
76
75
|
requirements:
|
77
76
|
- - ~>
|
78
77
|
- !ruby/object:Gem::Version
|
79
|
-
hash:
|
78
|
+
hash: 4175747960814336346
|
80
79
|
segments:
|
81
80
|
- 0
|
82
81
|
- 9
|
@@ -92,7 +91,7 @@ dependencies:
|
|
92
91
|
requirements:
|
93
92
|
- - ~>
|
94
93
|
- !ruby/object:Gem::Version
|
95
|
-
hash:
|
94
|
+
hash: 3179421635518079399
|
96
95
|
segments:
|
97
96
|
- 0
|
98
97
|
- 7
|
@@ -108,7 +107,7 @@ dependencies:
|
|
108
107
|
requirements:
|
109
108
|
- - ~>
|
110
109
|
- !ruby/object:Gem::Version
|
111
|
-
hash:
|
110
|
+
hash: 1606453007234795795
|
112
111
|
segments:
|
113
112
|
- 3
|
114
113
|
- 1
|
@@ -128,6 +127,7 @@ files:
|
|
128
127
|
- .gitignore
|
129
128
|
- .rspec
|
130
129
|
- .travis.yml
|
130
|
+
- CHANGELOG.md
|
131
131
|
- Gemfile
|
132
132
|
- Guardfile
|
133
133
|
- LICENSE
|
@@ -153,7 +153,6 @@ files:
|
|
153
153
|
- spec/resource_spec.rb
|
154
154
|
- spec/spec_helper.rb
|
155
155
|
- spec/utils_spec.rb
|
156
|
-
has_rdoc: true
|
157
156
|
homepage: https://github.com/gocardless/gocardless-ruby
|
158
157
|
licenses: []
|
159
158
|
|
@@ -167,7 +166,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
167
166
|
requirements:
|
168
167
|
- - ">="
|
169
168
|
- !ruby/object:Gem::Version
|
170
|
-
hash:
|
169
|
+
hash: 2002549777813010636
|
171
170
|
segments:
|
172
171
|
- 0
|
173
172
|
version: "0"
|
@@ -176,14 +175,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
176
175
|
requirements:
|
177
176
|
- - ">="
|
178
177
|
- !ruby/object:Gem::Version
|
179
|
-
hash:
|
178
|
+
hash: 2002549777813010636
|
180
179
|
segments:
|
181
180
|
- 0
|
182
181
|
version: "0"
|
183
182
|
requirements: []
|
184
183
|
|
185
184
|
rubyforge_project:
|
186
|
-
rubygems_version: 1.
|
185
|
+
rubygems_version: 1.8.12
|
187
186
|
signing_key:
|
188
187
|
specification_version: 3
|
189
188
|
summary: Ruby wrapper for the GoCardless API
|
@@ -195,3 +194,4 @@ test_files:
|
|
195
194
|
- spec/resource_spec.rb
|
196
195
|
- spec/spec_helper.rb
|
197
196
|
- spec/utils_spec.rb
|
197
|
+
has_rdoc:
|