class Eddy::Models::Segment

Base class for EDI Segments.

Attributes

elements[RW]

@return [Array<Element>]

id[R]

An alphanumeric code unique to each Segment type. @return [String]

name[R]

Short name of the Segment. @return [String]

skip[RW]

@return [Boolean] (false) If true, `#render` will return `nil`.

store[RW]

@return [Eddy::Data::Store] Data passed down from a Transaction Set.

Public Class Methods

new(store, *elements) click to toggle source

All of a Segment's elements need to be declared in its constructor.

@param store [Eddy::Data::Store] @param elements [Eddy::Models::Element::Base] @return [void]

# File lib/eddy/models/segment.rb, line 24
def initialize(store, *elements)
  self.skip = false
  self.store = store
  elements.flatten!
  self.elements = elements || []
end

Public Instance Methods

render(separator = self.store.element_separator) click to toggle source

@param separator [String] (self.store.element_separator) String used to delimit elements within a segment. @return [String,nil]

# File lib/eddy/models/segment.rb, line 33
def render(separator = self.store.element_separator)
  return nil if self.skip
  segment = [self.id, self.elements.map(&:value)].join(separator)
  return Eddy::Util.trim_delims_from_segment(segment, separator: separator)
end