Parent

SafeYAML::PsychHandler

Public Class Methods

new(options) click to toggle source
# File lib/safe_yaml/psych_handler.rb, line 6
def initialize(options)
  @options      = SafeYAML::OPTIONS.merge(options || {})
  @initializers = @options[:custom_initializers] || {}
  @anchors      = {}
  @stack        = []
  @current_key  = nil
  @result       = nil
end

Public Instance Methods

add_to_current_structure(value, anchor=nil, quoted=nil, tag=nil) click to toggle source
# File 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, @options)

  @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) click to toggle source

event handlers

# File lib/safe_yaml/psych_handler.rb, line 62
def alias(anchor)
  add_to_current_structure(@anchors[anchor])
end
end_current_structure() click to toggle source
# File lib/safe_yaml/psych_handler.rb, line 52
def end_current_structure
  @stack.pop
  @current_structure = @stack.last
end
end_mapping() click to toggle source
# File lib/safe_yaml/psych_handler.rb, line 77
def end_mapping
  self.end_current_structure()
end
end_sequence() click to toggle source
# File lib/safe_yaml/psych_handler.rb, line 88
def end_sequence
  self.end_current_structure()
end
result() click to toggle source
# File lib/safe_yaml/psych_handler.rb, line 15
def result
  @result
end
scalar(value, anchor, tag, plain, quoted, style) click to toggle source
# File 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) click to toggle source
# File 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) click to toggle source
# File 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?() click to toggle source
# File lib/safe_yaml/psych_handler.rb, line 57
def streaming?
  false
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.