ofx 0.3.1 → 0.3.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 +7 -0
- data/.gitignore +2 -1
- data/Gemfile +1 -1
- data/Gemfile.lock +35 -27
- data/README.rdoc +7 -3
- data/Rakefile +2 -0
- data/lib/ofx.rb +1 -1
- data/lib/ofx/account.rb +1 -0
- data/lib/ofx/parser.rb +2 -3
- data/lib/ofx/parser/ofx102.rb +36 -7
- data/lib/ofx/sign_on.rb +7 -0
- data/lib/ofx/transaction.rb +1 -0
- data/lib/ofx/version.rb +1 -1
- data/ofx.gemspec +6 -4
- data/spec/fixtures/creditcard.ofx +79 -0
- data/spec/fixtures/sample.ofx +5 -0
- data/spec/ofx/account_spec.rb +37 -0
- data/spec/ofx/ofx102_spec.rb +4 -0
- data/spec/ofx/ofx211_spec.rb +4 -0
- data/spec/ofx/sign_on_spec.rb +23 -0
- data/spec/ofx/transaction_spec.rb +8 -0
- metadata +96 -61
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: c152721af7763671b8e2c6f912f85e3e3a0b7f44
|
4
|
+
data.tar.gz: 8e5f68901a6215bf71079cf67ff756c50630a7fb
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 4eb56b361cf81ec4b091509fec2272a335514fe697fc7dd060d18e8bafa7a255cf2a55f4e0ecd0438fe3303aee2178ca591510d07767365ea310000e01c61d2c
|
7
|
+
data.tar.gz: 3629da082dc5e93a97220e378ac8e8811db2b5f651594ecfe887cce923455325e23981845cc4b82ac434b330d4c01b1c5550e01dbc7db2c03de94d4d73bfc69a
|
data/.gitignore
CHANGED
data/Gemfile
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
source "
|
1
|
+
source "https://rubygems.org"
|
2
2
|
gemspec
|
data/Gemfile.lock
CHANGED
@@ -1,41 +1,49 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
ofx (0.3.
|
4
|
+
ofx (0.3.2)
|
5
5
|
nokogiri
|
6
6
|
|
7
7
|
GEM
|
8
|
-
remote:
|
8
|
+
remote: https://rubygems.org/
|
9
9
|
specs:
|
10
|
-
|
11
|
-
columnize (0.3.
|
12
|
-
|
13
|
-
linecache19 (0.5.11)
|
14
|
-
ruby_core_source (>= 0.1.4)
|
15
|
-
nokogiri (1.4.4)
|
16
|
-
rspec (2.6.0)
|
17
|
-
rspec-core (~> 2.6.0)
|
18
|
-
rspec-expectations (~> 2.6.0)
|
19
|
-
rspec-mocks (~> 2.6.0)
|
20
|
-
rspec-core (2.6.0)
|
21
|
-
rspec-expectations (2.6.0)
|
22
|
-
diff-lcs (~> 1.1.2)
|
23
|
-
rspec-mocks (2.6.0)
|
24
|
-
ruby-debug-base19 (0.11.24)
|
25
|
-
columnize (>= 0.3.1)
|
26
|
-
linecache19 (>= 0.5.11)
|
27
|
-
ruby_core_source (>= 0.1.4)
|
28
|
-
ruby-debug19 (0.11.6)
|
10
|
+
coderay (1.0.9)
|
11
|
+
columnize (0.3.6)
|
12
|
+
debugger (1.6.1)
|
29
13
|
columnize (>= 0.3.1)
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
14
|
+
debugger-linecache (~> 1.2.0)
|
15
|
+
debugger-ruby_core_source (~> 1.2.3)
|
16
|
+
debugger-linecache (1.2.0)
|
17
|
+
debugger-ruby_core_source (1.2.3)
|
18
|
+
diff-lcs (1.1.3)
|
19
|
+
method_source (0.8.2)
|
20
|
+
mini_portile (0.5.1)
|
21
|
+
nokogiri (1.6.0)
|
22
|
+
mini_portile (~> 0.5.0)
|
23
|
+
pry (0.9.12.2)
|
24
|
+
coderay (~> 1.0.5)
|
25
|
+
method_source (~> 0.8)
|
26
|
+
slop (~> 3.4)
|
27
|
+
pry-debugger (0.2.2)
|
28
|
+
debugger (~> 1.3)
|
29
|
+
pry (~> 0.9.10)
|
30
|
+
rake (10.1.0)
|
31
|
+
rspec (2.7.0)
|
32
|
+
rspec-core (~> 2.7.0)
|
33
|
+
rspec-expectations (~> 2.7.0)
|
34
|
+
rspec-mocks (~> 2.7.0)
|
35
|
+
rspec-core (2.7.1)
|
36
|
+
rspec-expectations (2.7.0)
|
37
|
+
diff-lcs (~> 1.1.2)
|
38
|
+
rspec-mocks (2.7.0)
|
39
|
+
slop (3.4.6)
|
34
40
|
|
35
41
|
PLATFORMS
|
36
42
|
ruby
|
37
43
|
|
38
44
|
DEPENDENCIES
|
39
45
|
ofx!
|
40
|
-
|
41
|
-
|
46
|
+
pry
|
47
|
+
pry-debugger
|
48
|
+
rake
|
49
|
+
rspec (~> 2.7)
|
data/README.rdoc
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
= OFX
|
2
2
|
|
3
|
-
A simple OFX (Open Financial Exchange) parser built on top of Nokogiri. Currently supports OFX 1.0.2.
|
3
|
+
A simple OFX (Open Financial Exchange) parser built on top of Nokogiri. Currently supports both OFX 1.0.2 and 2.1.1.
|
4
4
|
|
5
|
-
Works on both
|
5
|
+
Works on both ruby 1.9 and 2.0.
|
6
6
|
|
7
7
|
== Usage
|
8
8
|
|
@@ -14,10 +14,14 @@ Works on both Ruby 1.8 and 1.9.
|
|
14
14
|
p account.transactions
|
15
15
|
end
|
16
16
|
|
17
|
-
==
|
17
|
+
== Creator
|
18
18
|
|
19
19
|
* Nando Vieira - http://simplesideias.com.br
|
20
20
|
|
21
|
+
== Maintainer
|
22
|
+
|
23
|
+
* Anna Cruz - http://anna-cruz.com
|
24
|
+
|
21
25
|
== License
|
22
26
|
|
23
27
|
(The MIT License)
|
data/Rakefile
CHANGED
data/lib/ofx.rb
CHANGED
@@ -2,7 +2,6 @@ require "open-uri"
|
|
2
2
|
require "nokogiri"
|
3
3
|
require "bigdecimal"
|
4
4
|
|
5
|
-
require "iconv"
|
6
5
|
require "kconv"
|
7
6
|
|
8
7
|
require "ofx/errors"
|
@@ -12,6 +11,7 @@ require "ofx/parser/ofx211"
|
|
12
11
|
require "ofx/foundation"
|
13
12
|
require "ofx/balance"
|
14
13
|
require "ofx/account"
|
14
|
+
require "ofx/sign_on"
|
15
15
|
require "ofx/transaction"
|
16
16
|
require "ofx/version"
|
17
17
|
|
data/lib/ofx/account.rb
CHANGED
data/lib/ofx/parser.rb
CHANGED
@@ -9,9 +9,8 @@ module OFX
|
|
9
9
|
def initialize(resource)
|
10
10
|
resource = open_resource(resource)
|
11
11
|
resource.rewind
|
12
|
-
@content = convert_to_utf8(resource.read)
|
13
|
-
|
14
12
|
begin
|
13
|
+
@content = convert_to_utf8(resource.read)
|
15
14
|
@headers, @body = prepare(content)
|
16
15
|
rescue Exception
|
17
16
|
raise OFX::UnsupportedFileError
|
@@ -64,7 +63,7 @@ module OFX
|
|
64
63
|
|
65
64
|
def convert_to_utf8(string)
|
66
65
|
return string if Kconv.isutf8(string)
|
67
|
-
|
66
|
+
string.encode("UTF-8", "ISO-8859-1")
|
68
67
|
end
|
69
68
|
end
|
70
69
|
end
|
data/lib/ofx/parser/ofx102.rb
CHANGED
@@ -26,6 +26,10 @@ module OFX
|
|
26
26
|
@account ||= build_account
|
27
27
|
end
|
28
28
|
|
29
|
+
def sign_on
|
30
|
+
@sign_on ||= build_sign_on
|
31
|
+
end
|
32
|
+
|
29
33
|
def self.parse_headers(header_text)
|
30
34
|
# Change single CR's to LF's to avoid issues with some banks
|
31
35
|
header_text.gsub!(/\r(?!\n)/, "\n")
|
@@ -47,12 +51,22 @@ module OFX
|
|
47
51
|
private
|
48
52
|
def build_account
|
49
53
|
OFX::Account.new({
|
50
|
-
:bank_id
|
51
|
-
:id
|
52
|
-
:type
|
53
|
-
:transactions
|
54
|
-
:balance
|
55
|
-
:
|
54
|
+
:bank_id => html.search("bankacctfrom > bankid").inner_text,
|
55
|
+
:id => html.search("bankacctfrom > acctid, ccacctfrom > acctid").inner_text,
|
56
|
+
:type => ACCOUNT_TYPES[html.search("bankacctfrom > accttype").inner_text.to_s.upcase],
|
57
|
+
:transactions => build_transactions,
|
58
|
+
:balance => build_balance,
|
59
|
+
:available_balance => build_available_balance,
|
60
|
+
:currency => html.search("bankmsgsrsv1 > stmttrnrs > stmtrs > curdef, " +
|
61
|
+
"creditcardmsgsrsv1 > ccstmttrnrs > ccstmtrs > curdef").inner_text
|
62
|
+
})
|
63
|
+
end
|
64
|
+
|
65
|
+
def build_sign_on
|
66
|
+
OFX::SignOn.new({
|
67
|
+
:language => html.search("signonmsgsrsv1 > sonrs > language").inner_text,
|
68
|
+
:fi_id => html.search("signonmsgsrsv1 > sonrs > fi > fid").inner_text,
|
69
|
+
:fi_name => html.search("signonmsgsrsv1 > sonrs > fi > org").inner_text
|
56
70
|
})
|
57
71
|
end
|
58
72
|
|
@@ -73,7 +87,8 @@ module OFX
|
|
73
87
|
:check_number => element.search("checknum").inner_text,
|
74
88
|
:ref_number => element.search("refnum").inner_text,
|
75
89
|
:posted_at => build_date(element.search("dtposted").inner_text),
|
76
|
-
:type => build_type(element)
|
90
|
+
:type => build_type(element),
|
91
|
+
:sic => element.search("sic").inner_text
|
77
92
|
})
|
78
93
|
end
|
79
94
|
|
@@ -103,6 +118,20 @@ module OFX
|
|
103
118
|
:posted_at => build_date(html.search("ledgerbal > dtasof").inner_text)
|
104
119
|
})
|
105
120
|
end
|
121
|
+
|
122
|
+
def build_available_balance
|
123
|
+
if html.search("availbal").size > 0
|
124
|
+
amount = html.search("availbal > balamt").inner_text.to_f
|
125
|
+
|
126
|
+
OFX::Balance.new({
|
127
|
+
:amount => amount,
|
128
|
+
:amount_in_pennies => (amount * 100).to_i,
|
129
|
+
:posted_at => build_date(html.search("availbal > dtasof").inner_text)
|
130
|
+
})
|
131
|
+
else
|
132
|
+
return nil
|
133
|
+
end
|
134
|
+
end
|
106
135
|
end
|
107
136
|
end
|
108
137
|
end
|
data/lib/ofx/sign_on.rb
ADDED
data/lib/ofx/transaction.rb
CHANGED
data/lib/ofx/version.rb
CHANGED
data/ofx.gemspec
CHANGED
@@ -6,8 +6,8 @@ Gem::Specification.new do |s|
|
|
6
6
|
s.name = "ofx"
|
7
7
|
s.version = OFX::Version::STRING
|
8
8
|
s.platform = Gem::Platform::RUBY
|
9
|
-
s.authors = ["Nando Vieira"]
|
10
|
-
s.email = ["fnando.vieira@gmail.com"]
|
9
|
+
s.authors = ["Nando Vieira", "Anna Cruz"]
|
10
|
+
s.email = ["fnando.vieira@gmail.com", "anna.cruz@gmail.com"]
|
11
11
|
s.homepage = "http://rubygems.org/gems/ofx"
|
12
12
|
s.summary = "A simple OFX (Open Financial Exchange) parser built on top of Nokogiri. Currently supports OFX 102, 200 and 211."
|
13
13
|
s.description = <<-TXT
|
@@ -27,6 +27,8 @@ TXT
|
|
27
27
|
s.require_paths = ["lib"]
|
28
28
|
|
29
29
|
s.add_dependency "nokogiri"
|
30
|
-
s.add_development_dependency "rspec", "~> 2.
|
31
|
-
s.add_development_dependency "
|
30
|
+
s.add_development_dependency "rspec", "~> 2.7"
|
31
|
+
s.add_development_dependency "rake"
|
32
|
+
s.add_development_dependency "pry"
|
33
|
+
s.add_development_dependency "pry-debugger"
|
32
34
|
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
OFXHEADER:100
|
2
|
+
DATA:OFXSGML
|
3
|
+
VERSION:102
|
4
|
+
SECURITY:NONE
|
5
|
+
ENCODING:USASCII
|
6
|
+
CHARSET:1252
|
7
|
+
COMPRESSION:NONE
|
8
|
+
OLDFILEUID:NONE
|
9
|
+
NEWFILEUID:NONE
|
10
|
+
|
11
|
+
<OFX>
|
12
|
+
<SIGNONMSGSRSV1>
|
13
|
+
<SONRS>
|
14
|
+
<STATUS>
|
15
|
+
<CODE>0</CODE>
|
16
|
+
<SEVERITY>INFO</SEVERITY>
|
17
|
+
</STATUS>
|
18
|
+
<DTSERVER>20070623192010</DTSERVER>
|
19
|
+
<LANGUAGE>ENG</LANGUAGE>
|
20
|
+
<FI>
|
21
|
+
<ORG>Citigroup</ORG>
|
22
|
+
<FID>24909</FID>
|
23
|
+
</FI>
|
24
|
+
<INTU.BID>24909</INTU.BID>
|
25
|
+
</SONRS>
|
26
|
+
</SIGNONMSGSRSV1>
|
27
|
+
<CREDITCARDMSGSRSV1>
|
28
|
+
<CCSTMTTRNRS>
|
29
|
+
<TRNUID>0</TRNUID>
|
30
|
+
<STATUS>
|
31
|
+
<CODE>0</CODE>
|
32
|
+
<SEVERITY>INFO</SEVERITY>
|
33
|
+
</STATUS>
|
34
|
+
<CCSTMTRS>
|
35
|
+
<CURDEF>USD</CURDEF>
|
36
|
+
<CCACCTFROM>
|
37
|
+
<ACCTID>XXXXXXXXXXXX1111</ACCTID>
|
38
|
+
</CCACCTFROM>
|
39
|
+
<BANKTRANLIST>
|
40
|
+
<DTSTART>20070509120000</DTSTART>
|
41
|
+
<DTEND>20070608120000</DTEND>
|
42
|
+
<STMTTRN>
|
43
|
+
<TRNTYPE>DEBIT</TRNTYPE>
|
44
|
+
<DTPOSTED>20070510170000</DTPOSTED>
|
45
|
+
<TRNAMT>-19.17</TRNAMT>
|
46
|
+
<FITID>xx</FITID>
|
47
|
+
<SIC>5912</SIC>
|
48
|
+
<NAME>WALGREEN 34638675 ANYTOWN</NAME>
|
49
|
+
</STMTTRN>
|
50
|
+
<STMTTRN>
|
51
|
+
<TRNTYPE>DEBIT</TRNTYPE>
|
52
|
+
<DTPOSTED>20070512170000</DTPOSTED>
|
53
|
+
<TRNAMT>-12.0</TRNAMT>
|
54
|
+
<FITID>yy-56</FITID>
|
55
|
+
<SIC>7933</SIC>
|
56
|
+
<NAME>SUNSET BOWL ANYTOWN</NAME>
|
57
|
+
</STMTTRN>
|
58
|
+
<STMTTRN>
|
59
|
+
<TRNTYPE>CREDIT</TRNTYPE>
|
60
|
+
<DTPOSTED>20070526170000</DTPOSTED>
|
61
|
+
<TRNAMT>11.01</TRNAMT>
|
62
|
+
<FITID>78-9</FITID>
|
63
|
+
<SIC>0000</SIC>
|
64
|
+
<NAME>ELECTRONIC PAYMENT-THANK YOU</NAME>
|
65
|
+
</STMTTRN>
|
66
|
+
</BANKTRANLIST>
|
67
|
+
<LEDGERBAL>
|
68
|
+
<BALAMT>-1111.01</BALAMT>
|
69
|
+
<DTASOF>20070623192013</DTASOF>
|
70
|
+
</LEDGERBAL>
|
71
|
+
<AVAILBAL>
|
72
|
+
<BALAMT>19000.99</BALAMT>
|
73
|
+
<DTASOF>20070623192013</DTASOF>
|
74
|
+
</AVAILBAL>
|
75
|
+
</CCSTMTRS>
|
76
|
+
</CCSTMTTRNRS>
|
77
|
+
</CREDITCARDMSGSRSV1>
|
78
|
+
</OFX>
|
79
|
+
|
data/spec/fixtures/sample.ofx
CHANGED
@@ -45,6 +45,7 @@ NEWFILEUID:NONE
|
|
45
45
|
<FITID>200910091
|
46
46
|
<CHECKNUM>0001223
|
47
47
|
<MEMO>COMPRA VISA ELECTRON
|
48
|
+
<SIC>5072
|
48
49
|
</STMTTRN><STMTTRN>
|
49
50
|
<TRNTYPE>CREDIT
|
50
51
|
<DTPOSTED>20091016080000
|
@@ -303,6 +304,10 @@ NEWFILEUID:NONE
|
|
303
304
|
<BALAMT>598.44
|
304
305
|
<DTASOF>20091101
|
305
306
|
</LEDGERBAL>
|
307
|
+
<AVAILBAL>
|
308
|
+
<BALAMT>1555.99</BALAMT>
|
309
|
+
<DTASOF>20091101</DTASOF>
|
310
|
+
</AVAILBAL>
|
306
311
|
</STMTRS>
|
307
312
|
</STMTTRNRS>
|
308
313
|
</BANKMSGSRSV1>
|
data/spec/ofx/account_spec.rb
CHANGED
@@ -40,5 +40,42 @@ describe OFX::Account do
|
|
40
40
|
it "should return balance date" do
|
41
41
|
@account.balance.posted_at.should == Time.parse("2009-11-01")
|
42
42
|
end
|
43
|
+
|
44
|
+
context "available_balance" do
|
45
|
+
it "should return available balance" do
|
46
|
+
@account.available_balance.amount.should == 1555.99
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should return available balance in pennies" do
|
50
|
+
@account.available_balance.amount_in_pennies.should == 155599
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should return available balance date" do
|
54
|
+
@account.available_balance.posted_at.should == Time.parse("2009-11-01")
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should return nil if AVAILBAL not found" do
|
58
|
+
@ofx = OFX::Parser::Base.new("spec/fixtures/utf8.ofx")
|
59
|
+
@parser = @ofx.parser
|
60
|
+
@account = @parser.account
|
61
|
+
@account.available_balance.should be_nil
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
context "Credit Card" do
|
66
|
+
before do
|
67
|
+
@ofx = OFX::Parser::Base.new("spec/fixtures/creditcard.ofx")
|
68
|
+
@parser = @ofx.parser
|
69
|
+
@account = @parser.account
|
70
|
+
end
|
71
|
+
|
72
|
+
it "should return id" do
|
73
|
+
@account.id.should == "XXXXXXXXXXXX1111"
|
74
|
+
end
|
75
|
+
|
76
|
+
it "should return currency" do
|
77
|
+
@account.currency.should == "USD"
|
78
|
+
end
|
79
|
+
end
|
43
80
|
end
|
44
81
|
end
|
data/spec/ofx/ofx102_spec.rb
CHANGED
@@ -26,6 +26,10 @@ describe OFX::Parser::OFX102 do
|
|
26
26
|
it "should set account" do
|
27
27
|
@parser.account.should be_a_kind_of(OFX::Account)
|
28
28
|
end
|
29
|
+
|
30
|
+
it "should set account" do
|
31
|
+
@parser.sign_on.should be_a_kind_of(OFX::SignOn)
|
32
|
+
end
|
29
33
|
|
30
34
|
it "should know about all transaction types" do
|
31
35
|
valid_types = [
|
data/spec/ofx/ofx211_spec.rb
CHANGED
@@ -22,6 +22,10 @@ describe OFX::Parser::OFX211 do
|
|
22
22
|
@parser.account.should be_a_kind_of(OFX::Account)
|
23
23
|
end
|
24
24
|
|
25
|
+
it "should set account" do
|
26
|
+
@parser.sign_on.should be_a_kind_of(OFX::SignOn)
|
27
|
+
end
|
28
|
+
|
25
29
|
context "transactions" do
|
26
30
|
before do
|
27
31
|
@transactions = @parser.account.transactions
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe OFX::SignOn do
|
4
|
+
before do
|
5
|
+
@ofx = OFX::Parser::Base.new("spec/fixtures/creditcard.ofx")
|
6
|
+
@parser = @ofx.parser
|
7
|
+
@sign_on = @parser.sign_on
|
8
|
+
end
|
9
|
+
|
10
|
+
describe "sign_on" do
|
11
|
+
it "should return language" do
|
12
|
+
@sign_on.language.should == "ENG"
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should return Financial Institution ID" do
|
16
|
+
@sign_on.fi_id.should == "24909"
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should return Financial Institution Name" do
|
20
|
+
@sign_on.fi_name.should == "Citigroup"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -43,6 +43,10 @@ describe OFX::Transaction do
|
|
43
43
|
it "should have type" do
|
44
44
|
@transaction.type.should == :debit
|
45
45
|
end
|
46
|
+
|
47
|
+
it "should have sic" do
|
48
|
+
@transaction.sic.should == '5072'
|
49
|
+
end
|
46
50
|
end
|
47
51
|
|
48
52
|
context "credit" do
|
@@ -77,6 +81,10 @@ describe OFX::Transaction do
|
|
77
81
|
it "should have type" do
|
78
82
|
@transaction.type.should == :credit
|
79
83
|
end
|
84
|
+
|
85
|
+
it "should have empty sic" do
|
86
|
+
@transaction.sic.should == ''
|
87
|
+
end
|
80
88
|
end
|
81
89
|
|
82
90
|
context "with more info" do
|
metadata
CHANGED
@@ -1,69 +1,102 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: ofx
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
version: 0.3.1
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.3.2
|
6
5
|
platform: ruby
|
7
|
-
authors:
|
6
|
+
authors:
|
8
7
|
- Nando Vieira
|
8
|
+
- Anna Cruz
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2013-08-24 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
16
15
|
name: nokogiri
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: "0"
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - '>='
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '0'
|
24
21
|
type: :runtime
|
25
|
-
|
26
|
-
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - '>='
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '0'
|
28
|
+
- !ruby/object:Gem::Dependency
|
27
29
|
name: rspec
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ~>
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '2.7'
|
35
|
+
type: :development
|
28
36
|
prerelease: false
|
29
|
-
|
30
|
-
|
31
|
-
requirements:
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
32
39
|
- - ~>
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version:
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '2.7'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: rake
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - '>='
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0'
|
35
49
|
type: :development
|
36
|
-
version_requirements: *id002
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
name: ruby-debug19
|
39
50
|
prerelease: false
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - '>='
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: pry
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - '>='
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
46
63
|
type: :development
|
47
|
-
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: pry-debugger
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - '>='
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
48
84
|
description: |
|
49
85
|
A simple OFX (Open Financial Exchange) parser built on top of Nokogiri.
|
50
86
|
Currently supports OFX 102, 200 and 211.
|
51
|
-
|
87
|
+
|
52
88
|
Usage:
|
53
|
-
|
89
|
+
|
54
90
|
OFX("sample.ofx") do |ofx|
|
55
91
|
p ofx
|
56
92
|
end
|
57
|
-
|
58
|
-
email:
|
93
|
+
email:
|
59
94
|
- fnando.vieira@gmail.com
|
95
|
+
- anna.cruz@gmail.com
|
60
96
|
executables: []
|
61
|
-
|
62
97
|
extensions: []
|
63
|
-
|
64
98
|
extra_rdoc_files: []
|
65
|
-
|
66
|
-
files:
|
99
|
+
files:
|
67
100
|
- .gitignore
|
68
101
|
- .rspec
|
69
102
|
- Gemfile
|
@@ -78,11 +111,13 @@ files:
|
|
78
111
|
- lib/ofx/parser.rb
|
79
112
|
- lib/ofx/parser/ofx102.rb
|
80
113
|
- lib/ofx/parser/ofx211.rb
|
114
|
+
- lib/ofx/sign_on.rb
|
81
115
|
- lib/ofx/transaction.rb
|
82
116
|
- lib/ofx/version.rb
|
83
117
|
- ofx.gemspec
|
84
118
|
- spec/fixtures/avatar.gif
|
85
119
|
- spec/fixtures/bb.ofx
|
120
|
+
- spec/fixtures/creditcard.ofx
|
86
121
|
- spec/fixtures/invalid_version.ofx
|
87
122
|
- spec/fixtures/sample.ofx
|
88
123
|
- spec/fixtures/utf8.ofx
|
@@ -92,38 +127,37 @@ files:
|
|
92
127
|
- spec/ofx/ofx211_spec.rb
|
93
128
|
- spec/ofx/ofx_parser_spec.rb
|
94
129
|
- spec/ofx/ofx_spec.rb
|
130
|
+
- spec/ofx/sign_on_spec.rb
|
95
131
|
- spec/ofx/transaction_spec.rb
|
96
132
|
- spec/spec_helper.rb
|
97
133
|
homepage: http://rubygems.org/gems/ofx
|
98
134
|
licenses: []
|
99
|
-
|
135
|
+
metadata: {}
|
100
136
|
post_install_message:
|
101
137
|
rdoc_options: []
|
102
|
-
|
103
|
-
require_paths:
|
138
|
+
require_paths:
|
104
139
|
- lib
|
105
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
- !ruby/object:Gem::Version
|
116
|
-
version: "0"
|
140
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - '>='
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: '0'
|
145
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
146
|
+
requirements:
|
147
|
+
- - '>='
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: '0'
|
117
150
|
requirements: []
|
118
|
-
|
119
151
|
rubyforge_project:
|
120
|
-
rubygems_version:
|
152
|
+
rubygems_version: 2.0.3
|
121
153
|
signing_key:
|
122
|
-
specification_version:
|
123
|
-
summary: A simple OFX (Open Financial Exchange) parser built on top of Nokogiri. Currently
|
124
|
-
|
154
|
+
specification_version: 4
|
155
|
+
summary: A simple OFX (Open Financial Exchange) parser built on top of Nokogiri. Currently
|
156
|
+
supports OFX 102, 200 and 211.
|
157
|
+
test_files:
|
125
158
|
- spec/fixtures/avatar.gif
|
126
159
|
- spec/fixtures/bb.ofx
|
160
|
+
- spec/fixtures/creditcard.ofx
|
127
161
|
- spec/fixtures/invalid_version.ofx
|
128
162
|
- spec/fixtures/sample.ofx
|
129
163
|
- spec/fixtures/utf8.ofx
|
@@ -133,5 +167,6 @@ test_files:
|
|
133
167
|
- spec/ofx/ofx211_spec.rb
|
134
168
|
- spec/ofx/ofx_parser_spec.rb
|
135
169
|
- spec/ofx/ofx_spec.rb
|
170
|
+
- spec/ofx/sign_on_spec.rb
|
136
171
|
- spec/ofx/transaction_spec.rb
|
137
172
|
- spec/spec_helper.rb
|