geti 1.8.1 → 3.1.1
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.
- checksums.yaml +7 -0
- data/History.txt +6 -1
- data/README.rdoc +3 -3
- data/Rakefile +6 -7
- data/lib/geti/app_client.rb +12 -4
- data/lib/geti/auth_client.rb +1 -1
- data/lib/geti/client.rb +21 -8
- data/lib/geti.rb +1 -1
- data/spec/geti_app_client_spec.rb +42 -101
- data/spec/geti_auth_client_spec.rb +6 -12
- data/spec/helper.rb +4 -5
- metadata +209 -213
- data/.gemtest +0 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: d55a626a0189cb30bd0b4ef50e7407230d29fe03cb0162fb80ffa78aa12a3cd8
|
4
|
+
data.tar.gz: 367a74b042b28f6d3ab2e8ef145f4236460ff287865ed2ddb47e22053820d148
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: e5eff1d02f8ee361fc1004b275b8cc0f8458d704b006b716b5b43abfbc38c0b74f01dec6ac3fb4194c73656897e5bba330dacbb8287b785044c351b9430e2ed1
|
7
|
+
data.tar.gz: 7d36228b44084bb8474f6cb227615ff94e89eaaeb096eca7c3f09a9ed57e1c20ae9dc88a5e81e6f8b7c931b5ccbe2775226189758ec45a241f041ac7694ba91a
|
data/History.txt
CHANGED
data/README.rdoc
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
= geti
|
2
2
|
|
3
|
-
* https://github.com/versapay/geti
|
3
|
+
* github :: https://github.com/versapay/geti
|
4
4
|
|
5
5
|
== DESCRIPTION:
|
6
6
|
|
@@ -47,11 +47,11 @@ Transaction Processing
|
|
47
47
|
|
48
48
|
After checking out the source, bundle to install gems, run specs with `rspec`.
|
49
49
|
|
50
|
-
If you want to run the specs in the remote dir, you'll need to provide
|
50
|
+
If you want to run the specs in the remote dir, you'll need to provide
|
51
51
|
`config/test_credentials.yml` (an example file is present).
|
52
52
|
|
53
53
|
=== Contributing
|
54
|
-
|
54
|
+
|
55
55
|
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
|
56
56
|
* Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it.
|
57
57
|
* Fork the project.
|
data/Rakefile
CHANGED
@@ -10,23 +10,22 @@ Hoe.spec "geti" do
|
|
10
10
|
developer("Jamie Macey", "jamie@tracefunc.com")
|
11
11
|
license "MIT"
|
12
12
|
|
13
|
-
dependency 'savon', "~>
|
13
|
+
dependency 'savon', "~> 2.0"
|
14
14
|
dependency 'httpi', ">0"
|
15
15
|
dependency 'httpclient', ">0"
|
16
|
+
dependency 'nokogiri', ">0"
|
16
17
|
|
17
18
|
# Development
|
18
|
-
dependency 'rake', "
|
19
|
+
dependency 'rake', ">0", :dev
|
19
20
|
dependency 'bundler', '>0', :dev
|
20
21
|
dependency "hoe", '>0', :dev
|
21
22
|
dependency "hoe-bundler", '>0', :dev
|
22
23
|
dependency "hoe-git", '>0', :dev
|
23
24
|
|
24
25
|
# Test
|
25
|
-
dependency "
|
26
|
-
dependency 'rspec', '
|
26
|
+
dependency "simplecov", '>0', :dev
|
27
|
+
dependency 'rspec', '<2.99', :dev
|
27
28
|
dependency 'guard', '>0', :dev
|
28
29
|
dependency 'guard-rspec', '>0', :dev
|
29
|
-
dependency 'rb-fsevent', '
|
30
|
+
dependency 'rb-fsevent', '>0', :dev
|
30
31
|
end
|
31
|
-
|
32
|
-
p Hoe.plugins
|
data/lib/geti/app_client.rb
CHANGED
@@ -182,7 +182,7 @@ class Geti::AppClient < Geti::Client
|
|
182
182
|
:isoID => opts[:iso_id] || "9999",
|
183
183
|
:merchCrossRefID => opts[:id],
|
184
184
|
:merchName => opts[:name], # Legal Name
|
185
|
-
:merchTypeID => MERCHANT_TYPES.
|
185
|
+
:merchTypeID => MERCHANT_TYPES.key(opts[:industry]), # "Type of goods sold"
|
186
186
|
:merchServiceType => opts[:service_type] || "GOLD",
|
187
187
|
# TODO: Tax ID
|
188
188
|
:merchAddress1 => opts[:address], # TODO: Is this mailing or DBA address?
|
@@ -200,7 +200,7 @@ class Geti::AppClient < Geti::Client
|
|
200
200
|
# TODO: Email address
|
201
201
|
}) do
|
202
202
|
xml.BusinessInfo({
|
203
|
-
:merchOwnership =>
|
203
|
+
:merchOwnership => merchant_ownership(opts),
|
204
204
|
:merchAvgCheckAmount => opts[:average_amount],
|
205
205
|
:merchMaxCheckAmount => opts[:max_amount],
|
206
206
|
:merchTotalTimeInBusiness => opts[:days_in_business],
|
@@ -271,7 +271,7 @@ class Geti::AppClient < Geti::Client
|
|
271
271
|
end
|
272
272
|
|
273
273
|
def service_address
|
274
|
-
"https://#{domain}/webservices/AppGateway.asmx
|
274
|
+
"https://#{domain}/webservices/AppGateway.asmx"
|
275
275
|
end
|
276
276
|
|
277
277
|
def soap_header
|
@@ -297,8 +297,16 @@ class Geti::AppClient < Geti::Client
|
|
297
297
|
"Signup IP: %s" % opts[:ip]
|
298
298
|
end
|
299
299
|
|
300
|
+
def merchant_ownership(opts)
|
301
|
+
MERCHANT_OWNERSHIP.key((opts[:business_type]||'').gsub('_', ' '))
|
302
|
+
end
|
303
|
+
|
300
304
|
def taxpayer_info(opts)
|
301
|
-
|
305
|
+
if merchant_ownership(opts) == '3' # Sole Proprietorship
|
306
|
+
["Tax Info: #{opts[:taxpayer_name]}", opts[:taxpayer_id], "SSN: #{opts[:principal_ssn]}"]
|
307
|
+
else
|
308
|
+
["Tax Info: #{opts[:taxpayer_name]}", opts[:taxpayer_id]]
|
309
|
+
end.join(" - ")
|
302
310
|
end
|
303
311
|
|
304
312
|
private
|
data/lib/geti/auth_client.rb
CHANGED
data/lib/geti/client.rb
CHANGED
@@ -9,7 +9,19 @@ class Geti::Client
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def soap_client
|
12
|
-
|
12
|
+
Savon.client do |savon|
|
13
|
+
savon.wsdl service_address + "?WSDL"
|
14
|
+
# not picking up https by default after change to TLSv1
|
15
|
+
savon.endpoint service_address
|
16
|
+
savon.soap_version 2
|
17
|
+
savon.ssl_version :TLSv1
|
18
|
+
|
19
|
+
# savon.log_level :debug
|
20
|
+
# savon.log true
|
21
|
+
|
22
|
+
savon.convert_request_keys_to :camelcase
|
23
|
+
savon.pretty_print_xml true
|
24
|
+
end
|
13
25
|
end
|
14
26
|
|
15
27
|
def data_packet
|
@@ -22,17 +34,18 @@ class Geti::Client
|
|
22
34
|
|
23
35
|
def soap_request(operation, op_key=nil)
|
24
36
|
operation.sub!('Certification','') unless certification?
|
25
|
-
response = soap_client.request operation do
|
26
|
-
http.headers.delete('SOAPAction')
|
27
|
-
config.soap_header = soap_header
|
28
|
-
soap.body = (yield if block_given?)
|
29
|
-
end
|
30
37
|
|
31
38
|
op_key ||= operation.gsub(/(.)([A-Z])/, '\1_\2').downcase
|
32
39
|
op_key.sub!('_certification','') unless certification?
|
33
40
|
response_key = (op_key+'_response').to_sym
|
34
41
|
result_key = (op_key+'_result').to_sym
|
35
42
|
|
43
|
+
geti_soap_header = soap_header
|
44
|
+
response = soap_client.call(op_key.to_sym) do
|
45
|
+
soap_header geti_soap_header
|
46
|
+
message(yield) if block_given?
|
47
|
+
end
|
48
|
+
|
36
49
|
xml_parser.parse(response.body[response_key][result_key])
|
37
50
|
end
|
38
51
|
|
@@ -49,6 +62,6 @@ class Geti::Client
|
|
49
62
|
end
|
50
63
|
|
51
64
|
def xml_parser
|
52
|
-
@xml_parser or Nori
|
65
|
+
@xml_parser or Nori.new(:convert_tags_to => lambda { |tag| tag.snakecase.to_sym })
|
53
66
|
end
|
54
|
-
end
|
67
|
+
end
|
data/lib/geti.rb
CHANGED
@@ -1,16 +1,10 @@
|
|
1
1
|
require 'helper'
|
2
|
+
require 'savon/mock/spec_helper'
|
2
3
|
|
3
4
|
describe Geti::AppClient do
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
result_key = (op_key+'_result').to_sym
|
8
|
-
|
9
|
-
data = OpenStruct.new(:body => {response_key => {result_key => :encoded_xml}})
|
10
|
-
|
11
|
-
client.soap_client.should_receive(:request).with(operation).and_return(data)
|
12
|
-
client.xml_parser.should_receive(:parse).with(:encoded_xml).and_return(parsed_response)
|
13
|
-
end
|
5
|
+
include Savon::SpecHelper
|
6
|
+
before(:all) { savon.mock! }
|
7
|
+
after(:all) { savon.unmock! }
|
14
8
|
|
15
9
|
def request_payload
|
16
10
|
{
|
@@ -60,93 +54,16 @@ describe Geti::AppClient do
|
|
60
54
|
Nori.parse("<?xml version=\"1.0\" encoding=\"utf-8\"?><soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"><soap:Body><BoardMerchant_ACHResponse xmlns=\"http://tempuri.org/GETI.eMagnus.WebServices/AppGateway\"><BoardMerchant_ACHResult><?xml version=\"1.0\" encoding=\"utf-8\"?><RESPONSE xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"><STATUS>Pending</STATUS><MESSAGE>1 merchant(s) created.\n0 merchant(s) not created due to errors.\n\n-----------------------\nMerchants Created:\nMy Company (ISO ID: 10150, CrossRef: 83, Status: PendingInput)\n\n</MESSAGE><APP_DATA><Merchant ID=\"1844832\" /></APP_DATA><VALIDATION_MESSAGE><RESULT>Passed</RESULT><SCHEMA_FILE_PATH /></VALIDATION_MESSAGE></RESPONSE></BoardMerchant_ACHResult></BoardMerchant_ACHResponse></soap:Body></soap:Envelope>\n")[:envelope][:body]
|
61
55
|
end
|
62
56
|
|
63
|
-
def pending_response
|
64
|
-
{:response=>
|
65
|
-
{:status=>"Pending",
|
66
|
-
:"@xmlns:xsd"=>"http://www.w3.org/2001/XMLSchema",
|
67
|
-
:"@xmlns:xsi"=>"http://www.w3.org/2001/XMLSchema-instance",
|
68
|
-
:message=>
|
69
|
-
"1 merchant(s) created.\n0 merchant(s) not created due to errors.\n\n-----------------------\nMerchants Created:\nMy Company (ISO ID: 10150, CrossRef: 83, Status: PendingInput)\n\n",
|
70
|
-
:validation_message=>{:schema_file_path=>nil, :result=>"Passed"},
|
71
|
-
:app_data=>{:merchant=>{:@id=>"1844832"}}}}
|
72
|
-
end
|
73
|
-
|
74
|
-
def success_response
|
75
|
-
{:response=>{
|
76
|
-
:status=>"Approved",
|
77
|
-
:message=>"1 merchant(s) created.\n0 merchant(s) not created due to errors.\n\n-----------------------\nMerchants Created:\nCogsley's Cogs (ISO ID: 9999, CrossRef: 123456, Status: AppApprovedandActivated)\n\n",
|
78
|
-
:app_data=>{
|
79
|
-
:merchant=>{
|
80
|
-
:@name=>"Cogsley's Cogs",
|
81
|
-
:@active=>"1",
|
82
|
-
:@type=>"Merchant",
|
83
|
-
:@cross_ref_id=>"123456",
|
84
|
-
:@id=>"20",
|
85
|
-
:location=>{
|
86
|
-
:terminal=>{
|
87
|
-
:@manual_entry=>"N",
|
88
|
-
:@name=>"Lipman Nurit 3000-01 (111163) ",
|
89
|
-
:@active=>"1",
|
90
|
-
:@type=>"Terminal",
|
91
|
-
:@cross_ref_id=>"41680",
|
92
|
-
:@id=>"111163",
|
93
|
-
:@mid=>"101-111163-606"},
|
94
|
-
:@name=>"Cogsley's Cogs ",
|
95
|
-
:@active=>"1",
|
96
|
-
:@ach_name=>"COGSLEYSCOGS",
|
97
|
-
:@type=>"Location",
|
98
|
-
:@cross_ref_id=>"123456",
|
99
|
-
:@id=>"31"},
|
100
|
-
:poc1=>{
|
101
|
-
:@password=>"UGPRDGIX",
|
102
|
-
:@user_name=>"CCogsley",
|
103
|
-
:@last_name=>"Cogsley",
|
104
|
-
:@first_name=>"Carl"}}},
|
105
|
-
:"@xmlns:xsd"=>"http://www.w3.org/2001/XMLSchema",
|
106
|
-
:"@xmlns:xsi"=>"http://www.w3.org/2001/XMLSchema-instance",
|
107
|
-
:validation_message=>{:result=>"Passed", :schema_file_path=>nil}}}
|
108
|
-
end
|
109
|
-
|
110
|
-
def error_response
|
111
|
-
{:response=>{
|
112
|
-
:"@xmlns:xsd"=>"http://www.w3.org/2001/XMLSchema",
|
113
|
-
:"@xmlns:xsi"=>"http://www.w3.org/2001/XMLSchema-instance",
|
114
|
-
:validation_message=>
|
115
|
-
{:result=>"Failed",
|
116
|
-
:schema_file_path=>
|
117
|
-
"http://demo.eftchecks.com/WebServices/schemas/app/NewMerchApp_ACH.xsd",
|
118
|
-
:validation_error=>
|
119
|
-
[{:@line_number=>"1",
|
120
|
-
:severity=>"Error",
|
121
|
-
:message=>"The 'pocAddress1' attribute is not declared.",
|
122
|
-
:@line_position=>"1193"},
|
123
|
-
{:@line_number=>"1",
|
124
|
-
:severity=>"Error",
|
125
|
-
:message=>"The required attribute 'pocAddress' is missing.",
|
126
|
-
:@line_position=>"1020"}]}}}
|
127
|
-
end
|
128
|
-
|
129
|
-
def repeat_response
|
130
|
-
{:response=>{
|
131
|
-
:status=>"Pending",
|
132
|
-
:message=>
|
133
|
-
"1 merchant(s) created.\n0 merchant(s) not created due to errors.\n\n-----------------------\nMerchants Created:\nCogsley's Cogs (ISO ID: 9999, CrossRef: 123456, Status: PendingInput)\n\n",
|
134
|
-
:validation_message=>{:result=>"Passed", :schema_file_path=>nil},
|
135
|
-
:"@xmlns:xsd"=>"http://www.w3.org/2001/XMLSchema",
|
136
|
-
:"@xmlns:xsi"=>"http://www.w3.org/2001/XMLSchema-instance",
|
137
|
-
:app_data=>{:merchant=>{:@id=>"21"}}}}
|
138
|
-
end
|
139
|
-
|
140
57
|
describe '#board_merchant_ach' do
|
141
58
|
it 'calls BoardCertificationMerchant_ACH' do
|
59
|
+
savon.expects(:board_certification_merchant_ach).with(:message => :any).returns(fixture(:board_certification_merchant_ach_pending))
|
142
60
|
client = Geti::AppClient.new(test_credentials, {})
|
143
|
-
mock_soap!(client, pending_response, "BoardCertificationMerchant_ACH", "board_certification_merchant_ach")
|
144
61
|
client.board_merchant_ach(request_payload)
|
145
62
|
end
|
146
63
|
|
147
64
|
it 'calls BoardMerchant_ACH in production' do
|
65
|
+
savon.expects(:board_merchant_ach).with(:message => :any).returns(fixture(:board_merchant_ach))
|
148
66
|
client = Geti::AppClient.new(test_credentials, {}, 'production')
|
149
|
-
mock_soap!(client, pending_response, "BoardMerchant_ACH", "board_merchant_ach")
|
150
67
|
client.board_merchant_ach(request_payload)
|
151
68
|
end
|
152
69
|
|
@@ -228,15 +145,17 @@ describe Geti::AppClient do
|
|
228
145
|
end
|
229
146
|
|
230
147
|
describe 'response on success' do
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
148
|
+
before do
|
149
|
+
savon.expects(:board_certification_merchant_ach).
|
150
|
+
with(:message => :any).
|
151
|
+
returns(response)
|
152
|
+
end
|
153
|
+
|
154
|
+
let(:client) { Geti::AppClient.new(test_credentials, {}) }
|
236
155
|
subject { client.board_merchant_ach(request_payload) }
|
237
156
|
|
238
157
|
describe 'on pending' do
|
239
|
-
let(:response) {
|
158
|
+
let(:response) { fixture(:board_certification_merchant_ach_pending) }
|
240
159
|
its([:success]) { should be_true }
|
241
160
|
its([:status]) { should eq("Pending") }
|
242
161
|
|
@@ -246,7 +165,7 @@ describe Geti::AppClient do
|
|
246
165
|
end
|
247
166
|
|
248
167
|
describe 'on success' do
|
249
|
-
let(:response) {
|
168
|
+
let(:response) { fixture(:board_certification_merchant_ach_approved) }
|
250
169
|
its([:success]) { should be_true }
|
251
170
|
its([:status]) { should eq("Approved") }
|
252
171
|
|
@@ -256,13 +175,13 @@ describe Geti::AppClient do
|
|
256
175
|
end
|
257
176
|
|
258
177
|
describe 'on repeat' do
|
259
|
-
let(:response) {
|
178
|
+
let(:response) { fixture(:board_certification_merchant_ach_repeat) }
|
260
179
|
its([:success]) { should be_true }
|
261
180
|
its([:status]) { should eq("Pending") }
|
262
181
|
end
|
263
182
|
|
264
183
|
describe 'on error' do
|
265
|
-
let(:response) {
|
184
|
+
let(:response) { fixture(:board_certification_merchant_ach_error) }
|
266
185
|
its([:success]) { should be_false }
|
267
186
|
its([:status]) { should be_nil }
|
268
187
|
end
|
@@ -270,12 +189,34 @@ describe Geti::AppClient do
|
|
270
189
|
|
271
190
|
describe 'production response handling' do
|
272
191
|
it 'does not error' do
|
273
|
-
|
274
|
-
|
275
|
-
}
|
192
|
+
savon.expects(:board_merchant_ach).with(:message => :any).returns(fixture(:board_merchant_ach))
|
193
|
+
client = Geti::AppClient.new(test_credentials, {}, 'production')
|
276
194
|
|
277
195
|
response = client.board_merchant_ach(request_payload)
|
278
196
|
end
|
279
197
|
end
|
280
198
|
end
|
199
|
+
|
200
|
+
describe '#taxpayer_info' do
|
201
|
+
let(:client) { Geti::AppClient.new(test_credentials, {}) }
|
202
|
+
|
203
|
+
it 'includes taxpayer_name' do
|
204
|
+
expect(client.taxpayer_info(request_payload)).to include("Tax Info: Carl Cogsley")
|
205
|
+
end
|
206
|
+
|
207
|
+
it 'includes taxpayer_id' do
|
208
|
+
expect(client.taxpayer_info(request_payload)).to include("123456789")
|
209
|
+
end
|
210
|
+
|
211
|
+
it 'does not usually include SSN' do
|
212
|
+
expect(client.taxpayer_info(request_payload)).not_to include("111222123")
|
213
|
+
end
|
214
|
+
|
215
|
+
it 'includes SSN for sole proprietorships' do
|
216
|
+
payload = request_payload
|
217
|
+
payload[:business_type] = "Sole Proprietorship"
|
218
|
+
expect(client.taxpayer_info(payload)).to include("111222123")
|
219
|
+
end
|
220
|
+
|
221
|
+
end
|
281
222
|
end
|
@@ -1,27 +1,21 @@
|
|
1
1
|
require 'helper'
|
2
|
+
require 'savon/mock/spec_helper'
|
2
3
|
|
3
4
|
describe Geti::AuthClient do
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
result_key = (op_key+'_result').to_sym
|
8
|
-
|
9
|
-
data = OpenStruct.new(:body => {response_key => {result_key => :encoded_xml}})
|
10
|
-
|
11
|
-
client.soap_client.should_receive(:request).with(operation).and_return(data)
|
12
|
-
client.xml_parser.should_receive(:parse).with(:encoded_xml).and_return(parsed_response)
|
13
|
-
end
|
5
|
+
include Savon::SpecHelper
|
6
|
+
before(:all) { savon.mock! }
|
7
|
+
after(:all) { savon.unmock! }
|
14
8
|
|
15
9
|
describe '#get_terminal_settings' do
|
16
10
|
it 'calls GetCertificationTerminalSettings' do
|
17
11
|
client = Geti::AuthClient.new(test_credentials, {:sec_code => 'WEB', :verify => []})
|
18
|
-
|
12
|
+
savon.expects(:get_certification_terminal_settings).returns(fixture(:get_certification_terminal_settings))
|
19
13
|
client.get_terminal_settings
|
20
14
|
end
|
21
15
|
|
22
16
|
it 'calls GetTerminalSettings in production' do
|
23
17
|
client = Geti::AuthClient.new(test_credentials, {:sec_code => 'WEB', :verify => []}, 'production')
|
24
|
-
|
18
|
+
savon.expects(:get_terminal_settings).returns(fixture(:get_terminal_settings))
|
25
19
|
client.get_terminal_settings
|
26
20
|
end
|
27
21
|
end
|
data/spec/helper.rb
CHANGED
@@ -23,15 +23,14 @@ $LOAD_PATH.unshift(File.dirname(__FILE__))
|
|
23
23
|
require 'pp'
|
24
24
|
require 'geti'
|
25
25
|
|
26
|
-
|
27
|
-
Savon.configure do |config|
|
28
|
-
config.log = HTTPI.log = false unless ENV['SOAP_DEBUG']
|
29
|
-
end
|
30
|
-
|
31
26
|
def test_credentials(env='app')
|
32
27
|
YAML.load(File.read('config/test_credentials.yml'))[env]
|
33
28
|
end
|
34
29
|
|
30
|
+
def fixture(name)
|
31
|
+
File.read(File.expand_path("./spec/fixtures/#{name}.xml"))
|
32
|
+
end
|
33
|
+
|
35
34
|
def xit(*args, &block)
|
36
35
|
# noop, disabled spec.
|
37
36
|
end
|
metadata
CHANGED
@@ -1,235 +1,242 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: geti
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 8
|
9
|
-
- 1
|
10
|
-
version: 1.8.1
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 3.1.1
|
11
5
|
platform: ruby
|
12
|
-
authors:
|
6
|
+
authors:
|
13
7
|
- Jamie Macey
|
14
|
-
autorequire:
|
8
|
+
autorequire:
|
15
9
|
bindir: bin
|
16
10
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
21
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
22
|
-
none: false
|
23
|
-
requirements:
|
24
|
-
- - ~>
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
hash: 15
|
27
|
-
segments:
|
28
|
-
- 1
|
29
|
-
- 0
|
30
|
-
version: "1.0"
|
31
|
-
version_requirements: *id001
|
11
|
+
date: 2024-10-22 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
32
14
|
name: savon
|
33
|
-
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.0'
|
34
20
|
type: :runtime
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
requirement: &id002 !ruby/object:Gem::Requirement
|
37
|
-
none: false
|
38
|
-
requirements:
|
39
|
-
- - ">"
|
40
|
-
- !ruby/object:Gem::Version
|
41
|
-
hash: 3
|
42
|
-
segments:
|
43
|
-
- 0
|
44
|
-
version: "0"
|
45
|
-
version_requirements: *id002
|
46
|
-
name: httpi
|
47
21
|
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: httpi
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
48
34
|
type: :runtime
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
requirements:
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
53
38
|
- - ">"
|
54
|
-
- !ruby/object:Gem::Version
|
55
|
-
|
56
|
-
|
57
|
-
- 0
|
58
|
-
version: "0"
|
59
|
-
version_requirements: *id003
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
60
42
|
name: httpclient
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
61
49
|
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: nokogiri
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
62
|
type: :runtime
|
63
|
-
- !ruby/object:Gem::Dependency
|
64
|
-
requirement: &id004 !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
|
-
requirements:
|
67
|
-
- - ~>
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
hash: 19
|
70
|
-
segments:
|
71
|
-
- 3
|
72
|
-
- 10
|
73
|
-
version: "3.10"
|
74
|
-
version_requirements: *id004
|
75
|
-
name: rdoc
|
76
63
|
prerelease: false
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
- !ruby/object:Gem::Version
|
84
|
-
hash: 25
|
85
|
-
segments:
|
86
|
-
- 0
|
87
|
-
- 9
|
88
|
-
version: "0.9"
|
89
|
-
version_requirements: *id005
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
90
70
|
name: rake
|
91
|
-
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
92
76
|
type: :development
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
requirements:
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
97
80
|
- - ">"
|
98
|
-
- !ruby/object:Gem::Version
|
99
|
-
|
100
|
-
|
101
|
-
- 0
|
102
|
-
version: "0"
|
103
|
-
version_requirements: *id006
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
104
84
|
name: bundler
|
105
|
-
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
106
90
|
type: :development
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
requirements:
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
111
94
|
- - ">"
|
112
|
-
- !ruby/object:Gem::Version
|
113
|
-
|
114
|
-
|
115
|
-
- 0
|
116
|
-
version: "0"
|
117
|
-
version_requirements: *id007
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
118
98
|
name: hoe
|
119
|
-
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
120
104
|
type: :development
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
requirements:
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
125
108
|
- - ">"
|
126
|
-
- !ruby/object:Gem::Version
|
127
|
-
|
128
|
-
|
129
|
-
- 0
|
130
|
-
version: "0"
|
131
|
-
version_requirements: *id008
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
132
112
|
name: hoe-bundler
|
133
|
-
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
134
118
|
type: :development
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
requirements:
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
139
122
|
- - ">"
|
140
|
-
- !ruby/object:Gem::Version
|
141
|
-
|
142
|
-
|
143
|
-
- 0
|
144
|
-
version: "0"
|
145
|
-
version_requirements: *id009
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
146
126
|
name: hoe-git
|
147
|
-
|
148
|
-
|
149
|
-
- !ruby/object:Gem::Dependency
|
150
|
-
requirement: &id010 !ruby/object:Gem::Requirement
|
151
|
-
none: false
|
152
|
-
requirements:
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
153
129
|
- - ">"
|
154
|
-
- !ruby/object:Gem::Version
|
155
|
-
|
156
|
-
|
157
|
-
- 0
|
158
|
-
version: "0"
|
159
|
-
version_requirements: *id010
|
160
|
-
name: rcov
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
161
133
|
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: simplecov
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
162
146
|
type: :development
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
requirements:
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
167
150
|
- - ">"
|
168
|
-
- !ruby/object:Gem::Version
|
169
|
-
|
170
|
-
|
171
|
-
- 0
|
172
|
-
version: "0"
|
173
|
-
version_requirements: *id011
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
174
154
|
name: rspec
|
175
|
-
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "<"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '2.99'
|
176
160
|
type: :development
|
177
|
-
- !ruby/object:Gem::Dependency
|
178
|
-
requirement: &id012 !ruby/object:Gem::Requirement
|
179
|
-
none: false
|
180
|
-
requirements:
|
181
|
-
- - ">"
|
182
|
-
- !ruby/object:Gem::Version
|
183
|
-
hash: 3
|
184
|
-
segments:
|
185
|
-
- 0
|
186
|
-
version: "0"
|
187
|
-
version_requirements: *id012
|
188
|
-
name: guard
|
189
161
|
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "<"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '2.99'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: guard
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - ">"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
190
174
|
type: :development
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
requirements:
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
195
178
|
- - ">"
|
196
|
-
- !ruby/object:Gem::Version
|
197
|
-
|
198
|
-
|
199
|
-
- 0
|
200
|
-
version: "0"
|
201
|
-
version_requirements: *id013
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0'
|
181
|
+
- !ruby/object:Gem::Dependency
|
202
182
|
name: guard-rspec
|
203
|
-
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - ">"
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '0'
|
204
188
|
type: :development
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
segments:
|
213
|
-
- 0
|
214
|
-
- 9
|
215
|
-
- 1
|
216
|
-
version: 0.9.1
|
217
|
-
version_requirements: *id014
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - ">"
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '0'
|
195
|
+
- !ruby/object:Gem::Dependency
|
218
196
|
name: rb-fsevent
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - ">"
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '0'
|
202
|
+
type: :development
|
219
203
|
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - ">"
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '0'
|
209
|
+
- !ruby/object:Gem::Dependency
|
210
|
+
name: rdoc
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - ">="
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: '4.0'
|
216
|
+
- - "<"
|
217
|
+
- !ruby/object:Gem::Version
|
218
|
+
version: '7'
|
220
219
|
type: :development
|
221
|
-
|
222
|
-
|
220
|
+
prerelease: false
|
221
|
+
version_requirements: !ruby/object:Gem::Requirement
|
222
|
+
requirements:
|
223
|
+
- - ">="
|
224
|
+
- !ruby/object:Gem::Version
|
225
|
+
version: '4.0'
|
226
|
+
- - "<"
|
227
|
+
- !ruby/object:Gem::Version
|
228
|
+
version: '7'
|
229
|
+
description: A middleware gem for interfacing with Global eTelecom's ACH processing
|
230
|
+
service.
|
231
|
+
email:
|
223
232
|
- jamie@tracefunc.com
|
224
233
|
executables: []
|
225
|
-
|
226
234
|
extensions: []
|
227
|
-
|
228
|
-
extra_rdoc_files:
|
235
|
+
extra_rdoc_files:
|
229
236
|
- History.txt
|
230
237
|
- Manifest.txt
|
231
238
|
- README.rdoc
|
232
|
-
files:
|
239
|
+
files:
|
233
240
|
- History.txt
|
234
241
|
- Manifest.txt
|
235
242
|
- README.rdoc
|
@@ -246,40 +253,29 @@ files:
|
|
246
253
|
- spec/remote/geti_app_client_spec.rb
|
247
254
|
- spec/remote/geti_auth_client_spec.rb
|
248
255
|
- spec/remote/sample.pdf
|
249
|
-
- .gemtest
|
250
256
|
homepage: https://github.com/versapay/geti
|
251
|
-
licenses:
|
257
|
+
licenses:
|
252
258
|
- MIT
|
253
|
-
|
254
|
-
|
255
|
-
|
259
|
+
metadata: {}
|
260
|
+
post_install_message:
|
261
|
+
rdoc_options:
|
262
|
+
- "--main"
|
256
263
|
- README.rdoc
|
257
|
-
require_paths:
|
264
|
+
require_paths:
|
258
265
|
- lib
|
259
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
260
|
-
|
261
|
-
requirements:
|
266
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
267
|
+
requirements:
|
262
268
|
- - ">="
|
263
|
-
- !ruby/object:Gem::Version
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
version: "0"
|
268
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
269
|
-
none: false
|
270
|
-
requirements:
|
269
|
+
- !ruby/object:Gem::Version
|
270
|
+
version: '0'
|
271
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
272
|
+
requirements:
|
271
273
|
- - ">="
|
272
|
-
- !ruby/object:Gem::Version
|
273
|
-
|
274
|
-
segments:
|
275
|
-
- 0
|
276
|
-
version: "0"
|
274
|
+
- !ruby/object:Gem::Version
|
275
|
+
version: '0'
|
277
276
|
requirements: []
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
signing_key:
|
282
|
-
specification_version: 3
|
277
|
+
rubygems_version: 3.5.9
|
278
|
+
signing_key:
|
279
|
+
specification_version: 4
|
283
280
|
summary: A middleware gem for interfacing with Global eTelecom's ACH processing service.
|
284
281
|
test_files: []
|
285
|
-
|
data/.gemtest
DELETED
File without changes
|