In Files

  • yaml/types.rb

YAML::Omap

Builtin collection: !omap

Public Class Methods

[]( *vals ) click to toggle source
 
               # File yaml/types.rb, line 99
def self.[]( *vals )
    o = Omap.new
    0.step( vals.length - 1, 2 ) do |i|
        o[vals[i]] = vals[i+1]
    end
    o
end
            

Public Instance Methods

[]( k ) click to toggle source
 
               # File yaml/types.rb, line 106
def []( k )
    self.assoc( k ).to_a[1]
end
            
[]=( k, *rest ) click to toggle source
 
               # File yaml/types.rb, line 109
def []=( k, *rest )
    val, set = rest.reverse
    if ( tmp = self.assoc( k ) ) and not set
        tmp[1] = val
    else
        self << [ k, val ] 
    end
    val
end
            
has_key?( k ) click to toggle source
 
               # File yaml/types.rb, line 118
def has_key?( k )
    self.assoc( k ) ? true : false
end
            
is_complex_yaml?() click to toggle source
 
               # File yaml/types.rb, line 121
def is_complex_yaml?
    true
end
            
to_yaml( opts = {} ) click to toggle source
 
               # File yaml/types.rb, line 124
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 85
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 !omap entry: " + val.inspect
            end
        end
    else
        raise YAML::Error, "Invalid !omap: " + val.inspect
    end
    self
end