class FixedWidthGenerator
Public Class Methods
define(name, options={}) { |definition| ... }
click to toggle source
- name
-
a symbol to reference this file definition later
- option
-
a hash of default options for all sub-elements
and a block that defines the sections of the file.
returns: Definition
instance for this file description.
# File lib/aba_generator/fixed_width_generator.rb, line 18 def self.define(name, options={}) # yields definition definition = Definition.new(options) yield(definition) definitions[name] = definition definition end
generate(definition_name, data)
click to toggle source
- data
-
nested hash describing the contents of the sections
- definition_name
-
symbol
name
used indefine
returns: string of the transformed data
(into fixed-width records).
# File lib/aba_generator/fixed_width_generator.rb, line 31 def self.generate(definition_name, data) definition = definition(definition_name) raise ArgumentError.new("Definition name '#{name}' was not found.") unless definition generator = Generator.new(definition) generator.generate(data) end
parse(file, definition_name)
click to toggle source
- file
-
IO object from which to read the fixed-width text records
- definition_name
-
symbol
name
used indefine
returns: parsed text records in a nested hash.
# File lib/aba_generator/fixed_width_generator.rb, line 55 def self.parse(file, definition_name) definition = definition(definition_name) raise ArgumentError.new("Definition name '#{definition_name}' was not found.") unless definition parser = Parser.new(definition, file) parser.parse end
write(file, definition_name, data)
click to toggle source
- file
-
IO object to write the +generate+d data
- definition_name
-
symbol
name
used indefine
- data
-
nested hash describing the contents of the sections
writes transformed data to file
object as fixed-width records.
# File lib/aba_generator/fixed_width_generator.rb, line 45 def self.write(file, definition_name, data) file.write(generate(definition_name, data)) end
Private Class Methods
definition(name)
click to toggle source
# File lib/aba_generator/fixed_width_generator.rb, line 68 def self.definition(name) definitions[name] end
definitions()
click to toggle source
# File lib/aba_generator/fixed_width_generator.rb, line 64 def self.definitions @@definitions ||= {} end