module Hippo_eyeDoc::Parser::Segment
Public Instance Methods
parse(input)
click to toggle source
# File lib/hippo_eyeDoc/parser/segment.rb, line 4 def parse(input) input.gsub!(/[\a\e\f\n\r\t\v]/,'') fields = input.split(@field_separator) segment_identifier = fields.shift fields.each_with_index do |value, index| field = self.class.fields[index] # if the field is an array that means it is a # composite field if field.class == Array composite_fields = value.split(@composite_separator) composite_sequence = field.first.composite_sequence self.values[composite_sequence] = {} composite_fields.each_with_index do |comp_value, comp_index| composite_field = field[comp_index] self.values[composite_sequence][composite_field.sequence] = composite_field.formatted_value(comp_value) end else self.values[field.sequence] = field.formatted_value(value) end end self end