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