class Eancom::Parser::Segment
Attributes
components[RW]
string[RW]
tag[RW]
Public Class Methods
new(string)
click to toggle source
# File lib/eancom/parser/segment.rb, line 7 def initialize(string) @string = string @components = [] end
Public Instance Methods
parse()
click to toggle source
# File lib/eancom/parser/segment.rb, line 12 def parse parse_component klass = find_segment_class structure = find_structure klass.initialize_by_components(structure, @components) end
Private Instance Methods
component_delimiter()
click to toggle source
# File lib/eancom/parser/segment.rb, line 65 def component_delimiter DELIMITERS[:component] end
data_delimiter()
click to toggle source
# File lib/eancom/parser/segment.rb, line 61 def data_delimiter DELIMITERS[:data] end
find_segment_class()
click to toggle source
# File lib/eancom/parser/segment.rb, line 53 def find_segment_class Eancom.find_segment(tag: tag) end
find_structure()
click to toggle source
# File lib/eancom/parser/segment.rb, line 57 def find_structure Eancom.find_structure(tag: tag) end
parse_component()
click to toggle source
# File lib/eancom/parser/segment.rb, line 21 def parse_component if string =~ /^UNA/ parse_una else string.split(data_delimiter).each do |data| components << parse_data(data) end end end
parse_data(data)
click to toggle source
# File lib/eancom/parser/segment.rb, line 31 def parse_data(data) component = [] data.split(component_delimiter).each do |c| component << c end component end
parse_una()
click to toggle source
# File lib/eancom/parser/segment.rb, line 39 def parse_una components << [string[0..2]] components << [string[3]] components << [string[4]] components << [string[5]] components << [string[6]] components << [string[7]] components << [DELIMITERS[:segment]] end