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 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
@@ -1,3 +1,9 @@
1
+ === 3.1.1 / 2018-02-8
2
+
3
+ * 1 minor bug fix
4
+
5
+ * bump dependencies for CVE on nokogiri
6
+
1
7
  === 1.8.1 / 2013-03-26
2
8
 
3
9
  * 1 minor enhancement
@@ -9,4 +15,3 @@
9
15
  * 1 major enhancement
10
16
 
11
17
  * Previous Release via Jeweler
12
-
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', "~> 1.0"
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', "< 0.9", :dev
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 "rcov", '>0', :dev
26
- dependency 'rspec', '>0', :dev
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', '~> 0.9.1', :dev
30
+ dependency 'rb-fsevent', '>0', :dev
30
31
  end
31
-
32
- p Hoe.plugins
@@ -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.index(opts[:industry]), # "Type of goods sold"
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 => MERCHANT_OWNERSHIP.index((opts[:business_type]||'').gsub('_', ' ')),
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?WSDL"
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
- "Tax Info: %s - %s" % [opts[:taxpayer_name], opts[:taxpayer_id]]
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
@@ -87,7 +87,7 @@ class Geti::AuthClient < Geti::Client
87
87
  end
88
88
 
89
89
  def service_address
90
- "https://#{domain}/webservices/AuthGateway.asmx?WSDL"
90
+ "https://#{domain}/webservices/AuthGateway.asmx"
91
91
  end
92
92
 
93
93
  def soap_header
data/lib/geti/client.rb CHANGED
@@ -9,7 +9,19 @@ class Geti::Client
9
9
  end
10
10
 
11
11
  def soap_client
12
- @soap_client ||= Savon.client(service_address)
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,5 +1,5 @@
1
1
  module Geti
2
- VERSION = "1.8.1"
2
+ VERSION = "3.1.1"
3
3
  end
4
4
 
5
5
  require 'geti/client'
@@ -1,16 +1,10 @@
1
1
  require 'helper'
2
+ require 'savon/mock/spec_helper'
2
3
 
3
4
  describe Geti::AppClient do
4
- def mock_soap!(client, parsed_response, operation, op_key=nil)
5
- op_key ||= operation.gsub(/(.)([A-Z])/, '\1_\2').downcase
6
- response_key = (op_key+'_response').to_sym
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>&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;&lt;RESPONSE xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"&gt;&lt;STATUS&gt;Pending&lt;/STATUS&gt;&lt;MESSAGE&gt;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&lt;/MESSAGE&gt;&lt;APP_DATA&gt;&lt;Merchant ID=\"1844832\" /&gt;&lt;/APP_DATA&gt;&lt;VALIDATION_MESSAGE&gt;&lt;RESULT&gt;Passed&lt;/RESULT&gt;&lt;SCHEMA_FILE_PATH /&gt;&lt;/VALIDATION_MESSAGE&gt;&lt;/RESPONSE&gt;</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
- let(:client) {
232
- Geti::AppClient.new(test_credentials, {}).tap{|c|
233
- mock_soap!(c, response, "BoardCertificationMerchant_ACH", "board_certification_merchant_ach")
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) { pending_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) { success_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) { repeat_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) { error_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
- client = Geti::AppClient.new(test_credentials, {}, 'production').tap{|c|
274
- c.soap_client.should_receive(:request).with("BoardMerchant_ACH").and_return(OpenStruct.new(:body => production_soap_response))
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
- def mock_soap!(client, parsed_response, operation, op_key=nil)
5
- op_key ||= operation.gsub(/(.)([A-Z])/, '\1_\2').downcase
6
- response_key = (op_key+'_response').to_sym
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
- mock_soap!(client, {}, "GetCertificationTerminalSettings")
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
- mock_soap!(client, {}, "GetTerminalSettings")
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
- hash: 53
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
- date: 2013-03-26 00:00:00 Z
19
- dependencies:
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
- prerelease: false
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
- - !ruby/object:Gem::Dependency
50
- requirement: &id003 !ruby/object:Gem::Requirement
51
- none: false
52
- requirements:
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
53
38
  - - ">"
54
- - !ruby/object:Gem::Version
55
- hash: 3
56
- segments:
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
- type: :development
78
- - !ruby/object:Gem::Dependency
79
- requirement: &id005 !ruby/object:Gem::Requirement
80
- none: false
81
- requirements:
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
- prerelease: false
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">"
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
92
76
  type: :development
93
- - !ruby/object:Gem::Dependency
94
- requirement: &id006 !ruby/object:Gem::Requirement
95
- none: false
96
- requirements:
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
97
80
  - - ">"
98
- - !ruby/object:Gem::Version
99
- hash: 3
100
- segments:
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
- prerelease: false
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">"
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
106
90
  type: :development
107
- - !ruby/object:Gem::Dependency
108
- requirement: &id007 !ruby/object:Gem::Requirement
109
- none: false
110
- requirements:
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
111
94
  - - ">"
112
- - !ruby/object:Gem::Version
113
- hash: 3
114
- segments:
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
- prerelease: false
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">"
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
120
104
  type: :development
121
- - !ruby/object:Gem::Dependency
122
- requirement: &id008 !ruby/object:Gem::Requirement
123
- none: false
124
- requirements:
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
125
108
  - - ">"
126
- - !ruby/object:Gem::Version
127
- hash: 3
128
- segments:
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
- prerelease: false
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">"
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
134
118
  type: :development
135
- - !ruby/object:Gem::Dependency
136
- requirement: &id009 !ruby/object:Gem::Requirement
137
- none: false
138
- requirements:
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
139
122
  - - ">"
140
- - !ruby/object:Gem::Version
141
- hash: 3
142
- segments:
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
- prerelease: false
148
- type: :development
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
- hash: 3
156
- segments:
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
- - !ruby/object:Gem::Dependency
164
- requirement: &id011 !ruby/object:Gem::Requirement
165
- none: false
166
- requirements:
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
167
150
  - - ">"
168
- - !ruby/object:Gem::Version
169
- hash: 3
170
- segments:
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
- prerelease: false
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
- - !ruby/object:Gem::Dependency
192
- requirement: &id013 !ruby/object:Gem::Requirement
193
- none: false
194
- requirements:
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
195
178
  - - ">"
196
- - !ruby/object:Gem::Version
197
- hash: 3
198
- segments:
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
- prerelease: false
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">"
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
204
188
  type: :development
205
- - !ruby/object:Gem::Dependency
206
- requirement: &id014 !ruby/object:Gem::Requirement
207
- none: false
208
- requirements:
209
- - - ~>
210
- - !ruby/object:Gem::Version
211
- hash: 57
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
- description: A middleware gem for interfacing with Global eTelecom's ACH processing service.
222
- email:
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
- post_install_message:
254
- rdoc_options:
255
- - --main
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
- none: false
261
- requirements:
266
+ required_ruby_version: !ruby/object:Gem::Requirement
267
+ requirements:
262
268
  - - ">="
263
- - !ruby/object:Gem::Version
264
- hash: 3
265
- segments:
266
- - 0
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
- hash: 3
274
- segments:
275
- - 0
276
- version: "0"
274
+ - !ruby/object:Gem::Version
275
+ version: '0'
277
276
  requirements: []
278
-
279
- rubyforge_project: geti
280
- rubygems_version: 1.8.24
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