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