Class: Stupidedi::Schema::TransactionSetDef

Inherits:
AbstractDef
  • Object
show all
Includes:
Inspect
Defined in:
lib/stupidedi/schema/transaction_set_def.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Inspect

#inspect

Methods inherited from AbstractDef

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

Constructor Details

#initialize(functional_group, id, name, table_defs) ⇒ TransactionSetDef

Returns a new instance of TransactionSetDef.



21
22
23
24
25
26
# File 'lib/stupidedi/schema/transaction_set_def.rb', line 21

def initialize(functional_group, id, name, table_defs)
  @functional_group, @id, @name, @table_defs =
    functional_group, id, name, table_defs

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

Instance Attribute Details

#functional_groupString (readonly)

Returns:

  • (String)


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

def functional_group
  @functional_group
end

#idString (readonly)

Returns:

  • (String)


10
11
12
# File 'lib/stupidedi/schema/transaction_set_def.rb', line 10

def id
  @id
end

#nameString (readonly)

Returns:

  • (String)


13
14
15
# File 'lib/stupidedi/schema/transaction_set_def.rb', line 13

def name
  @name
end

#table_defsArray<TableDef> (readonly)

Returns:



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

def table_defs
  @table_defs
end

Class Method Details

.build(functional_group, id, name, *table_defs) ⇒ TransactionSetDef

Returns:



84
85
86
# File 'lib/stupidedi/schema/transaction_set_def.rb', line 84

def build(functional_group, id, name, *table_defs)
  new(functional_group, id, name, table_defs)
end

Instance Method Details

#code_listsAbstractSet<CodeList>

Returns:



61
62
63
# File 'lib/stupidedi/schema/transaction_set_def.rb', line 61

def code_lists
  @table_defs.map(&:code_lists).inject(&:|)
end

#copy(changes = {}) ⇒ Object



28
29
30
31
32
33
34
# File 'lib/stupidedi/schema/transaction_set_def.rb', line 28

def copy(changes = {})
  TransactionSetDef.new \
    changes.fetch(:functional_group, @functional_group),
    changes.fetch(:id, @id),
    changes.fetch(:name, @name),
    changes.fetch(:table_defs, @table_defs)
end

#emptyValues::TransactionSetVal



37
38
39
# File 'lib/stupidedi/schema/transaction_set_def.rb', line 37

def empty
  Values::TransactionSetVal.new(self, [])
end

#entry_segment_useSegmentUse

Returns:



42
43
44
# File 'lib/stupidedi/schema/transaction_set_def.rb', line 42

def entry_segment_use
  @table_defs.head.header_segment_uses.head
end

#first_segment_useSegmentUse

Returns:



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

def first_segment_use
  @table_defs.head.header_segment_uses.head
end

#last_segment_useSegmentUse

Returns:



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

def last_segment_use
  @table_defs.last.trailer_segment_uses.last
end

#pretty_print(q) ⇒ void

This method returns an undefined value.



66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/stupidedi/schema/transaction_set_def.rb', line 66

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

#transaction?Boolean

Returns:

  • (Boolean)


56
57
58
# File 'lib/stupidedi/schema/transaction_set_def.rb', line 56

def transaction?
  true
end