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).
44 45 46 47 48 49 50 51 52 |
# File 'lib/psychgus/styled_tree_builder.rb', line 44 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.
30 31 32 |
# File 'lib/psychgus/styled_tree_builder.rb', line 30 def deref_aliases @deref_aliases end |
#sniffer ⇒ SuperSniffer (readonly)
Returns the Psychgus::SuperSniffer being used to sniff the YAML nodes, level, etc.
34 35 36 |
# File 'lib/psychgus/styled_tree_builder.rb', line 34 def sniffer @sniffer end |
#stylers ⇒ Array<Stylers> (readonly)
Returns the Psychgus::Styler(s) being used to style the YAML nodes.
37 38 39 |
# File 'lib/psychgus/styled_tree_builder.rb', line 37 def stylers @stylers end |
Instance Method Details
#add_styler(*stylers) ⇒ self
Add Psychgus::Styler(s) onto the end of the data structure.
59 60 61 62 63 |
# File 'lib/psychgus/styled_tree_builder.rb', line 59 def add_styler(*stylers) @stylers.push(*stylers) return self end |
#alias ⇒ Psych::Nodes::Alias
Calls super, styler(s), and sniffer.
73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/psychgus/styled_tree_builder.rb', line 73 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.
90 91 92 93 94 95 96 |
# File 'lib/psychgus/styled_tree_builder.rb', line 90 def end_document(*) result = super @sniffer.end_document return result end |
#end_mapping ⇒ Object
Calls super and sniffer.
102 103 104 105 106 107 108 |
# File 'lib/psychgus/styled_tree_builder.rb', line 102 def end_mapping(*) result = super @sniffer.end_mapping return result end |
#end_sequence ⇒ Object
Calls super and sniffer.
114 115 116 117 118 119 120 |
# File 'lib/psychgus/styled_tree_builder.rb', line 114 def end_sequence(*) result = super @sniffer.end_sequence return result end |
#end_stream ⇒ Object
Calls super and sniffer.
126 127 128 129 130 131 132 |
# File 'lib/psychgus/styled_tree_builder.rb', line 126 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.
139 140 141 142 143 |
# File 'lib/psychgus/styled_tree_builder.rb', line 139 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.
150 151 152 153 154 155 |
# File 'lib/psychgus/styled_tree_builder.rb', line 150 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.
165 166 167 |
# File 'lib/psychgus/styled_tree_builder.rb', line 165 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.
174 175 176 |
# File 'lib/psychgus/styled_tree_builder.rb', line 174 def remove_styler_at(index) return @stylers.delete_at(index) end |
#scalar ⇒ Psych::Nodes::Scalar
Calls super, styler(s), and sniffer.
186 187 188 189 190 191 192 193 194 195 196 197 |
# File 'lib/psychgus/styled_tree_builder.rb', line 186 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.
207 208 209 210 211 212 213 214 215 216 217 218 |
# File 'lib/psychgus/styled_tree_builder.rb', line 207 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.
228 229 230 231 232 233 234 235 236 237 238 239 |
# File 'lib/psychgus/styled_tree_builder.rb', line 228 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.
249 250 251 252 253 254 255 256 257 258 259 260 |
# File 'lib/psychgus/styled_tree_builder.rb', line 249 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.
270 271 272 273 274 275 276 277 278 279 280 281 |
# File 'lib/psychgus/styled_tree_builder.rb', line 270 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 |