ofx 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
@@ -1,3 +1,4 @@
1
1
  .DS_Store
2
2
  *.gem
3
- pkg
3
+ pkg
4
+ Gemfile.lock
data/Gemfile CHANGED
@@ -1,2 +1,2 @@
1
- source "http://gems.simplesideias.com.br"
1
+ source "https://rubygems.org"
2
2
  gemspec
@@ -1,41 +1,49 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ofx (0.3.1)
4
+ ofx (0.3.2)
5
5
  nokogiri
6
6
 
7
7
  GEM
8
- remote: http://gems.simplesideias.com.br/
8
+ remote: https://rubygems.org/
9
9
  specs:
10
- archive-tar-minitar (0.5.2)
11
- columnize (0.3.2)
12
- diff-lcs (1.1.2)
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
- linecache19 (>= 0.5.11)
31
- ruby-debug-base19 (>= 0.11.19)
32
- ruby_core_source (0.1.4)
33
- archive-tar-minitar (>= 0.5.2)
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
- rspec (~> 2.6)
41
- ruby-debug19
46
+ pry
47
+ pry-debugger
48
+ rake
49
+ rspec (~> 2.7)
@@ -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 Ruby 1.8 and 1.9.
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
- == Maintainer
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
@@ -3,3 +3,5 @@ Bundler::GemHelper.install_tasks
3
3
 
4
4
  require "rspec/core/rake_task"
5
5
  RSpec::Core::RakeTask.new
6
+
7
+ task :default => :spec
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
 
@@ -6,5 +6,6 @@ module OFX
6
6
  attr_accessor :id
7
7
  attr_accessor :transactions
8
8
  attr_accessor :type
9
+ attr_accessor :available_balance
9
10
  end
10
11
  end
@@ -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
- Iconv.conv("UTF-8", "LATIN1//IGNORE", string)
66
+ string.encode("UTF-8", "ISO-8859-1")
68
67
  end
69
68
  end
70
69
  end
@@ -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 => html.search("bankacctfrom > bankid").inner_text,
51
- :id => html.search("bankacctfrom > acctid").inner_text,
52
- :type => ACCOUNT_TYPES[html.search("bankacctfrom > accttype").inner_text.to_s.upcase],
53
- :transactions => build_transactions,
54
- :balance => build_balance,
55
- :currency => html.search("bankmsgsrsv1 > stmttrnrs > stmtrs > curdef").inner_text
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
@@ -0,0 +1,7 @@
1
+ module OFX
2
+ class SignOn < Foundation
3
+ attr_accessor :language
4
+ attr_accessor :fi_id
5
+ attr_accessor :fi_name
6
+ end
7
+ end
@@ -10,5 +10,6 @@ module OFX
10
10
  attr_accessor :posted_at
11
11
  attr_accessor :ref_number
12
12
  attr_accessor :type
13
+ attr_accessor :sic
13
14
  end
14
15
  end
@@ -2,7 +2,7 @@ module OFX
2
2
  module Version
3
3
  MAJOR = 0
4
4
  MINOR = 3
5
- PATCH = 1
5
+ PATCH = 2
6
6
  STRING = "#{MAJOR}.#{MINOR}.#{PATCH}"
7
7
  end
8
8
  end
@@ -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.6"
31
- s.add_development_dependency "ruby-debug19"
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
+
@@ -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>
@@ -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
@@ -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 = [
@@ -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
- prerelease:
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
- date: 2011-05-16 00:00:00 Z
14
- dependencies:
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
- prerelease: false
18
- requirement: &id001 !ruby/object:Gem::Requirement
19
- none: false
20
- requirements:
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
- version_requirements: *id001
26
- - !ruby/object:Gem::Dependency
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
- requirement: &id002 !ruby/object:Gem::Requirement
30
- none: false
31
- requirements:
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
32
39
  - - ~>
33
- - !ruby/object:Gem::Version
34
- version: "2.6"
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
- requirement: &id003 !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- version: "0"
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
- version_requirements: *id003
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
- none: false
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: "0"
111
- required_rubygems_version: !ruby/object:Gem::Requirement
112
- none: false
113
- requirements:
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: 1.8.1
152
+ rubygems_version: 2.0.3
121
153
  signing_key:
122
- specification_version: 3
123
- summary: A simple OFX (Open Financial Exchange) parser built on top of Nokogiri. Currently supports OFX 102, 200 and 211.
124
- test_files:
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