Class: Stupidedi::Values::SegmentVal
- Inherits:
-
AbstractVal
show all
- Defined in:
- lib/stupidedi/values/segment_val.rb
Overview
Instance Attribute Summary (collapse)
Instance Method Summary
(collapse)
Methods inherited from AbstractVal
#blank?, #characters, #component?, #composite?, #element?, #empty?, #functional_group?, #interchange?, #invalid?, #loop?, #present?, #repeated?, #separator?, #simple?, #table?, #transaction_set?, #transmission?
Methods included from Color
ansi, #ansi
Constructor Details
- (SegmentVal) initialize(children, usage, position)
A new instance of SegmentVal
19
20
21
22
|
# File 'lib/stupidedi/values/segment_val.rb', line 19
def initialize(children, usage, position)
@children, @usage, @position =
children, usage, position
end
|
Instance Attribute Details
11
12
13
|
# File 'lib/stupidedi/values/segment_val.rb', line 11
def children
@children
end
|
- (Position) position
17
18
19
|
# File 'lib/stupidedi/values/segment_val.rb', line 17
def position
@position
end
|
- (SegmentUse) usage
14
15
16
|
# File 'lib/stupidedi/values/segment_val.rb', line 14
def usage
@usage
end
|
Instance Method Details
- (Boolean) ==(other)
96
97
98
99
100
|
# File 'lib/stupidedi/values/segment_val.rb', line 96
def ==(other)
eql?(other) or
(other.definition == definition and
other.children == @children)
end
|
- (SegmentVal) copy(changes = {})
25
26
27
28
29
30
|
# File 'lib/stupidedi/values/segment_val.rb', line 25
def copy(changes = {})
SegmentVal.new \
changes.fetch(:children, @children),
changes.fetch(:usage, @usage),
changes.fetch(:position, @position)
end
|
- (SegmentDef) definition
8
|
# File 'lib/stupidedi/values/segment_val.rb', line 8
delegate :definition, :to => :@usage
|
58
59
60
61
62
63
64
65
66
67
68
69
|
# File 'lib/stupidedi/values/segment_val.rb', line 58
def element(m, n = nil, o = nil)
unless m > 0
raise ArgumentError,
"m must be positive"
end
unless n.nil?
@children.at(m - 1).element(n, o)
else
@children.at(m - 1)
end
end
|
38
39
40
|
# File 'lib/stupidedi/values/segment_val.rb', line 38
def id
definition.id
end
|
91
92
93
|
# File 'lib/stupidedi/values/segment_val.rb', line 91
def inspect
ansi.segment(ansi.bold(definition.id.to_s))
end
|
- (Boolean) leaf?
43
44
45
|
# File 'lib/stupidedi/values/segment_val.rb', line 43
def leaf?
false
end
|
- pretty_print(q)
This method returns an undefined value.
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
# File 'lib/stupidedi/values/segment_val.rb', line 72
def pretty_print(q)
id = definition.try do |d|
ansi.bold("[#{d.id}: #{d.name}]")
end
q.text(ansi.segment("SegmentVal#{id}"))
q.group(2, "(", ")") do
q.breakable ""
@children.each do |e|
unless q.current_group.first?
q.text ","
q.breakable
end
q.pp e
end
end
end
|
- segment?
53
54
55
|
# File 'lib/stupidedi/values/segment_val.rb', line 53
def segment?
true
end
|
Number of segments in this subtree
33
34
35
|
# File 'lib/stupidedi/values/segment_val.rb', line 33
def size
1
end
|
- (Boolean) valid?
47
48
49
|
# File 'lib/stupidedi/values/segment_val.rb', line 47
def valid?
true
end
|