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


30
31
32
33
34
35
36
# File 'lib/stupidedi/schema/interchange_def.rb', line 30

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)


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

def header_segment_uses
  @header_segment_uses
end

#idString (readonly)


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

def id
  @id
end

#trailer_segment_usesArray<SegmentUse> (readonly)


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

def trailer_segment_uses
  @trailer_segment_uses
end

Instance Method Details

#childrenArray<SegmentUse>


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

def children
  @header_segment_uses + @trailer_segment_uses
end

#code_listsAbstractSet<CodeList>


62
63
64
# File 'lib/stupidedi/schema/interchange_def.rb', line 62

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

#copy(changes = {}) ⇒ InterchangeDef


39
40
41
42
43
44
# File 'lib/stupidedi/schema/interchange_def.rb', line 39

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


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

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

#entry_segment_useSegmentUse


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

def entry_segment_use
  @header_segment_uses.head
end

#interchange?Boolean


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

def interchange?
  true
end

#pretty_print(q)


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

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


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

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