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