ofx 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
data/lib/ofx/errors.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module OFX
2
- class UnsupportedVersionError < StandardError; end
2
+ class UnsupportedFileError < StandardError; end
3
3
  end
data/lib/ofx/parser.rb CHANGED
@@ -7,14 +7,17 @@ module OFX
7
7
  attr_reader :parser
8
8
 
9
9
  def initialize(resource)
10
- @content = open_resource(resource).read
10
+ resource = open_resource(resource)
11
+ resource.rewind
12
+
13
+ @content = resource.read
11
14
  @headers, @body = prepare(content)
12
15
 
13
16
  case @headers["VERSION"]
14
17
  when "102" then
15
18
  @parser = OFX::Parser::OFX102.new(:headers => headers, :body => body)
16
19
  else
17
- raise OFX::UnsupportedVersionError
20
+ raise OFX::UnsupportedFileError
18
21
  end
19
22
  end
20
23
 
@@ -35,6 +38,8 @@ module OFX
35
38
  # Split headers & body
36
39
  headers, body = content.dup.split(/\n{2,}|:?<OFX>/, 2)
37
40
 
41
+ raise OFX::UnsupportedFileError unless body
42
+
38
43
  # Parse headers. When value is NONE, convert it to nil.
39
44
  headers = headers.to_enum(:each_line).inject({}) do |memo, line|
40
45
  _, key, value = *line.match(/^(.*?):(.*?)(\r?\n)*$/)
data/lib/ofx/version.rb CHANGED
@@ -2,7 +2,7 @@ module OFX
2
2
  module Version
3
3
  MAJOR = 0
4
4
  MINOR = 2
5
- PATCH = 3
5
+ PATCH = 4
6
6
  STRING = "#{MAJOR}.#{MINOR}.#{PATCH}"
7
7
  end
8
8
  end
data/ofx.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{ofx}
8
- s.version = "0.2.3"
8
+ s.version = "0.2.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Nando Vieira"]
12
- s.date = %q{2010-03-09}
12
+ s.date = %q{2010-03-10}
13
13
  s.description = %q{A simple OFX (Open Financial Exchange) parser built on top of Nokogiri. Currently supports OFX 1.0.2.
14
14
 
15
15
  Usage:
@@ -34,6 +34,7 @@ Usage:
34
34
  "lib/ofx/transaction.rb",
35
35
  "lib/ofx/version.rb",
36
36
  "ofx.gemspec",
37
+ "spec/fixtures/avatar.gif",
37
38
  "spec/fixtures/invalid_version.ofx",
38
39
  "spec/fixtures/sample.ofx",
39
40
  "spec/ofx/account_spec.rb",
Binary file
@@ -33,7 +33,13 @@ describe OFX::Parser do
33
33
  it "should raise exception when trying to parse an unsupported OFX version" do
34
34
  lambda {
35
35
  OFX::Parser::Base.new("spec/fixtures/invalid_version.ofx")
36
- }.should raise_error(OFX::UnsupportedVersionError)
36
+ }.should raise_error(OFX::UnsupportedFileError)
37
+ end
38
+
39
+ it "should raise exception when trying to parse an invalid file" do
40
+ lambda {
41
+ OFX::Parser::Base.new("spec/fixtures/avatar.gif")
42
+ }.should raise_error(OFX::UnsupportedFileError)
37
43
  end
38
44
 
39
45
  describe "headers" do
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 2
8
- - 3
9
- version: 0.2.3
8
+ - 4
9
+ version: 0.2.4
10
10
  platform: ruby
11
11
  authors:
12
12
  - Nando Vieira
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-03-09 00:00:00 -03:00
17
+ date: 2010-03-10 00:00:00 -03:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -57,6 +57,7 @@ files:
57
57
  - lib/ofx/transaction.rb
58
58
  - lib/ofx/version.rb
59
59
  - ofx.gemspec
60
+ - spec/fixtures/avatar.gif
60
61
  - spec/fixtures/invalid_version.ofx
61
62
  - spec/fixtures/sample.ofx
62
63
  - spec/ofx/account_spec.rb