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
            

Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.

If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.

If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.

If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.

blog comments powered by Disqus