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.
@@ -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