balanced 0.3.5 → 0.3.6
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.
data/lib/balanced/pager.rb
CHANGED
@@ -2,6 +2,8 @@ require "cgi"
|
|
2
2
|
|
3
3
|
module Balanced
|
4
4
|
class Pager
|
5
|
+
DEFAULT_SEP = /[&;] */n
|
6
|
+
|
5
7
|
include Enumerable
|
6
8
|
|
7
9
|
# A pager for paginating through resource records.
|
@@ -21,12 +23,6 @@ module Balanced
|
|
21
23
|
def first
|
22
24
|
load! unless @page
|
23
25
|
items.first.nil? ? nil : resource_class.construct_from_response(items.first)
|
24
|
-
=begin
|
25
|
-
if items.first.nil?
|
26
|
-
return nil
|
27
|
-
end
|
28
|
-
resource_class.construct_from_response items.first
|
29
|
-
=end
|
30
26
|
end
|
31
27
|
|
32
28
|
def total
|
@@ -55,15 +51,13 @@ module Balanced
|
|
55
51
|
return enum_for :each unless block_given?
|
56
52
|
|
57
53
|
load! unless @page
|
58
|
-
|
59
54
|
loop do
|
60
|
-
@page[:items].each do |
|
61
|
-
yield resource_class.construct_from_response
|
55
|
+
@page[:items].each do |r|
|
56
|
+
yield resource_class.construct_from_response r
|
62
57
|
end
|
63
|
-
|
58
|
+
raise StopIteration if @page[:next_uri].nil?
|
64
59
|
self.next
|
65
60
|
end
|
66
|
-
|
67
61
|
end
|
68
62
|
|
69
63
|
# @return [nil]
|
@@ -138,8 +132,17 @@ module Balanced
|
|
138
132
|
def load_from uri, params
|
139
133
|
parsed_uri = URI.parse(uri)
|
140
134
|
|
135
|
+
params ||= {}
|
136
|
+
|
141
137
|
unless parsed_uri.query.nil?
|
142
|
-
|
138
|
+
# The reason we don't use CGI::parse here is because
|
139
|
+
# the balanced api currently can't handle variable[]=value.
|
140
|
+
# Faraday ends up encoding a simple query string like:
|
141
|
+
# {"limit"=>["10"], "offset"=>["0"]}
|
142
|
+
# to limit[]=10&offset[]=0 and that's cool, but
|
143
|
+
# we have to make sure balanced supports it.
|
144
|
+
query_params = parse_query(parsed_uri.query)
|
145
|
+
params.merge! query_params
|
143
146
|
parsed_uri.query = nil
|
144
147
|
end
|
145
148
|
|
@@ -148,5 +151,28 @@ module Balanced
|
|
148
151
|
@uri = @page[:uri]
|
149
152
|
end
|
150
153
|
|
154
|
+
# Stolen from Mongrel, with some small modifications:
|
155
|
+
# Parses a query string by breaking it up at the '&'
|
156
|
+
# and ';' characters. You can also use this to parse
|
157
|
+
# cookies by changing the characters used in the second
|
158
|
+
# parameter (which defaults to '&;').
|
159
|
+
def parse_query(qs, d = nil)
|
160
|
+
params = {}
|
161
|
+
|
162
|
+
(qs || '').split(d ? /[#{d}] */n : DEFAULT_SEP).each do |p|
|
163
|
+
k, v = p.split('=', 2).map { |x| CGI::unescape(x) }
|
164
|
+
if (cur = params[k])
|
165
|
+
if cur.class == Array
|
166
|
+
params[k] << v
|
167
|
+
else
|
168
|
+
params[k] = [cur, v]
|
169
|
+
end
|
170
|
+
else
|
171
|
+
params[k] = v
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
175
|
+
params
|
176
|
+
end
|
151
177
|
end
|
152
178
|
end
|
@@ -88,11 +88,11 @@ module Balanced
|
|
88
88
|
destination_uri = args[3] || options.fetch(:destination_uri) { nil }
|
89
89
|
|
90
90
|
credit = Credit.new(
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
91
|
+
:uri => self.credits_uri,
|
92
|
+
:amount => amount,
|
93
|
+
:meta => meta,
|
94
|
+
:description => description,
|
95
|
+
:destination_uri => destination_uri,
|
96
96
|
)
|
97
97
|
credit.save
|
98
98
|
end
|
data/lib/balanced/version.rb
CHANGED
@@ -0,0 +1,72 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Balanced::Transaction do
|
4
|
+
|
5
|
+
use_vcr_cassette
|
6
|
+
|
7
|
+
before do
|
8
|
+
api_key = Balanced::ApiKey.new.save
|
9
|
+
Balanced.configure api_key.secret
|
10
|
+
@marketplace = Balanced::Marketplace.new.save
|
11
|
+
@merchant_attributes = {
|
12
|
+
:type => "person",
|
13
|
+
:name => "Billy Jones",
|
14
|
+
:street_address => "801 High St.",
|
15
|
+
:postal_code => "94301",
|
16
|
+
:country => "USA",
|
17
|
+
:dob => "1842-01",
|
18
|
+
:phone_number => "+16505551234",
|
19
|
+
}
|
20
|
+
bank_account = Balanced::BankAccount.new(
|
21
|
+
:account_number => "1234567890",
|
22
|
+
:bank_code => "321174851",
|
23
|
+
:name => "Jack Q Merchant"
|
24
|
+
).save
|
25
|
+
card = Balanced::Card.new(
|
26
|
+
:card_number => "4111111111111111",
|
27
|
+
:expiration_month => "1",
|
28
|
+
:expiration_year => "2015",
|
29
|
+
).save
|
30
|
+
@merchant = @marketplace.create_merchant(
|
31
|
+
:email_address => "merchant@example.org",
|
32
|
+
:merchant => @merchant_attributes,
|
33
|
+
:bank_account_uri => bank_account.uri,
|
34
|
+
:name => "Jack Q Merchant"
|
35
|
+
)
|
36
|
+
@buyer = @marketplace.create_buyer(
|
37
|
+
:email_address => "buyer+transactions@example.org",
|
38
|
+
:card_uri => card.uri,
|
39
|
+
:name => "Jack Q Buyer"
|
40
|
+
).save
|
41
|
+
1.upto 5 do |n|
|
42
|
+
@buyer.debit(1000, :description => "Transaction ##{n}")
|
43
|
+
@merchant.credit(500, :description => "Credit from Debit ##{n}")
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
describe "Transaction" do
|
48
|
+
use_vcr_cassette
|
49
|
+
|
50
|
+
it "#all" do
|
51
|
+
Balanced::Transaction.all.length.should eql(15)
|
52
|
+
end
|
53
|
+
|
54
|
+
describe "#paginate" do
|
55
|
+
use_vcr_cassette
|
56
|
+
|
57
|
+
it "#total" do
|
58
|
+
Balanced::Transaction.paginate.total.should eql(15)
|
59
|
+
end
|
60
|
+
|
61
|
+
it "#each" do
|
62
|
+
counter = 0
|
63
|
+
Balanced::Transaction.paginate.each do |transaction|
|
64
|
+
counter += 1
|
65
|
+
end
|
66
|
+
counter.should eql(15)
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
72
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: balanced
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-07-
|
12
|
+
date: 2012-07-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: faraday
|
@@ -98,6 +98,7 @@ files:
|
|
98
98
|
- spec/balanced/resources/api_key_spec.rb
|
99
99
|
- spec/balanced/resources/hold_spec.rb
|
100
100
|
- spec/balanced/resources/marketplace_spec.rb
|
101
|
+
- spec/balanced/resources/transactions_spec.rb
|
101
102
|
- spec/balanced/response/balanced_exception_middleware_spec.rb
|
102
103
|
- spec/balanced_spec.rb
|
103
104
|
- spec/client_spec.rb
|
@@ -133,6 +134,7 @@ test_files:
|
|
133
134
|
- spec/balanced/resources/api_key_spec.rb
|
134
135
|
- spec/balanced/resources/hold_spec.rb
|
135
136
|
- spec/balanced/resources/marketplace_spec.rb
|
137
|
+
- spec/balanced/resources/transactions_spec.rb
|
136
138
|
- spec/balanced/response/balanced_exception_middleware_spec.rb
|
137
139
|
- spec/balanced_spec.rb
|
138
140
|
- spec/client_spec.rb
|