Class: Stupidedi::Values::CompositeElementVal
- Inherits:
-
AbstractElementVal
show all
- Defined in:
- lib/stupidedi/values/composite_element_val.rb
Overview
Instance Attribute Summary (collapse)
Instance Method Summary
(collapse)
#element?, #size
Methods inherited from AbstractVal
#blank?, #characters, #component?, #element?, #empty?, #functional_group?, #interchange?, #invalid?, #loop?, #present?, #repeated?, #segment?, #separator?, #simple?, #size, #table?, #transaction_set?, #transmission?, #valid?
Methods included from Color
ansi, #ansi
Methods included from Inspect
#inspect
Constructor Details
A new instance of CompositeElementVal
21
22
23
24
|
# File 'lib/stupidedi/values/composite_element_val.rb', line 21
def initialize(children, usage)
@children, @usage =
children, usage
end
|
Instance Attribute Details
- (Array<SimpleElementVal>) children
Also known as:
component_vals
13
14
15
|
# File 'lib/stupidedi/values/composite_element_val.rb', line 13
def children
@children
end
|
- (CompositeElementUse) usage
17
18
19
|
# File 'lib/stupidedi/values/composite_element_val.rb', line 17
def usage
@usage
end
|
Instance Method Details
- (Boolean) ==(other)
87
88
89
90
91
|
# File 'lib/stupidedi/values/composite_element_val.rb', line 87
def ==(other)
eql?(other) or
(other.definition == definition and
other.children == @children)
end
|
- (Boolean) composite?
40
41
42
|
# File 'lib/stupidedi/values/composite_element_val.rb', line 40
def composite?
true
end
|
27
28
29
30
31
|
# File 'lib/stupidedi/values/composite_element_val.rb', line 27
def copy(changes = {})
CompositeElementVal.new \
changes.fetch(:children, @children),
changes.fetch(:usage, @usage)
end
|
- (CompositeElementDef) definition
10
|
# File 'lib/stupidedi/values/composite_element_val.rb', line 10
delegate :definition, :to => :@usage
|
45
46
47
48
49
50
51
52
|
# File 'lib/stupidedi/values/composite_element_val.rb', line 45
def element(n)
unless n > 0
raise ArgumentError,
"n must be positive"
end
@children.at(n - 1)
end
|
- (Boolean) leaf?
34
35
36
|
# File 'lib/stupidedi/values/composite_element_val.rb', line 34
def leaf?
false
end
|
- pretty_print(q)
This method returns an undefined value.
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
# File 'lib/stupidedi/values/composite_element_val.rb', line 55
def pretty_print(q)
id = definition.bind do |d|
"[#{d.id}: #{d.name}]".bind do |s|
if usage.forbidden?
ansi.forbidden(s)
elsif usage.required?
ansi.required(s)
else
ansi.optional(s)
end
end
end
q.text(ansi.composite("CompositeElementVal#{id}"))
if empty?
q.text(ansi.composite(".empty"))
else
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
end
|