Class: Stupidedi::Values::SegmentVal
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.
22
23
24
25
|
# File 'lib/stupidedi/values/segment_val.rb', line 22
def initialize(children, usage, position)
@children, @usage, @position =
children, usage, position
end
|
Instance Attribute Details
14
15
16
|
# File 'lib/stupidedi/values/segment_val.rb', line 14
def children
@children
end
|
#position ⇒ Position
20
21
22
|
# File 'lib/stupidedi/values/segment_val.rb', line 20
def position
@position
end
|
#usage ⇒ SegmentUse
17
18
19
|
# File 'lib/stupidedi/values/segment_val.rb', line 17
def usage
@usage
end
|
Instance Method Details
#==(other) ⇒ Boolean
99
100
101
102
103
|
# File 'lib/stupidedi/values/segment_val.rb', line 99
def ==(other)
eql?(other) or
(other.definition == definition and
other.children == @children)
end
|
#copy(changes = {}) ⇒ SegmentVal
28
29
30
31
32
33
|
# File 'lib/stupidedi/values/segment_val.rb', line 28
def copy(changes = {})
SegmentVal.new \
changes.fetch(:children, @children),
changes.fetch(:usage, @usage),
changes.fetch(:position, @position)
end
|
61
62
63
64
65
66
67
68
69
70
71
72
|
# File 'lib/stupidedi/values/segment_val.rb', line 61
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
|
#id ⇒ Symbol
41
42
43
|
# File 'lib/stupidedi/values/segment_val.rb', line 41
def id
definition.id
end
|
#inspect ⇒ String
94
95
96
|
# File 'lib/stupidedi/values/segment_val.rb', line 94
def inspect
ansi.segment(ansi.bold(definition.id.to_s))
end
|
#leaf? ⇒ Boolean
46
47
48
|
# File 'lib/stupidedi/values/segment_val.rb', line 46
def leaf?
false
end
|
#pretty_print(q) ⇒ void
This method returns an undefined value.
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
# File 'lib/stupidedi/values/segment_val.rb', line 75
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? ⇒ Object
56
57
58
|
# File 'lib/stupidedi/values/segment_val.rb', line 56
def segment?
true
end
|
#size ⇒ Integer
Number of segments in this subtree
36
37
38
|
# File 'lib/stupidedi/values/segment_val.rb', line 36
def size
1
end
|
#valid? ⇒ Boolean
50
51
52
|
# File 'lib/stupidedi/values/segment_val.rb', line 50
def valid?
true
end
|