Class: Stupidedi::Schema::InterchangeDef

Inherits:
AbstractDef show all
Includes:
Inspect
Defined in:
lib/stupidedi/schema/interchange_def.rb

Overview

See Also:

  • 3.2.1 Basic Interchange Service Request
  • B.1.1.4.1 Interchange Control Structures

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Inspect

#inspect

Methods inherited from AbstractDef

#component?, #composite?, #definition?, #element?, #functional_group?, #loop?, #repeated?, #segment?, #simple?, #table?, #transaction_set?, #usage?

Constructor Details

#initialize(id, header_segment_uses, trailer_segment_uses) ⇒ InterchangeDef

Returns a new instance of InterchangeDef.



26
27
28
29
30
31
32
# File 'lib/stupidedi/schema/interchange_def.rb', line 26

def initialize(id, header_segment_uses, trailer_segment_uses)
  @id, @header_segment_uses, @trailer_segment_uses =
    id, header_segment_uses, trailer_segment_uses

  @header_segment_uses  = header_segment_uses.map{|x| x.copy(:parent => self) }
  @trailer_segment_uses = trailer_segment_uses.map{|x| x.copy(:parent => self) }
end

Instance Attribute Details

#header_segment_usesArray<SegmentUse> (readonly)

Returns:



15
16
17
# File 'lib/stupidedi/schema/interchange_def.rb', line 15

def header_segment_uses
  @header_segment_uses
end

#idString (readonly)

Returns:



12
13
14
# File 'lib/stupidedi/schema/interchange_def.rb', line 12

def id
  @id
end

#trailer_segment_usesArray<SegmentUse> (readonly)

Returns:



18
19
20
# File 'lib/stupidedi/schema/interchange_def.rb', line 18

def trailer_segment_uses
  @trailer_segment_uses
end

Instance Method Details

#childrenArray<SegmentUse>

Returns:



48
49
50
# File 'lib/stupidedi/schema/interchange_def.rb', line 48

def children
  @header_segment_uses + @trailer_segment_uses
end

#code_listsAbstractSet<CodeList>

Returns:



58
59
60
# File 'lib/stupidedi/schema/interchange_def.rb', line 58

def code_lists
  children.map(&:code_lists).inject(&:|)
end

#copy(changes = {}) ⇒ InterchangeDef

Returns:



35
36
37
38
39
40
# File 'lib/stupidedi/schema/interchange_def.rb', line 35

def copy(changes = {})
  InterchangeDef.new \
    changes.fetch(:id, @id),
    changes.fetch(:header_segment_uses, @header_segment_uses),
    changes.fetch(:trailer_segment_uses, @trailer_segment_uses)
end

#emptyValues::InterchangeVal



21
# File 'lib/stupidedi/schema/interchange_def.rb', line 21

abstract :empty, :args => %w(separators)

#entry_segment_useSegmentUse

Returns:



43
44
45
# File 'lib/stupidedi/schema/interchange_def.rb', line 43

def entry_segment_use
  @header_segment_uses.head
end

#interchange?Boolean

Returns:

  • (Boolean)


53
54
55
# File 'lib/stupidedi/schema/interchange_def.rb', line 53

def interchange?
  true
end

#pretty_print(q) ⇒ void

This method returns an undefined value.



63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# File 'lib/stupidedi/schema/interchange_def.rb', line 63

def pretty_print(q)
  q.text("InterchangeDef[#{id}]")
  q.group(2, "(", ")") do
    q.breakable ""
    @header_segment_uses.each do |e|
      unless q.current_group.first?
        q.text ","
        q.breakable
      end
      q.pp e
    end

    unless q.current_group.first?
      q.text ","
      q.breakable
    end
    q.text "... (FUNCTIONAL GROUPS) ..."

    @trailer_segment_uses.each do |e|
      unless q.current_group.first?
        q.text ","
        q.breakable
      end
      q.pp e
    end
  end
end

#separatorsReader::Separators

Returns:



24
# File 'lib/stupidedi/schema/interchange_def.rb', line 24

abstract :separators, :args => %w(isa_segment_val)