tns_payments 0.0.1 → 0.0.2
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/CHANGELOG.md +10 -0
- data/lib/tns_payments/connection.rb +21 -49
- data/lib/tns_payments/version.rb +1 -1
- data/test/unit/conntection_test.rb +80 -63
- metadata +16 -15
data/CHANGELOG.md
ADDED
@@ -21,21 +21,26 @@ module TNSPayments
|
|
21
21
|
"https://secure.ap.tnspayments.com/form/#{session_token}"
|
22
22
|
end
|
23
23
|
|
24
|
-
def purchase
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
24
|
+
def purchase transaction, token
|
25
|
+
order_id = transaction.order_id
|
26
|
+
transaction_id = transaction.transaction_id
|
27
|
+
params = {
|
28
|
+
'apiOperation' => 'PAY',
|
29
|
+
'order' => {'reference' => transaction.reference},
|
30
|
+
'cardDetails' => {purchase_token_key(token) => token},
|
31
|
+
'transaction' => {'amount' => transaction.amount.to_s, 'currency' => transaction.currency, 'reference' => transaction_id.to_s}
|
32
|
+
}
|
33
|
+
|
34
|
+
request :put, "/merchant/#{@merchant_id}/order/#{order_id}/transaction/#{transaction_id}", params
|
30
35
|
end
|
31
36
|
|
32
|
-
def refund
|
33
|
-
order_id =
|
34
|
-
transaction_id =
|
37
|
+
def refund transaction
|
38
|
+
order_id = transaction.order_id
|
39
|
+
transaction_id = transaction.transaction_id
|
35
40
|
params = {
|
36
41
|
'apiOperation' => 'REFUND',
|
37
|
-
'order' => {'reference' =>
|
38
|
-
'transaction' => {'amount' => amount.to_s, 'currency' =>
|
42
|
+
'order' => {'reference' => transaction.reference},
|
43
|
+
'transaction' => {'amount' => transaction.amount.to_s, 'currency' => transaction.currency, 'reference' => transaction_id.to_s}
|
39
44
|
}
|
40
45
|
|
41
46
|
request :put, "/merchant/#{@merchant_id}/order/#{order_id}/transaction/#{transaction_id}", params
|
@@ -49,16 +54,9 @@ module TNSPayments
|
|
49
54
|
request :delete, "/merchant/#{@merchant_id}/token/#{token}"
|
50
55
|
end
|
51
56
|
|
52
|
-
def session_token
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
def session_token reload = false
|
57
|
-
if @session_token.nil? or reload
|
58
|
-
response = request :post, "/merchant/#{@merchant_id}/session"
|
59
|
-
@session_token = response.success?? response.response['session'] : nil
|
60
|
-
end
|
61
|
-
@session_token
|
57
|
+
def session_token
|
58
|
+
response = request :post, "/merchant/#{@merchant_id}/session"
|
59
|
+
response.success?? response.response['session'] : raise(response.response.inspect)
|
62
60
|
end
|
63
61
|
|
64
62
|
private
|
@@ -67,39 +65,13 @@ module TNSPayments
|
|
67
65
|
'https://secure.ap.tnspayments.com/api/rest/version/4'
|
68
66
|
end
|
69
67
|
|
70
|
-
def create_order_id id
|
71
|
-
10000000000 + id.to_i
|
72
|
-
end
|
73
|
-
|
74
68
|
def encode_credentials
|
75
69
|
credentials = ['', @api_key].join(':')
|
76
70
|
'Basic ' << Base64.encode64(credentials)
|
77
71
|
end
|
78
72
|
|
79
|
-
def
|
80
|
-
|
81
|
-
transaction_id = options[:transaction_id]
|
82
|
-
params = {
|
83
|
-
'apiOperation' => 'PAY',
|
84
|
-
'order' => {'reference' => options[:order_reference]},
|
85
|
-
'cardDetails' => {'cardToken' => token},
|
86
|
-
'transaction' => {'amount' => amount.to_s, 'currency' => 'AUD', 'reference' => transaction_id.to_s}
|
87
|
-
}
|
88
|
-
|
89
|
-
request :put, "/merchant/#{@merchant_id}/order/#{order_id}/transaction/#{transaction_id}", params
|
90
|
-
end
|
91
|
-
|
92
|
-
def purchase_with_session_token amount, token, options = {}
|
93
|
-
order_id = create_order_id options[:order_id]
|
94
|
-
transaction_id = options[:transaction_id]
|
95
|
-
params = {
|
96
|
-
'apiOperation' => 'PAY',
|
97
|
-
'order' => {'reference' => options[:order_reference]},
|
98
|
-
'cardDetails' => {'session' => token},
|
99
|
-
'transaction' => {'amount' => amount.to_s, 'currency' => 'AUD', 'reference' => transaction_id.to_s}
|
100
|
-
}
|
101
|
-
|
102
|
-
request :put, "/merchant/#{@merchant_id}/order/#{order_id}/transaction/#{transaction_id}", params
|
73
|
+
def purchase_token_key token
|
74
|
+
token =~ CREDIT_CARD_TOKEN_FORMAT ? 'cardToken' : 'session'
|
103
75
|
end
|
104
76
|
|
105
77
|
def request method, path, options = {}
|
data/lib/tns_payments/version.rb
CHANGED
@@ -9,71 +9,58 @@ class TNSPayments::ConnectionTest < MiniTest::Unit::TestCase
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def test_available_is_true_when_tns_gateway_is_operating
|
12
|
-
stub_availability_request.
|
13
|
-
to_return(:status => 200, :body => '{"status":"OPERATING"}', :headers => {})
|
12
|
+
stub_availability_request.to_return(:status => 200, :body => '{"status":"OPERATING"}', :headers => {})
|
14
13
|
assert @gateway.available?
|
15
14
|
end
|
16
15
|
|
17
16
|
def test_available_is_false_when_tns_gateway_is_not_operating
|
18
|
-
stub_availability_request.
|
19
|
-
to_return(:status => 200, :body => '{"status":"EPIC_FAIL"}', :headers => {})
|
17
|
+
stub_availability_request.to_return(:status => 200, :body => '{"status":"EPIC_FAIL"}', :headers => {})
|
20
18
|
refute @gateway.available?
|
21
19
|
end
|
22
20
|
|
23
21
|
def test_purchase_with_session_token_makes_a_successful_purchase
|
24
|
-
stub_successful_session_token_purchase_request
|
25
|
-
|
26
|
-
assert response.success?
|
22
|
+
stub_successful_session_token_purchase_request mock_transaction, 'SESSIONTOKEN'
|
23
|
+
assert @gateway.purchase(mock_transaction, 'SESSIONTOKEN').success?
|
27
24
|
end
|
28
25
|
|
29
26
|
def test_purchase_with_session_token_makes_an_unsuccessful_purchase
|
30
|
-
stub_unsuccessful_session_token_purchase_request
|
31
|
-
|
32
|
-
refute response.success?
|
27
|
+
stub_unsuccessful_session_token_purchase_request mock_transaction, 'SESSIONTOKEN'
|
28
|
+
refute @gateway.purchase(mock_transaction, 'SESSIONTOKEN').success?
|
33
29
|
end
|
34
30
|
|
35
31
|
def test_purchase_with_session_token_can_deal_with_timeout_errors
|
36
|
-
stub_session_token_purchase_request(
|
37
|
-
|
38
|
-
response = @gateway.purchase 100, 'SESSIONTOKEN', :order_id => 1, :transaction_id => 1, :order_reference => 'AUD123'
|
39
|
-
refute response.success?
|
32
|
+
stub_session_token_purchase_request(mock_transaction, 'SESSIONTOKEN').to_timeout
|
33
|
+
refute @gateway.purchase(mock_transaction, 'SESSIONTOKEN').success?
|
40
34
|
end
|
41
35
|
|
42
36
|
def test_purchase_with_credit_card_token_makes_a_successful_purchase
|
43
|
-
stub_successful_credit_card_token_purchase_request(
|
44
|
-
assert @gateway.purchase(
|
37
|
+
stub_successful_credit_card_token_purchase_request(mock_transaction, '9111111111111111')
|
38
|
+
assert @gateway.purchase(mock_transaction, '9111111111111111').success?
|
45
39
|
end
|
46
40
|
|
47
41
|
def test_purchase_with_credit_card_token_makes_an_unsuccessful_purchase
|
48
|
-
stub_unsuccessful_credit_card_token_purchase_request
|
49
|
-
|
50
|
-
refute response.success?
|
42
|
+
stub_unsuccessful_credit_card_token_purchase_request mock_transaction, '9111111111111111'
|
43
|
+
refute @gateway.purchase(mock_transaction, '9111111111111111').success?
|
51
44
|
end
|
52
45
|
|
53
46
|
def test_purchase_with_credit_card_token_can_deal_with_timeout_errors
|
54
|
-
stub_credit_card_token_purchase_request(
|
55
|
-
|
56
|
-
response = @gateway.purchase 100, '9111111111111111', :order_id => 1, :transaction_id => 1, :order_reference => 'AUD123'
|
57
|
-
refute response.success?
|
47
|
+
stub_credit_card_token_purchase_request(mock_transaction, '9111111111111111').to_timeout
|
48
|
+
refute @gateway.purchase(mock_transaction, '9111111111111111').success?
|
58
49
|
end
|
59
50
|
|
60
51
|
def test_refund_makes_successful_refund
|
61
|
-
stub_successful_refund_request
|
62
|
-
|
63
|
-
assert response.success?
|
52
|
+
stub_successful_refund_request mock_transaction
|
53
|
+
assert @gateway.refund(mock_transaction).success?
|
64
54
|
end
|
65
55
|
|
66
56
|
def test_refund_makes_unsuccessful_refund
|
67
|
-
stub_unsuccessful_refund_request
|
68
|
-
|
69
|
-
refute response.success?
|
57
|
+
stub_unsuccessful_refund_request mock_transaction
|
58
|
+
refute @gateway.refund(mock_transaction).success?
|
70
59
|
end
|
71
60
|
|
72
61
|
def test_refund_can_deal_with_timeout_errors
|
73
|
-
stub_refund_request(
|
74
|
-
|
75
|
-
response = @gateway.refund 100, :order_id => 1, :transaction_id => 1, :order_reference => 'AUD123'
|
76
|
-
refute response.success?
|
62
|
+
stub_refund_request(mock_transaction).to_timeout
|
63
|
+
refute @gateway.refund(mock_transaction).success?
|
77
64
|
end
|
78
65
|
|
79
66
|
def test_create_credit_card_token_successfully_stores_creditcard
|
@@ -103,6 +90,11 @@ class TNSPayments::ConnectionTest < MiniTest::Unit::TestCase
|
|
103
90
|
refute @gateway.delete_credit_card_token('9123456781234567').success?
|
104
91
|
end
|
105
92
|
|
93
|
+
def test_session_token_returns_token
|
94
|
+
stub_successful_session_token_request
|
95
|
+
assert_equal 'SESSIONTOKEN', @gateway.session_token
|
96
|
+
end
|
97
|
+
|
106
98
|
private
|
107
99
|
|
108
100
|
def stub_availability_request
|
@@ -110,38 +102,38 @@ private
|
|
110
102
|
with(:headers => {'Accept'=>'*/*', 'Content-Type'=>'Application/json;charset=UTF-8'})
|
111
103
|
end
|
112
104
|
|
113
|
-
def stub_successful_refund_request
|
114
|
-
stub_refund_request(
|
105
|
+
def stub_successful_refund_request transaction
|
106
|
+
stub_refund_request(transaction).
|
115
107
|
to_return :status => 200, :headers => {}, :body => <<-EOS
|
116
|
-
{"merchant":"#{@merchant_id}","order":{"id":#{
|
108
|
+
{"merchant":"#{@merchant_id}","order":{"id":#{transaction.order_id},"totalAuthorizedAmount":0.00,"totalCapturedAmount":0.00,"totalRefundedAmount":0.00},
|
117
109
|
"response":{"acquirerCode":"00","gatewayCode":"APPROVED"},"result":"SUCCESS","transaction":{"acquirer":{"id":"STGEORGE"},
|
118
|
-
"amount":#{
|
110
|
+
"amount":#{transaction.amount},"authorizationCode":"000582","batch":20110707,"currency":"AUD","id":"#{transaction.transaction_id}",
|
119
111
|
"receipt":"110707000582","source":"INTERNET","terminal":"08845778","type":"REFUND"}}
|
120
112
|
EOS
|
121
113
|
end
|
122
114
|
|
123
|
-
def stub_unsuccessful_refund_request
|
124
|
-
stub_refund_request(
|
115
|
+
def stub_unsuccessful_refund_request transaction
|
116
|
+
stub_refund_request(transaction).
|
125
117
|
to_return(:status => 200, :body => '{"result":"FAILURE"}', :headers => {})
|
126
118
|
end
|
127
119
|
|
128
|
-
def stub_successful_credit_card_token_purchase_request
|
129
|
-
stub_credit_card_token_purchase_request(
|
130
|
-
to_return(:status => 200, :body => %[{"card":{"expiry":{"month":"5","year":"13"},"number":"xxxxxxxxxxxxxxxx","scheme":"MASTERCARD"},"merchant":"","order":{"id":"#{
|
120
|
+
def stub_successful_credit_card_token_purchase_request transaction, token
|
121
|
+
stub_credit_card_token_purchase_request(transaction, token).
|
122
|
+
to_return(:status => 200, :body => %[{"card":{"expiry":{"month":"5","year":"13"},"number":"xxxxxxxxxxxxxxxx","scheme":"MASTERCARD"},"merchant":"","order":{"id":"#{transaction.order_id}","totalAuthorizedAmount":0.00,"totalCapturedAmount":0.00,"totalRefundedAmount":0.00},"response":{"acquirerCode":"00","gatewayCode":"APPROVED"},"result":"SUCCESS","transaction":{"acquirer":{"id":"STGEORGE"},"amount":"#{transaction.amount}","authorizationCode":"000576","batch":20110707,"currency":"AUD","frequency":"SINGLE","id":"72637779534c67696c54b26f220dc4d3","receipt":"110707000576","source":"INTERNET","terminal":"08845778","type":"PAYMENT"}}], :headers => {})
|
131
123
|
end
|
132
124
|
|
133
|
-
def stub_unsuccessful_credit_card_token_purchase_request
|
134
|
-
stub_credit_card_token_purchase_request(
|
125
|
+
def stub_unsuccessful_credit_card_token_purchase_request transaction, token
|
126
|
+
stub_credit_card_token_purchase_request(transaction, token).
|
135
127
|
to_return(:status => 200, :body => '{"result":"FAILURE"}', :headers => {})
|
136
128
|
end
|
137
129
|
|
138
|
-
def stub_successful_session_token_purchase_request
|
139
|
-
stub_session_token_purchase_request(
|
140
|
-
to_return(:status => 200, :body => %[{"card":{"expiry":{"month":"5","year":"13"},"number":"xxxxxxxxxxxxxxxx","scheme":"MASTERCARD"},"merchant":"","order":{"id":"#{
|
130
|
+
def stub_successful_session_token_purchase_request transaction, token
|
131
|
+
stub_session_token_purchase_request(transaction, token).
|
132
|
+
to_return(:status => 200, :body => %[{"card":{"expiry":{"month":"5","year":"13"},"number":"xxxxxxxxxxxxxxxx","scheme":"MASTERCARD"},"merchant":"","order":{"id":"#{transaction.order_id}","totalAuthorizedAmount":0.00,"totalCapturedAmount":0.00,"totalRefundedAmount":0.00},"response":{"acquirerCode":"00","gatewayCode":"APPROVED"},"result":"SUCCESS","transaction":{"acquirer":{"id":"STGEORGE"},"amount":"#{transaction.amount}","authorizationCode":"000576","batch":20110707,"currency":"AUD","frequency":"SINGLE","id":"72637779534c67696c54b26f220dc4d3","receipt":"110707000576","source":"INTERNET","terminal":"08845778","type":"PAYMENT"}}], :headers => {})
|
141
133
|
end
|
142
134
|
|
143
|
-
def stub_unsuccessful_session_token_purchase_request
|
144
|
-
stub_session_token_purchase_request(
|
135
|
+
def stub_unsuccessful_session_token_purchase_request transaction, token
|
136
|
+
stub_session_token_purchase_request(transaction, token).
|
145
137
|
to_return(:status => 200, :body => '{"result":"FAILURE"}', :headers => {})
|
146
138
|
end
|
147
139
|
|
@@ -165,13 +157,28 @@ private
|
|
165
157
|
to_return(:status => 200, :body => '{"result":"FAILURE"}', :headers => {})
|
166
158
|
end
|
167
159
|
|
168
|
-
def
|
169
|
-
|
160
|
+
def stub_successful_session_token_request
|
161
|
+
stub_session_token_request.
|
162
|
+
to_return(:status => 200, :body => '{"result":"SUCCESS","session":"SESSIONTOKEN"}', :headers => {})
|
163
|
+
end
|
164
|
+
|
165
|
+
def stub_session_token_request
|
166
|
+
stub_request(:post, /https:\/\/:#{@api_key}@secure\.ap\.tnspayments\.com\/api\/rest\/version\/4\/merchant\/#{@merchant_id}\/session/).
|
167
|
+
with :headers => {
|
168
|
+
'Accept' => '*/*',
|
169
|
+
'Accept-Encoding' => 'gzip, deflate',
|
170
|
+
'Content-Length' => '2',
|
171
|
+
'Content-Type' => 'Application/json;charset=UTF-8'
|
172
|
+
}
|
173
|
+
end
|
174
|
+
|
175
|
+
def stub_session_token_purchase_request transaction, token
|
176
|
+
stub_request(:put, /https:\/\/:#{@api_key}@secure\.ap\.tnspayments\.com\/api\/rest\/version\/4\/merchant\/#{@merchant_id}\/order\/#{transaction.order_id}\/transaction\/#{transaction.transaction_id}/).
|
170
177
|
with :body => JSON.generate({
|
171
178
|
'apiOperation' => 'PAY',
|
172
|
-
'order' => {'reference' =>
|
173
|
-
'cardDetails' => {'session' =>
|
174
|
-
'transaction' => {'amount' =>
|
179
|
+
'order' => {'reference' => transaction.reference.to_s},
|
180
|
+
'cardDetails' => {'session' => token.to_s},
|
181
|
+
'transaction' => {'amount' => transaction.amount.to_s, 'currency' => transaction.currency, 'reference' => transaction.transaction_id.to_s}
|
175
182
|
}),
|
176
183
|
:headers => {
|
177
184
|
'Accept' => '*/*',
|
@@ -181,13 +188,13 @@ private
|
|
181
188
|
}
|
182
189
|
end
|
183
190
|
|
184
|
-
def stub_credit_card_token_purchase_request
|
185
|
-
stub_request(:put, /https:\/\/:#{@api_key}@secure\.ap\.tnspayments\.com\/api\/rest\/version\/4\/merchant\/#{@merchant_id}\/order\/#{
|
191
|
+
def stub_credit_card_token_purchase_request transaction, token
|
192
|
+
stub_request(:put, /https:\/\/:#{@api_key}@secure\.ap\.tnspayments\.com\/api\/rest\/version\/4\/merchant\/#{@merchant_id}\/order\/#{transaction.order_id}\/transaction\/#{transaction.transaction_id}/).
|
186
193
|
with :body => JSON.generate({
|
187
194
|
'apiOperation' => 'PAY',
|
188
|
-
'order' => {'reference' =>
|
189
|
-
'cardDetails' => {'cardToken' =>
|
190
|
-
'transaction' => {'amount' =>
|
195
|
+
'order' => {'reference' => transaction.reference.to_s},
|
196
|
+
'cardDetails' => {'cardToken' => token.to_s},
|
197
|
+
'transaction' => {'amount' => transaction.amount.to_s, 'currency' => transaction.currency, 'reference' => transaction.transaction_id.to_s}
|
191
198
|
}),
|
192
199
|
:headers => {
|
193
200
|
'Accept' => '*/*',
|
@@ -197,12 +204,12 @@ private
|
|
197
204
|
}
|
198
205
|
end
|
199
206
|
|
200
|
-
def stub_refund_request
|
201
|
-
stub_request(:put, /https:\/\/:#{@api_key}@secure\.ap\.tnspayments\.com\/api\/rest\/version\/4\/merchant\/#{@merchant_id}\/order\/#{
|
207
|
+
def stub_refund_request transaction
|
208
|
+
stub_request(:put, /https:\/\/:#{@api_key}@secure\.ap\.tnspayments\.com\/api\/rest\/version\/4\/merchant\/#{@merchant_id}\/order\/#{transaction.order_id}\/transaction\/#{transaction.transaction_id}/).
|
202
209
|
with :body => JSON.generate({
|
203
210
|
'apiOperation' => 'REFUND',
|
204
|
-
'order' => {'reference' =>
|
205
|
-
'transaction' => {'amount' =>
|
211
|
+
'order' => {'reference' => transaction.reference.to_s},
|
212
|
+
'transaction' => {'amount' => transaction.amount.to_s, 'currency' => transaction.currency, 'reference' => transaction.transaction_id.to_s}
|
206
213
|
}),
|
207
214
|
:headers => {
|
208
215
|
'Accept' => '*/*',
|
@@ -221,4 +228,14 @@ private
|
|
221
228
|
stub_request(:delete, /https:\/\/:#{@api_key}@secure\.ap\.tnspayments\.com\/api\/rest\/version\/4\/merchant\/#{@merchant_id}\/token\/\d{16}/).
|
222
229
|
with(:headers => {'Accept'=>'*/*', 'Content-Type'=>'Application/json;charset=UTF-8'}, :body => {})
|
223
230
|
end
|
231
|
+
|
232
|
+
def mock_transaction
|
233
|
+
mock = MiniTest::Mock.new
|
234
|
+
mock.expect :amount, 100
|
235
|
+
mock.expect :currency, 'AUD'
|
236
|
+
mock.expect :order_id, 10000000001
|
237
|
+
mock.expect :transaction_id, 1
|
238
|
+
mock.expect :reference, 'AUD123'
|
239
|
+
mock
|
240
|
+
end
|
224
241
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tns_payments
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-03-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
16
|
-
requirement: &
|
16
|
+
requirement: &70340031250080 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70340031250080
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rest-client
|
27
|
-
requirement: &
|
27
|
+
requirement: &70340031249380 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70340031249380
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: minitest
|
38
|
-
requirement: &
|
38
|
+
requirement: &70340031248300 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70340031248300
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rake
|
49
|
-
requirement: &
|
49
|
+
requirement: &70340031247520 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70340031247520
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: webmock
|
60
|
-
requirement: &
|
60
|
+
requirement: &70340031246220 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70340031246220
|
69
69
|
description: Integration with TNS Payments Gateway
|
70
70
|
email:
|
71
71
|
- coop@latrobest.com
|
@@ -74,6 +74,7 @@ extensions: []
|
|
74
74
|
extra_rdoc_files: []
|
75
75
|
files:
|
76
76
|
- .gitignore
|
77
|
+
- CHANGELOG.md
|
77
78
|
- Gemfile
|
78
79
|
- Rakefile
|
79
80
|
- lib/tns_payments.rb
|
@@ -99,7 +100,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
99
100
|
version: '0'
|
100
101
|
segments:
|
101
102
|
- 0
|
102
|
-
hash:
|
103
|
+
hash: 4524899234055894427
|
103
104
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
104
105
|
none: false
|
105
106
|
requirements:
|
@@ -108,10 +109,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
108
109
|
version: '0'
|
109
110
|
segments:
|
110
111
|
- 0
|
111
|
-
hash:
|
112
|
+
hash: 4524899234055894427
|
112
113
|
requirements: []
|
113
114
|
rubyforge_project:
|
114
|
-
rubygems_version: 1.8.
|
115
|
+
rubygems_version: 1.8.11
|
115
116
|
signing_key:
|
116
117
|
specification_version: 3
|
117
118
|
summary: Integration with TNS Payments Gateway
|