Class: Eddy::Models::Segment

Inherits:
Object
  • Object
show all
Defined in:
lib/eddy/models/segment.rb

Overview

Base class for EDI Segments.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(store, *elements) ⇒ void

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

Parameters:



24
25
26
27
28
29
# File 'lib/eddy/models/segment.rb', line 24

def initialize(store, *elements)
  self.skip = false
  self.store = store
  elements.flatten!
  self.elements = elements || []
end

Instance Attribute Details

#elementsArray<Element>

Returns:



13
14
15
# File 'lib/eddy/models/segment.rb', line 13

def elements
  @elements
end

#idString (readonly)

An alphanumeric code unique to each Segment type.

Returns:

  • (String)


8
9
10
# File 'lib/eddy/models/segment.rb', line 8

def id
  @id
end

#nameString (readonly)

Short name of the Segment.

Returns:

  • (String)


11
12
13
# File 'lib/eddy/models/segment.rb', line 11

def name
  @name
end

#skipBoolean

Returns (false) If true, #render will return nil.

Returns:

  • (Boolean)

    (false) If true, #render will return nil.



17
18
19
# File 'lib/eddy/models/segment.rb', line 17

def skip
  @skip
end

#storeEddy::Data::Store

Returns Data passed down from a Transaction Set.

Returns:



15
16
17
# File 'lib/eddy/models/segment.rb', line 15

def store
  @store
end

Instance Method Details

#render(separator = self.store.element_separator) ⇒ String?

Parameters:

  • separator (String) (defaults to: self.store.element_separator)

    (self.store.element_separator) String used to delimit elements within a segment.

Returns:

  • (String, nil)


33
34
35
36
37
# 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