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 in define

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 in define

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 in define

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