Class: CC::Yaml::Nodes::Node
- Inherits:
-
Object
- Object
- CC::Yaml::Nodes::Node
show all
- Defined in:
- lib/cc/yaml/nodes/node.rb
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
-
#as_json(options = nil) ⇒ Object
-
#deep_verify ⇒ Object
-
#dup ⇒ Object
-
#error(message, *params) ⇒ Object
-
#errors ⇒ Object
-
#errors? ⇒ Boolean
-
#initialize(parent) {|_self| ... } ⇒ Node
constructor
-
#method_missing(method, *args, &block) ⇒ Object
-
#nested_warning(message, *prefix) ⇒ Object
-
#nested_warnings(*prefix) ⇒ Object
-
#prepare ⇒ Object
-
#respond_to_missing?(method, include_private = false) ⇒ Boolean
-
#to_s ⇒ Object
-
#verify ⇒ Object
-
#visit_child(visitor, value) ⇒ Object
-
#visit_mapping(visitor, value) ⇒ Object
-
#visit_pair(visitor, key, value) ⇒ Object
-
#visit_scalar(visitor, type, value, implicit = true) ⇒ Object
-
#visit_sequence(visitor, value) ⇒ Object
-
#visit_unexpected(visitor, value, message = nil) ⇒ Object
-
#warning(message, *params) ⇒ Object
-
#warnings ⇒ Object
-
#warnings? ⇒ Boolean
-
#with_value(value) ⇒ Object
Constructor Details
#initialize(parent) {|_self| ... } ⇒ Node
Returns a new instance of Node.
11
12
13
14
15
16
|
# File 'lib/cc/yaml/nodes/node.rb', line 11
def initialize(parent)
@nested_warnings = []
@parent = parent
prepare
yield self if block_given?
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args, &block) ⇒ Object
91
92
93
94
|
# File 'lib/cc/yaml/nodes/node.rb', line 91
def method_missing(method, *args, &block)
return super unless __getobj__.respond_to?(method)
__getobj__.public_send(method, *args, &block)
end
|
Instance Attribute Details
#parent ⇒ Object
Returns the value of attribute parent.
9
10
11
|
# File 'lib/cc/yaml/nodes/node.rb', line 9
def parent
@parent
end
|
Class Method Details
.has_default? ⇒ Boolean
5
6
7
|
# File 'lib/cc/yaml/nodes/node.rb', line 5
def self.has_default?
false
end
|
Instance Method Details
#as_json(options = nil) ⇒ Object
100
101
102
|
# File 'lib/cc/yaml/nodes/node.rb', line 100
def as_json(options = nil)
__getobj__.as_json(options)
end
|
#deep_verify ⇒ Object
59
60
61
|
# File 'lib/cc/yaml/nodes/node.rb', line 59
def deep_verify
verify
end
|
#dup ⇒ Object
110
111
112
|
# File 'lib/cc/yaml/nodes/node.rb', line 110
def dup
super.dup_values
end
|
#error(message, *params) ⇒ Object
49
50
51
|
# File 'lib/cc/yaml/nodes/node.rb', line 49
def error(message, *params)
errors << message % params
end
|
#errors ⇒ Object
41
42
43
|
# File 'lib/cc/yaml/nodes/node.rb', line 41
def errors
@errors ||= []
end
|
#errors? ⇒ Boolean
22
23
24
|
# File 'lib/cc/yaml/nodes/node.rb', line 22
def errors?
errors.any?
end
|
#nested_warning(message, *prefix) ⇒ Object
30
31
32
|
# File 'lib/cc/yaml/nodes/node.rb', line 30
def nested_warning(message, *prefix)
@nested_warnings << [prefix, message]
end
|
#nested_warnings(*prefix) ⇒ Object
34
35
36
37
38
39
|
# File 'lib/cc/yaml/nodes/node.rb', line 34
def nested_warnings(*prefix)
messages = errors + warnings
prefixed = messages.map { |warning| [prefix, warning] }
prefixed += @nested_warnings.map { |p, w| [prefix + p, w] }
prefixed
end
|
#prepare ⇒ Object
53
54
|
# File 'lib/cc/yaml/nodes/node.rb', line 53
def prepare
end
|
#respond_to_missing?(method, include_private = false) ⇒ Boolean
87
88
89
|
# File 'lib/cc/yaml/nodes/node.rb', line 87
def respond_to_missing?(method, include_private = false)
__getobj__.respond_to?(method, false)
end
|
#to_s ⇒ Object
96
97
98
|
# File 'lib/cc/yaml/nodes/node.rb', line 96
def to_s
__getobj__.to_s
end
|
#verify ⇒ Object
56
57
|
# File 'lib/cc/yaml/nodes/node.rb', line 56
def verify
end
|
#visit_child(visitor, value) ⇒ Object
83
84
85
|
# File 'lib/cc/yaml/nodes/node.rb', line 83
def visit_child(visitor, value)
visit_unexpected(visitor, value, "unexpected child")
end
|
#visit_mapping(visitor, value) ⇒ Object
67
68
69
|
# File 'lib/cc/yaml/nodes/node.rb', line 67
def visit_mapping(visitor, value)
visit_unexpected(visitor, value, "unexpected mapping")
end
|
#visit_pair(visitor, key, value) ⇒ Object
71
72
73
|
# File 'lib/cc/yaml/nodes/node.rb', line 71
def visit_pair(visitor, key, value)
visit_unexpected(visitor, value, "unexpected pair")
end
|
#visit_scalar(visitor, type, value, implicit = true) ⇒ Object
75
76
77
|
# File 'lib/cc/yaml/nodes/node.rb', line 75
def visit_scalar(visitor, type, value, implicit = true)
visit_unexpected(visitor, value, "unexpected scalar") unless type == :null
end
|
#visit_sequence(visitor, value) ⇒ Object
79
80
81
|
# File 'lib/cc/yaml/nodes/node.rb', line 79
def visit_sequence(visitor, value)
visit_unexpected(visitor, value, "unexpected sequence")
end
|
#visit_unexpected(visitor, value, message = nil) ⇒ Object
63
64
65
|
# File 'lib/cc/yaml/nodes/node.rb', line 63
def visit_unexpected(visitor, value, message = nil)
error(message || "unexpected %p", value)
end
|
#warning(message, *params) ⇒ Object
45
46
47
|
# File 'lib/cc/yaml/nodes/node.rb', line 45
def warning(message, *params)
warnings << message % params
end
|
#warnings ⇒ Object
26
27
28
|
# File 'lib/cc/yaml/nodes/node.rb', line 26
def warnings
@warnings ||= []
end
|
#warnings? ⇒ Boolean
18
19
20
|
# File 'lib/cc/yaml/nodes/node.rb', line 18
def warnings?
warnings.any?
end
|
#with_value(value) ⇒ Object
104
105
106
107
108
|
# File 'lib/cc/yaml/nodes/node.rb', line 104
def with_value(value)
node = dup
node.with_value!(value)
node
end
|