class MT940::Parser
Attributes
transactions[RW]
Public Class Methods
new(file)
click to toggle source
# File lib/mt940/parser.rb, line 10 def initialize(file) file = File.open(file) if file.is_a?(String) if file.is_a?(File) || file.is_a?(Tempfile) process(file) file.close else raise NoFileGiven.new('No file is given!') end end
Private Instance Methods
determine_bank_class(file)
click to toggle source
# File lib/mt940/parser.rb, line 37 def determine_bank_class(file) first_line = file.readline case first_line when /^:940:/ Rabobank when /INGBNL/ Ing when /ABNANL/ Abnamro when /^:20:/ Triodos end end
process(file)
click to toggle source
# File lib/mt940/parser.rb, line 22 def process(file) begin bank_class = determine_bank_class(file) instance = bank_class.new(file) instance.parse @transactions = instance.transactions rescue NoMethodError => exception if exception.message == "undefined method `new' for nil:NilClass" raise UnknownBank.new('Could not determine bank!') else raise exception end end end