Class: SafeYAML::PsychHandler
- Defined in:
- lib/puppet/vendor/safe_yaml/lib/safe_yaml/psych_handler.rb
Instance Method Summary collapse
- #add_to_current_structure(value, anchor = nil, quoted = nil, tag = nil) ⇒ Object
-
#alias(anchor) ⇒ Object
event handlers.
- #end_current_structure ⇒ Object
- #end_mapping ⇒ Object
- #end_sequence ⇒ Object
-
#initialize(options) ⇒ PsychHandler
constructor
A new instance of PsychHandler.
- #result ⇒ Object
- #scalar(value, anchor, tag, plain, quoted, style) ⇒ Object
- #start_mapping(anchor, tag, implicit, style) ⇒ Object
- #start_sequence(anchor, tag, implicit, style) ⇒ Object
- #streaming? ⇒ Boolean
Constructor Details
#initialize(options) ⇒ PsychHandler
Returns a new instance of PsychHandler.
6 7 8 9 10 11 12 13 |
# File 'lib/puppet/vendor/safe_yaml/lib/safe_yaml/psych_handler.rb', line 6 def initialize() = SafeYAML::OPTIONS.merge( || {}) @initializers = [:custom_initializers] || {} @anchors = {} @stack = [] @current_key = nil @result = nil end |
Instance Method Details
#add_to_current_structure(value, anchor = nil, quoted = nil, tag = nil) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/puppet/vendor/safe_yaml/lib/safe_yaml/psych_handler.rb', line 19 def add_to_current_structure(value, anchor=nil, quoted=nil, tag=nil) value = Transform.to_proper_type(value, quoted, tag, ) @anchors[anchor] = value if anchor if @result.nil? @result = value @current_structure = @result return end if @current_structure.respond_to?(:<<) @current_structure << value elsif @current_structure.respond_to?(:[]=) if @current_key.nil? @current_key = value else if @current_key == "<<" @current_structure.merge!(value) else @current_structure[@current_key] = value end @current_key = nil end else raise "Don't know how to add to a #{@current_structure.class}!" end end |
#alias(anchor) ⇒ Object
event handlers
62 63 64 |
# File 'lib/puppet/vendor/safe_yaml/lib/safe_yaml/psych_handler.rb', line 62 def alias(anchor) add_to_current_structure(@anchors[anchor]) end |
#end_current_structure ⇒ Object
52 53 54 55 |
# File 'lib/puppet/vendor/safe_yaml/lib/safe_yaml/psych_handler.rb', line 52 def end_current_structure @stack.pop @current_structure = @stack.last end |
#end_mapping ⇒ Object
77 78 79 |
# File 'lib/puppet/vendor/safe_yaml/lib/safe_yaml/psych_handler.rb', line 77 def end_mapping self.end_current_structure() end |
#end_sequence ⇒ Object
88 89 90 |
# File 'lib/puppet/vendor/safe_yaml/lib/safe_yaml/psych_handler.rb', line 88 def end_sequence self.end_current_structure() end |
#result ⇒ Object
15 16 17 |
# File 'lib/puppet/vendor/safe_yaml/lib/safe_yaml/psych_handler.rb', line 15 def result @result end |
#scalar(value, anchor, tag, plain, quoted, style) ⇒ Object
66 67 68 |
# File 'lib/puppet/vendor/safe_yaml/lib/safe_yaml/psych_handler.rb', line 66 def scalar(value, anchor, tag, plain, quoted, style) add_to_current_structure(value, anchor, quoted, tag) end |
#start_mapping(anchor, tag, implicit, style) ⇒ Object
70 71 72 73 74 75 |
# File 'lib/puppet/vendor/safe_yaml/lib/safe_yaml/psych_handler.rb', line 70 def start_mapping(anchor, tag, implicit, style) map = @initializers.include?(tag) ? @initializers[tag].call : {} self.add_to_current_structure(map, anchor) @current_structure = map @stack.push(map) end |
#start_sequence(anchor, tag, implicit, style) ⇒ Object
81 82 83 84 85 86 |
# File 'lib/puppet/vendor/safe_yaml/lib/safe_yaml/psych_handler.rb', line 81 def start_sequence(anchor, tag, implicit, style) seq = @initializers.include?(tag) ? @initializers[tag].call : [] self.add_to_current_structure(seq, anchor) @current_structure = seq @stack.push(seq) end |
#streaming? ⇒ Boolean
57 58 59 |
# File 'lib/puppet/vendor/safe_yaml/lib/safe_yaml/psych_handler.rb', line 57 def streaming? false end |