Sha256: 06afe1170d217b567a15790a4f62ebfeefe71a55abfcd04d6226d1698d00d63f
Contents?: true
Size: 1.73 KB
Versions: 2
Compression:
Stored size: 1.73 KB
Contents
module Clieop module ProcessInfo # Reads VERWINFO 4.1 process info, see record.rb for details class File attr_accessor :records, :batches, :info def initialize(verwinfo_string, whiny_mode = false) self.records = verwinfo_string.split(Clieop::ProcessInfo::Record::LINE_SEPARATOR).map do |record_line| unless record_line.size < 3 # No record code available begin Clieop::ProcessInfo::Record.new(record_line) rescue Exception => e whiny_mode ? raise(e) : nil end end end.compact raise 'No valid records found in VERWINFO data' unless @records.any? self.batches = [] self.info = records.first.data.merge(records.last.data).except(:record_code, :filler) # Get file header and footer current_batch = nil; current_transaction = nil records.each do |record| case record.type when :batch_header current_batch = Clieop::ProcessInfo::Batch.new current_transaction = nil batches << current_batch when :transaction_info, :changed_account_info current_transaction = Clieop::ProcessInfo::Transaction.new(record) end current_batch.add_record(record, current_transaction) if current_batch end end def self.from_file(verwinfo_file, whiny_mode = false) verwinfo_file = File.open(verwinfo_file) if verwinfo_file.is_a?(String) self.from_string(verwinfo_file.read, whiny_mode) end def self.from_string(verwinfo_string, whiny_mode = false) self.new(verwinfo_string, whiny_mode) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
clieop-1.0.1 | lib/clieop/process_info/file.rb |
clieop-1.0.0 | lib/clieop/process_info/file.rb |