epics 1.7.1 → 1.7.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +59 -58
- data/lib/epics.rb +2 -0
- data/lib/epics/client.rb +11 -3
- data/lib/epics/error.rb +2 -1
- data/lib/epics/middleware/parse_ebics.rb +10 -5
- data/lib/epics/version.rb +1 -1
- data/lib/epics/xct.rb +30 -0
- data/lib/epics/xds.rb +5 -0
- data/spec/client_spec.rb +10 -0
- data/spec/fixtures/xml/htd_order_data_without_names.xml +27 -0
- data/spec/middleware/parse_ebics_spec.rb +25 -9
- data/spec/orders/xds_spec.rb +15 -0
- metadata +8 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 16a3bb74f8943c4f82b808e830e2306d2af5bfb80e80a4985ca47760b8e6a28f
|
4
|
+
data.tar.gz: 2ae911622605fb2965431fd7fb78f16e97e4bf1151fe0ec0f47c30632015a125
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3ca8b3806e14e95aeed7576b48aebe5c04c7cbfac8e524f9e89da93716735533567d8c20529934d2bb65875b9db828318639f2d5ede1592cd53f210b41e6e398
|
7
|
+
data.tar.gz: 7c8f67d58425a6dc8ce16427c89960d50ecc55f4ee18880c2012655d4f271df719dca55c955ce04da3ccd8a12e4a104b30b948af38f029884947a2484d99491b
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -10,7 +10,6 @@ The client supports the complete initialization process comprising INI, HIA and
|
|
10
10
|
INI letter generation. It offers support for the most common download and upload order types
|
11
11
|
(STA HAA HTD HPD PTK HAC HKD C52 C53 C54 CD1 CDB CDD CCT VMK).
|
12
12
|
|
13
|
-
|
14
13
|
## Installation
|
15
14
|
|
16
15
|
Add this line to your application's Gemfile:
|
@@ -23,7 +22,6 @@ Or install it yourself as:
|
|
23
22
|
|
24
23
|
$ gem install epics
|
25
24
|
|
26
|
-
|
27
25
|
## Getting started
|
28
26
|
|
29
27
|
In case you are new to EBICS, you'll have to complete an initialization process with
|
@@ -33,10 +31,10 @@ bank.
|
|
33
31
|
|
34
32
|
Once the paperwork is done, your bank should provide you with:
|
35
33
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
34
|
+
- _a_ URL to their EBICS Server
|
35
|
+
- _a_ HOST ID
|
36
|
+
- _a_ PARTNER ID
|
37
|
+
- _n_ User IDs (depends on your bank and needs)
|
40
38
|
|
41
39
|
Take these parameters and start setting up an UserID (repeat this for every user you want to initialize):
|
42
40
|
|
@@ -51,7 +49,7 @@ e.save_keys("/home/epics/my.key")
|
|
51
49
|
# or store the json elsewhere, but store it! for gods sake :D
|
52
50
|
```
|
53
51
|
|
54
|
-
It is really
|
52
|
+
It is really **important** to keep your keys around, once your user has been initialized
|
55
53
|
you'll have to start over when you loose the keys!
|
56
54
|
|
57
55
|
Submit the keys to your bank:
|
@@ -93,15 +91,13 @@ e.HAA
|
|
93
91
|
|
94
92
|
To get a list of all supported order types.
|
95
93
|
|
96
|
-
|
97
94
|
## Need help? Having questions?
|
98
95
|
|
99
96
|
We have many years of experience in developing innovative applications for the finance sector and
|
100
97
|
integrating applications with financial institutions. - you might want to have a look at our
|
101
98
|
[portfolio](http://www.railslove.com/portfolio)
|
102
|
-
|
103
|
-
[team@railslove.com](mailto:team@railslove.com)
|
104
|
-
|
99
|
+
**If you need help we are happy to provide consulting or development services. Contact us:
|
100
|
+
[team@railslove.com](mailto:team@railslove.com)**
|
105
101
|
|
106
102
|
## Usage
|
107
103
|
|
@@ -117,27 +113,26 @@ keys = File.read('/tmp/my.key')
|
|
117
113
|
e = Epics::Client.new(keys, 'passphrase', 'url', 'host', 'user', 'partner')
|
118
114
|
```
|
119
115
|
|
120
|
-
|
121
116
|
## Features
|
122
117
|
|
123
118
|
### Initialization
|
124
119
|
|
125
|
-
|
126
|
-
|
120
|
+
- INI (Sends the public key of the electronic signature.)
|
121
|
+
- HIA (Sends the public authentication (X002) and encryption (E002) keys.)
|
127
122
|
|
128
123
|
### Downloads
|
129
124
|
|
130
125
|
Currently this EPICS implementation supports the following order types:
|
131
126
|
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
127
|
+
- HPB (fetch your bank's public keys)
|
128
|
+
- STA (statements in MT940 format)
|
129
|
+
- HAA (available order types)
|
130
|
+
- HTD (user properties and settings)
|
131
|
+
- HPD (the available bank parameters)
|
132
|
+
- PTK (customer usage report in text format)
|
133
|
+
- HAC (customer usage report in xml format)
|
134
|
+
- VMK (customer usage report in xml format)
|
135
|
+
- ... more coming soon
|
141
136
|
|
142
137
|
Example:
|
143
138
|
|
@@ -165,11 +160,11 @@ puts e.STA('2014-09-01', '2014-09-11')
|
|
165
160
|
|
166
161
|
### Uploads
|
167
162
|
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
163
|
+
- CD1 (Uploads a SEPA Direct Debit document of type COR1)
|
164
|
+
- CDB (Uploads a SEPA Direct Debit document of type B2B)
|
165
|
+
- CDD (Uploads a SEPA Direct Debit document of type CORE)
|
166
|
+
- CCT (Uploads a SEPA Credit document)
|
167
|
+
- ... more coming soon
|
173
168
|
|
174
169
|
Example:
|
175
170
|
|
@@ -187,22 +182,19 @@ puts e.CD1(File.read("/where/the/xml/is/stored.xml"))
|
|
187
182
|
Once you have a client, go ahead and start playing! There are 3 convenience methods
|
188
183
|
that are hiding some strange names from you:
|
189
184
|
|
190
|
-
|
191
|
-
|
192
|
-
|
185
|
+
- debit( _xml_ ) (submits a PAIN.008.003.02 document via CDD)
|
186
|
+
- credit( _xml_ ) (submits a pain.001.003.03 document)
|
187
|
+
- statements( _from_, _to_ ) (fetches an account statement via STA)
|
193
188
|
|
194
189
|
If you need more sophisticated EBICS order types, please read the next section
|
195
190
|
about the supported functionalities.
|
196
191
|
|
197
|
-
|
198
192
|
## Issues and Feature Requests
|
199
193
|
|
200
194
|
[Railslove](http://railslove.com) is commited to provide the best developer tools for integrating
|
201
195
|
with financial institutions. Epics is one of our many tools and services.
|
202
196
|
If you are missing some features or something is not working as expected please create an issue.
|
203
197
|
|
204
|
-
|
205
|
-
|
206
198
|
## Supported Banks
|
207
199
|
|
208
200
|
This gem provides a full implementation of the Electronic Banking Internet Communication Standard
|
@@ -212,26 +204,25 @@ what order types are available.
|
|
212
204
|
Besides EBCIS being a standard, some server implementations are slighty different.
|
213
205
|
But most banks use the same EBICS server implementations. Commonly used and supported by Epics are:
|
214
206
|
|
215
|
-
|
216
|
-
|
207
|
+
- Business-Logics EBICS, Banking-Server
|
208
|
+
- Travic Corporate
|
217
209
|
|
218
210
|
Used for example by the following tested institutions:
|
219
211
|
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
212
|
+
- Handelsbank
|
213
|
+
- Deutsche Bank
|
214
|
+
- Commerzbank
|
215
|
+
- Kreissparkasse Mayen
|
216
|
+
- Postbank
|
217
|
+
- Sozialbank
|
218
|
+
- Sparkassen
|
219
|
+
- Volksbanken Raiffeisenbanken
|
220
|
+
- Hypo Vereinsbank
|
221
|
+
- BAWAG P.S.K. (AT)
|
222
|
+
- Bank Frick (LI)
|
231
223
|
|
232
224
|
Is Epics working with your institution? Please help us to grow this list of supported banks:
|
233
225
|
|
234
|
-
|
235
226
|
## Development
|
236
227
|
|
237
228
|
For development purposes, you may want to use a proxy server in order to have a convienent look into request and response data.
|
@@ -239,6 +230,7 @@ To do so, it's sufficient to define `http_proxy` in your environment.
|
|
239
230
|
Also you may want to disable SSL verification - simply set `EPICS_VERIFY_SSL` to `"false"`.
|
240
231
|
|
241
232
|
For example:
|
233
|
+
|
242
234
|
```
|
243
235
|
http_proxy=localhost:8080
|
244
236
|
EPICS_VERIFY_SSL=false
|
@@ -246,21 +238,30 @@ EPICS_VERIFY_SSL=false
|
|
246
238
|
|
247
239
|
## Links
|
248
240
|
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
241
|
+
- [ebics.de](http://www.ebics.de/)
|
242
|
+
- [EBICS specification](http://www.ebics.de/index.php?id=30)
|
243
|
+
- [Common Integrative Implementation Guide to Supplement the EBICS Specification (pdf)](http://www.ebics.de/fileadmin/unsecured/specification/implementation_guide_DE/EBICS_Common_IG_basiert_auf_EBICS_2.5.pdf)
|
244
|
+
- [Die Deutsche Kreditwirtschaft](http://www.die-deutsche-kreditwirtschaft.de/)
|
254
245
|
|
255
246
|
## Contributing
|
256
247
|
|
257
248
|
0. Contact team@railslove.com for information about the CLA
|
258
249
|
1. Fork it ( https://github.com/[my-github-username]/epics/fork )
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
250
|
+
1. Create your feature branch (`git checkout -b my-new-feature`)
|
251
|
+
1. Commit your changes (`git commit -am 'Add some feature'`)
|
252
|
+
1. Push to the branch (`git push origin my-new-feature`)
|
253
|
+
1. Create a new Pull Request
|
254
|
+
|
255
|
+
## Contribution Credits
|
256
|
+
|
257
|
+
- [@punkle64](https://github.com/punkle64) \
|
258
|
+
for adding XCT order type
|
259
|
+
- [@romanlehnert](https://github.com/romanlehnert) \
|
260
|
+
for adding CDB order type
|
261
|
+
- [@gadimbaylisahil](https://github.com/gadimbaylisahil) \
|
262
|
+
for fixing CCS order type and attribute
|
263
|
+
- you, for contributing too!
|
263
264
|
|
265
|
+
---
|
264
266
|
|
265
|
-
------------
|
266
267
|
2014-2018 - built with love by [Railslove](http://railslove.com) and released under the [GNU LESSER GENERAL PUBLIC LICENSE](https://github.com/railslove/epics/blob/master/LICENSE.txt). We have built quite a number of FinTech products. If you need support we are happy to help. Please contact us at team@railslove.com.
|
data/lib/epics.rb
CHANGED
data/lib/epics/client.rb
CHANGED
@@ -139,6 +139,10 @@ class Epics::Client
|
|
139
139
|
upload(Epics::CDS, document)
|
140
140
|
end
|
141
141
|
|
142
|
+
def XDS(document)
|
143
|
+
upload(Epics::XDS, document)
|
144
|
+
end
|
145
|
+
|
142
146
|
def CDZ(document)
|
143
147
|
upload(Epics::CDZ, document)
|
144
148
|
end
|
@@ -151,6 +155,10 @@ class Epics::Client
|
|
151
155
|
upload(Epics::CCS, document)
|
152
156
|
end
|
153
157
|
|
158
|
+
def XCT(document)
|
159
|
+
upload(Epics::XCT, document)
|
160
|
+
end
|
161
|
+
|
154
162
|
def STA(from = nil, to = nil)
|
155
163
|
download(Epics::STA, from, to)
|
156
164
|
end
|
@@ -177,9 +185,9 @@ class Epics::Client
|
|
177
185
|
|
178
186
|
def HTD
|
179
187
|
Nokogiri::XML(download(Epics::HTD)).tap do |htd|
|
180
|
-
@iban ||= htd.at_xpath("//xmlns:AccountNumber[@international='true']", xmlns: "urn:org:ebics:H004").text
|
181
|
-
@bic ||= htd.at_xpath("//xmlns:BankCode[@international='true']", xmlns: "urn:org:ebics:H004").text
|
182
|
-
@name ||= htd.at_xpath("//xmlns:Name", xmlns: "urn:org:ebics:H004").text
|
188
|
+
@iban ||= htd.at_xpath("//xmlns:AccountNumber[@international='true']", xmlns: "urn:org:ebics:H004").text rescue nil
|
189
|
+
@bic ||= htd.at_xpath("//xmlns:BankCode[@international='true']", xmlns: "urn:org:ebics:H004").text rescue nil
|
190
|
+
@name ||= htd.at_xpath("//xmlns:Name", xmlns: "urn:org:ebics:H004").text rescue nil
|
183
191
|
@order_types ||= htd.search("//xmlns:OrderTypes", xmlns: "urn:org:ebics:H004").map{|o| o.content.split(/\s/) }.delete_if{|o| o == ""}.flatten
|
184
192
|
end.to_xml
|
185
193
|
end
|
data/lib/epics/error.rb
CHANGED
@@ -1,15 +1,20 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
+
class Epics::ParseEbics < Faraday::Middleware
|
3
4
|
def initialize(app = nil, options = {})
|
4
5
|
super(app)
|
5
6
|
@client = options[:client]
|
6
7
|
end
|
7
8
|
|
8
9
|
def call(env)
|
9
|
-
@app.call(env).on_complete do |
|
10
|
-
|
11
|
-
raise Epics::Error::TechnicalError
|
12
|
-
raise Epics::Error::BusinessError
|
10
|
+
@app.call(env).on_complete do |response|
|
11
|
+
response[:body] = ::Epics::Response.new(@client, response[:body])
|
12
|
+
raise Epics::Error::TechnicalError, response[:body].technical_code if response[:body].technical_error?
|
13
|
+
raise Epics::Error::BusinessError, response[:body].business_code if response[:body].business_error?
|
13
14
|
end
|
15
|
+
rescue Epics::Error::TechnicalError, Epics::Error::BusinessError
|
16
|
+
raise # re-raise as otherwise they would be swallowed by the following rescue
|
17
|
+
rescue StandardError => e
|
18
|
+
raise Epics::Error::UnknownError, e
|
14
19
|
end
|
15
20
|
end
|
data/lib/epics/version.rb
CHANGED
data/lib/epics/xct.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
class Epics::XCT < Epics::GenericUploadRequest
|
2
|
+
def header
|
3
|
+
Nokogiri::XML::Builder.new do |xml|
|
4
|
+
xml.header(authenticate: true) {
|
5
|
+
xml.static {
|
6
|
+
xml.HostID host_id
|
7
|
+
xml.Nonce nonce
|
8
|
+
xml.Timestamp timestamp
|
9
|
+
xml.PartnerID partner_id
|
10
|
+
xml.UserID user_id
|
11
|
+
xml.Product("EPICS - a ruby ebics kernel", 'Language' => 'de')
|
12
|
+
xml.OrderDetails {
|
13
|
+
xml.OrderType 'XCT'
|
14
|
+
xml.OrderAttribute 'OZHNN'
|
15
|
+
xml.StandardOrderParams
|
16
|
+
}
|
17
|
+
xml.BankPubKeyDigests {
|
18
|
+
xml.Authentication(client.bank_x.public_digest, Version: 'X002', Algorithm: "http://www.w3.org/2001/04/xmlenc#sha256")
|
19
|
+
xml.Encryption(client.bank_e.public_digest, Version: 'E002', Algorithm: "http://www.w3.org/2001/04/xmlenc#sha256" )
|
20
|
+
}
|
21
|
+
xml.SecurityMedium '0000'
|
22
|
+
xml.NumSegments 1
|
23
|
+
}
|
24
|
+
xml.mutable {
|
25
|
+
xml.TransactionPhase 'Initialisation'
|
26
|
+
}
|
27
|
+
}
|
28
|
+
end.doc.root
|
29
|
+
end
|
30
|
+
end
|
data/lib/epics/xds.rb
ADDED
data/spec/client_spec.rb
CHANGED
@@ -197,6 +197,16 @@ RSpec.describe Epics::Client do
|
|
197
197
|
it 'sets @order_types' do
|
198
198
|
expect { subject.HTD }.to change { subject.instance_variable_get("@order_types") }
|
199
199
|
end
|
200
|
+
|
201
|
+
describe 'without iban' do
|
202
|
+
before do
|
203
|
+
allow(subject).to receive(:download).and_return( File.read(File.join(File.dirname(__FILE__), 'fixtures', 'xml', 'htd_order_data_without_names.xml')))
|
204
|
+
end
|
205
|
+
|
206
|
+
it 'sets @iban' do
|
207
|
+
expect(subject.iban).to be_nil
|
208
|
+
end
|
209
|
+
end
|
200
210
|
end
|
201
211
|
|
202
212
|
describe '#C53/C52/C54 types with zipped data' do
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<HTDResponseOrderData xmlns="urn:org:ebics:H004" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:org:ebics:H004 http://www.ebics.org/H004/ebics_orders_H004.xsd">
|
3
|
+
<PartnerInfo>
|
4
|
+
<AddressInfo>
|
5
|
+
<Name>Railslove GmbH</Name>
|
6
|
+
<Country>Deutschland</Country>
|
7
|
+
</AddressInfo>
|
8
|
+
<BankInfo>
|
9
|
+
<HostID>SIZBN001</HostID>
|
10
|
+
</BankInfo>
|
11
|
+
<OrderInfo>
|
12
|
+
<OrderType>HTD</OrderType>
|
13
|
+
<TransferType>Download</TransferType>
|
14
|
+
<Description>Kunden- und Teilnehmerdaten abholen</Description>
|
15
|
+
</OrderInfo>
|
16
|
+
</PartnerInfo>
|
17
|
+
<UserInfo>
|
18
|
+
<UserID Status="1">EBIX</UserID>
|
19
|
+
<Name>Ebi, Epics</Name>
|
20
|
+
<Permission>
|
21
|
+
<OrderTypes>HTD</OrderTypes>
|
22
|
+
</Permission>
|
23
|
+
<Permission AuthorisationLevel="E">
|
24
|
+
<OrderTypes></OrderTypes>
|
25
|
+
</Permission>
|
26
|
+
</UserInfo>
|
27
|
+
</HTDResponseOrderData>
|
@@ -1,23 +1,39 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
+
RSpec.describe Epics::ParseEbics do
|
3
4
|
subject do
|
4
5
|
Faraday.new do |builder|
|
5
6
|
builder.use Epics::ParseEbics
|
6
7
|
builder.adapter :test, Faraday::Adapter::Test::Stubs.new do |stub|
|
7
|
-
stub.post('/business_nok') {[
|
8
|
-
stub.post('/technical_nok') {[
|
9
|
-
stub.post('/ok') {[
|
8
|
+
stub.post('/business_nok') { [200, {}, File.read(File.join(File.dirname(__FILE__), '..', 'fixtures', 'xml', 'ebics_business_nok.xml'))] }
|
9
|
+
stub.post('/technical_nok') { [200, {}, File.read(File.join(File.dirname(__FILE__), '..', 'fixtures', 'xml', 'ebics_technical_nok.xml'))] }
|
10
|
+
stub.post('/ok') { [200, {}, File.read(File.join(File.dirname(__FILE__), '..', 'fixtures', 'xml', 'hpb_response_ebics_ns.xml'))] }
|
11
|
+
stub.post('/timeout') { raise Faraday::TimeoutError }
|
12
|
+
stub.post('/no_connection') { raise Faraday::Error::ConnectionFailed, 'peer has finished all lan parties and gone home' }
|
10
13
|
end
|
11
14
|
end
|
12
15
|
end
|
13
16
|
|
14
|
-
it
|
15
|
-
expect { subject.post(
|
16
|
-
expect { subject.post(
|
17
|
+
it 'will handle errornous response with raising the related error class' do
|
18
|
+
expect { subject.post('/business_nok') }.to raise_error(Epics::Error::BusinessError, 'EBICS_PROCESSING_ERROR - During processing of the EBICS request, other business-related errors have ocurred')
|
19
|
+
expect { subject.post('/technical_nok') }.to raise_error(Epics::Error::TechnicalError, 'EBICS_AUTHENTICATION_FAILED - Authentication signature error')
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'will parsed as Epics::Response' do
|
23
|
+
expect(subject.post('/ok').body).to be_kind_of(Epics::Response)
|
17
24
|
end
|
18
25
|
|
19
|
-
it
|
20
|
-
expect
|
26
|
+
it 'will handle a timeout with raising an Epics::Error::TechnicalError' do
|
27
|
+
expect { subject.post('/timeout') }.to raise_error(Epics::Error::UnknownError, 'timeout')
|
21
28
|
end
|
22
29
|
|
30
|
+
context 'failures' do
|
31
|
+
it 'will handle a timeout with raising an Epics::Error::TechnicalError' do
|
32
|
+
expect { subject.post('/timeout') }.to raise_error(Epics::Error::UnknownError, 'timeout')
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'will handle a no connection error with raising an Epics::Error::TechnicalError' do
|
36
|
+
expect { subject.post('/no_connection') }.to raise_error(Epics::Error::UnknownError, 'peer has finished all lan parties and gone home')
|
37
|
+
end
|
38
|
+
end
|
23
39
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
RSpec.describe Epics::XDS do
|
2
|
+
let(:client) { Epics::Client.new( File.open(File.join( File.dirname(__FILE__), '..', 'fixtures', 'SIZBN001.key')), 'secret' , 'https://194.180.18.30/ebicsweb/ebicsweb', 'SIZBN001', 'EBIX', 'EBICS') }
|
3
|
+
let(:document) { File.read( File.join( File.dirname(__FILE__), '..', 'fixtures', 'xml', 'cd1.xml') ) }
|
4
|
+
subject { described_class.new(client, document) }
|
5
|
+
|
6
|
+
describe '#to_xml' do
|
7
|
+
specify { expect(subject.to_xml).to be_a_valid_ebics_doc }
|
8
|
+
end
|
9
|
+
|
10
|
+
describe '#to_transfer_xml' do
|
11
|
+
before { subject.transaction_id = SecureRandom.hex(16) }
|
12
|
+
|
13
|
+
specify { expect(subject.to_transfer_xml).to be_a_valid_ebics_doc }
|
14
|
+
end
|
15
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: epics
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.7.
|
4
|
+
version: 1.7.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lars Brillert
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-09-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -198,6 +198,8 @@ files:
|
|
198
198
|
- lib/epics/sta.rb
|
199
199
|
- lib/epics/version.rb
|
200
200
|
- lib/epics/vmk.rb
|
201
|
+
- lib/epics/xct.rb
|
202
|
+
- lib/epics/xds.rb
|
201
203
|
- lib/letter/ini.erb
|
202
204
|
- spec/.DS_Store
|
203
205
|
- spec/client_spec.rb
|
@@ -226,6 +228,7 @@ files:
|
|
226
228
|
- spec/fixtures/xml/hpb_response_order.xml
|
227
229
|
- spec/fixtures/xml/hpb_response_order_without_ns.xml
|
228
230
|
- spec/fixtures/xml/htd_order_data.xml
|
231
|
+
- spec/fixtures/xml/htd_order_data_without_names.xml
|
229
232
|
- spec/fixtures/xml/ini_response_h004_ns.xml
|
230
233
|
- spec/fixtures/xml/jruby/hia.xml
|
231
234
|
- spec/fixtures/xml/jruby/ini.xml
|
@@ -262,6 +265,7 @@ files:
|
|
262
265
|
- spec/orders/ptk_spec.rb
|
263
266
|
- spec/orders/sta_spec.rb
|
264
267
|
- spec/orders/vmk_spec.rb
|
268
|
+
- spec/orders/xds_spec.rb
|
265
269
|
- spec/response_spec.rb
|
266
270
|
- spec/signer_spec.rb
|
267
271
|
- spec/spec_helper.rb
|
@@ -333,6 +337,7 @@ test_files:
|
|
333
337
|
- spec/fixtures/xml/hpb_response_order.xml
|
334
338
|
- spec/fixtures/xml/hpb_response_order_without_ns.xml
|
335
339
|
- spec/fixtures/xml/htd_order_data.xml
|
340
|
+
- spec/fixtures/xml/htd_order_data_without_names.xml
|
336
341
|
- spec/fixtures/xml/ini_response_h004_ns.xml
|
337
342
|
- spec/fixtures/xml/jruby/hia.xml
|
338
343
|
- spec/fixtures/xml/jruby/ini.xml
|
@@ -369,6 +374,7 @@ test_files:
|
|
369
374
|
- spec/orders/ptk_spec.rb
|
370
375
|
- spec/orders/sta_spec.rb
|
371
376
|
- spec/orders/vmk_spec.rb
|
377
|
+
- spec/orders/xds_spec.rb
|
372
378
|
- spec/response_spec.rb
|
373
379
|
- spec/signer_spec.rb
|
374
380
|
- spec/spec_helper.rb
|