Class: Stupidedi::Values::SegmentVal
- Inherits:
-
AbstractVal
show all
- Extended by:
- Forwardable
- 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?, #definition, #element?, #empty?, #functional_group?, #interchange?, #invalid?, #loop?, #present?, #repeated?, #separator?, #simple?, #table?, #transaction_set?, #transmission?
Methods included from Color
ansi, #ansi
Constructor Details
#initialize(children, usage, position) ⇒ SegmentVal
Returns a new instance of SegmentVal.
21
22
23
24
|
# File 'lib/stupidedi/values/segment_val.rb', line 21
def initialize(children, usage, position)
@children, @usage, @position =
children, usage, position
end
|
Instance Attribute Details
13
14
15
|
# File 'lib/stupidedi/values/segment_val.rb', line 13
def children
@children
end
|
#position ⇒ Position
19
20
21
|
# File 'lib/stupidedi/values/segment_val.rb', line 19
def position
@position
end
|
#usage ⇒ SegmentUse
16
17
18
|
# File 'lib/stupidedi/values/segment_val.rb', line 16
def usage
@usage
end
|
Instance Method Details
#==(other) ⇒ Boolean
98
99
100
101
102
|
# File 'lib/stupidedi/values/segment_val.rb', line 98
def ==(other)
eql?(other) or
(other.definition == definition and
other.children == @children)
end
|
#copy(changes = {}) ⇒ SegmentVal
27
28
29
30
31
32
|
# File 'lib/stupidedi/values/segment_val.rb', line 27
def copy(changes = {})
SegmentVal.new \
changes.fetch(:children, @children),
changes.fetch(:usage, @usage),
changes.fetch(:position, @position)
end
|
60
61
62
63
64
65
66
67
68
69
70
71
|
# File 'lib/stupidedi/values/segment_val.rb', line 60
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
|
40
41
42
|
# File 'lib/stupidedi/values/segment_val.rb', line 40
def id
definition.id
end
|
93
94
95
|
# File 'lib/stupidedi/values/segment_val.rb', line 93
def inspect
ansi.segment(ansi.bold(definition.id.to_s))
end
|
#leaf? ⇒ Boolean
45
46
47
|
# File 'lib/stupidedi/values/segment_val.rb', line 45
def leaf?
false
end
|
#pretty_print(q) ⇒ void
This method returns an undefined value.
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
# File 'lib/stupidedi/values/segment_val.rb', line 74
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
|
55
56
57
|
# File 'lib/stupidedi/values/segment_val.rb', line 55
def segment?
true
end
|
Number of segments in this subtree
35
36
37
|
# File 'lib/stupidedi/values/segment_val.rb', line 35
def size
1
end
|
#valid? ⇒ Boolean
49
50
51
|
# File 'lib/stupidedi/values/segment_val.rb', line 49
def valid?
true
end
|