In Files

  • yaml/types.rb

YAML::Pairs

Builtin collection: !pairs

Public Class Methods

[]( *vals ) click to toggle source
 
               # File yaml/types.rb, line 154
def self.[]( *vals )
    p = Pairs.new
    0.step( vals.length - 1, 2 ) { |i|
        p[vals[i]] = vals[i+1]
    }
    p
end
            

Public Instance Methods

[]( k ) click to toggle source
 
               # File yaml/types.rb, line 161
def []( k )
    self.assoc( k ).to_a
end
            
[]=( k, val ) click to toggle source
 
               # File yaml/types.rb, line 164
def []=( k, val )
    self << [ k, val ] 
    val
end
            
has_key?( k ) click to toggle source
 
               # File yaml/types.rb, line 168
def has_key?( k )
    self.assoc( k ) ? true : false
end
            
is_complex_yaml?() click to toggle source
 
               # File yaml/types.rb, line 171
def is_complex_yaml?
    true
end
            
to_yaml( opts = {} ) click to toggle source
 
               # File yaml/types.rb, line 174
def to_yaml( opts = {} )
    YAML::quick_emit( self, opts ) do |out|
        out.seq( taguri, to_yaml_style ) do |seq|
            self.each do |v|
                seq.add( Hash[ *v ] )
            end
        end
    end
end
            
yaml_initialize( tag, val ) click to toggle source
 
               # File yaml/types.rb, line 140
def yaml_initialize( tag, val )
    if Array === val
        val.each do |v|
            if Hash === v
                concat( v.to_a )                # Convert the map to a sequence
            else
                raise YAML::Error, "Invalid !pairs entry: " + val.inspect
            end
        end
    else
        raise YAML::Error, "Invalid !pairs: " + val.inspect
    end
    self
end