Class: Psychgus::StyledTreeBuilder
- Inherits:
-
Psych::TreeBuilder
- Object
- Psych::TreeBuilder
- Psychgus::StyledTreeBuilder
- Defined in:
- lib/psychgus/styled_tree_builder.rb
Overview
Use this wherever Psych::TreeBuilder would have been used, to enable styling.
Direct Known Subclasses
Instance Attribute Summary collapse
-
#deref_aliases ⇒ true, false
(also: #deref_aliases?)
Whether to dereference aliases; output the actual value instead of the alias.
-
#sniffer ⇒ SuperSniffer
readonly
The SuperSniffer being used to sniff the YAML nodes, level, etc.
-
#stylers ⇒ Array<Stylers>
readonly
The Styler(s) being used to style the YAML nodes.
Instance Method Summary collapse
-
#add_styler(*stylers) ⇒ self
Add Styler(s) onto the end of the data structure.
-
#alias ⇒ Psych::Nodes::Alias
Calls super, styler(s), and sniffer.
-
#end_document ⇒ Object
Calls super and sniffer.
-
#end_mapping ⇒ Object
Calls super and sniffer.
-
#end_sequence ⇒ Object
Calls super and sniffer.
-
#end_stream ⇒ Object
Calls super and sniffer.
-
#initialize(*stylers, deref_aliases: false, **options) ⇒ StyledTreeBuilder
constructor
Initialize this class with Styler(s).
-
#insert_styler(index, *stylers) ⇒ self
Insert Styler(s) at
index
into the data structure. -
#pop_styler(count = 1) ⇒ Styler, ...
Remove the last Styler(s) from the data structure.
-
#remove_styler(styler, &block) ⇒ Styler?
Remove the Styler that matches
styler
from the data structure. -
#remove_styler_at(index) ⇒ Styler?
Remove the Styler at
index
from the data structure. -
#scalar ⇒ Psych::Nodes::Scalar
Calls super, styler(s), and sniffer.
-
#start_document ⇒ Psych::Nodes::Document
Calls super, styler(s), and sniffer.
-
#start_mapping ⇒ Psych::Nodes::Mapping
Calls super, styler(s), and sniffer.
-
#start_sequence ⇒ Psych::Nodes::Sequence
Calls super, styler(s), and sniffer.
-
#start_stream ⇒ Psych::Nodes::Stream
Calls super, styler(s), and sniffer.
Constructor Details
#initialize(*stylers, deref_aliases: false, **options) ⇒ StyledTreeBuilder
Initialize this class with Psychgus::Styler(s).
55 56 57 58 59 60 61 62 63 |
# File 'lib/psychgus/styled_tree_builder.rb', line 55 def initialize(*stylers,deref_aliases: false,**) super() @deref_aliases = deref_aliases @sniffer = SuperSniffer.new() @stylers = [] add_styler(*stylers) end |
Instance Attribute Details
#deref_aliases ⇒ true, false Also known as: deref_aliases?
Returns whether to dereference aliases; output the actual value instead of the alias.
41 42 43 |
# File 'lib/psychgus/styled_tree_builder.rb', line 41 def deref_aliases @deref_aliases end |
#sniffer ⇒ SuperSniffer (readonly)
Returns the Psychgus::SuperSniffer being used to sniff the YAML nodes, level, etc.
45 46 47 |
# File 'lib/psychgus/styled_tree_builder.rb', line 45 def sniffer @sniffer end |
#stylers ⇒ Array<Stylers> (readonly)
Returns the Psychgus::Styler(s) being used to style the YAML nodes.
48 49 50 |
# File 'lib/psychgus/styled_tree_builder.rb', line 48 def stylers @stylers end |
Instance Method Details
#add_styler(*stylers) ⇒ self
Add Psychgus::Styler(s) onto the end of the data structure.
70 71 72 73 74 |
# File 'lib/psychgus/styled_tree_builder.rb', line 70 def add_styler(*stylers) @stylers.push(*stylers) return self end |
#alias ⇒ Psych::Nodes::Alias
Calls super, styler(s), and sniffer.
84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/psychgus/styled_tree_builder.rb', line 84 def alias(*) node = super @stylers.each do |styler| styler.style(sniffer,node) styler.style_alias(sniffer,node) end @sniffer.add_alias(node) return node end |
#end_document ⇒ Object
Calls super and sniffer.
101 102 103 104 105 106 107 |
# File 'lib/psychgus/styled_tree_builder.rb', line 101 def end_document(*) result = super @sniffer.end_document() return result end |
#end_mapping ⇒ Object
Calls super and sniffer.
113 114 115 116 117 118 119 |
# File 'lib/psychgus/styled_tree_builder.rb', line 113 def end_mapping(*) result = super @sniffer.end_mapping() return result end |
#end_sequence ⇒ Object
Calls super and sniffer.
125 126 127 128 129 130 131 |
# File 'lib/psychgus/styled_tree_builder.rb', line 125 def end_sequence(*) result = super @sniffer.end_sequence() return result end |
#end_stream ⇒ Object
Calls super and sniffer.
137 138 139 140 141 142 143 |
# File 'lib/psychgus/styled_tree_builder.rb', line 137 def end_stream(*) result = super @sniffer.end_stream() return result end |
#insert_styler(index, *stylers) ⇒ self
Insert Psychgus::Styler(s) at index
into the data structure.
150 151 152 153 154 |
# File 'lib/psychgus/styled_tree_builder.rb', line 150 def insert_styler(index,*stylers) @stylers.insert(index,*stylers) return self end |
#pop_styler(count = 1) ⇒ Styler, ...
Remove the last Psychgus::Styler(s) from the data structure.
161 162 163 164 165 166 |
# File 'lib/psychgus/styled_tree_builder.rb', line 161 def pop_styler(count=1) return nil if count == 0 return @stylers.pop() if count == 1 return @stylers.pop(count) end |
#remove_styler(styler, &block) ⇒ Styler?
Remove the Psychgus::Styler that matches styler
from the data structure.
An optional block
can return a default value if not found.
176 177 178 |
# File 'lib/psychgus/styled_tree_builder.rb', line 176 def remove_styler(styler,&block) return @stylers.delete(styler,&block) end |
#remove_styler_at(index) ⇒ Styler?
Remove the Psychgus::Styler at index
from the data structure.
185 186 187 |
# File 'lib/psychgus/styled_tree_builder.rb', line 185 def remove_styler_at(index) return @stylers.delete_at(index) end |
#scalar ⇒ Psych::Nodes::Scalar
Calls super, styler(s), and sniffer.
197 198 199 200 201 202 203 204 205 206 207 208 |
# File 'lib/psychgus/styled_tree_builder.rb', line 197 def scalar(*) node = super @stylers.each do |styler| styler.style(sniffer,node) styler.style_scalar(sniffer,node) end @sniffer.add_scalar(node) return node end |
#start_document ⇒ Psych::Nodes::Document
Calls super, styler(s), and sniffer.
218 219 220 221 222 223 224 225 226 227 228 229 |
# File 'lib/psychgus/styled_tree_builder.rb', line 218 def start_document(*) node = super @stylers.each do |styler| styler.style(sniffer,node) styler.style_document(sniffer,node) end @sniffer.start_document(node) return node end |
#start_mapping ⇒ Psych::Nodes::Mapping
Calls super, styler(s), and sniffer.
239 240 241 242 243 244 245 246 247 248 249 250 |
# File 'lib/psychgus/styled_tree_builder.rb', line 239 def start_mapping(*) node = super @stylers.each do |styler| styler.style(sniffer,node) styler.style_mapping(sniffer,node) end @sniffer.start_mapping(node) return node end |
#start_sequence ⇒ Psych::Nodes::Sequence
Calls super, styler(s), and sniffer.
260 261 262 263 264 265 266 267 268 269 270 271 |
# File 'lib/psychgus/styled_tree_builder.rb', line 260 def start_sequence(*) node = super @stylers.each do |styler| styler.style(sniffer,node) styler.style_sequence(sniffer,node) end @sniffer.start_sequence(node) return node end |
#start_stream ⇒ Psych::Nodes::Stream
Calls super, styler(s), and sniffer.
281 282 283 284 285 286 287 288 289 290 291 292 |
# File 'lib/psychgus/styled_tree_builder.rb', line 281 def start_stream(*) node = super @stylers.each do |styler| styler.style(sniffer,node) styler.style_stream(sniffer,node) end @sniffer.start_stream(node) return node end |