class SdfParser::Line

Public Class Methods

new(line, definition) click to toggle source
# File lib/sdf_parser/line.rb, line 4
def initialize(line, definition)
  @line       = line
  @definition = definition
end

Public Instance Methods

parse() click to toggle source
# File lib/sdf_parser/line.rb, line 9
def parse
  @definition.hash_map.map do |k, v|
    { k => split_data(@line, v) }
  end.reduce(&:merge)
end

Private Instance Methods

split_data(line, address) click to toggle source
# File lib/sdf_parser/line.rb, line 16
def split_data(line, address)
  field = line[address[0] - 1, address[1]]
  return field.strip if field
  throw "The data doesn't match the definition"
end