Syck::Omap

Builtin collection: !omap

Public Class Methods

[]( *vals ) click to toggle source
 
               # File syck/lib/syck/types.rb, line 100
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 syck/lib/syck/types.rb, line 107
def []( k )
    self.assoc( k ).to_a[1]
end
            
[]=( k, *rest ) click to toggle source
 
               # File syck/lib/syck/types.rb, line 110
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 syck/lib/syck/types.rb, line 119
def has_key?( k )
    self.assoc( k ) ? true : false
end
            
is_complex_yaml?() click to toggle source
 
               # File syck/lib/syck/types.rb, line 122
def is_complex_yaml?
    true
end
            
to_yaml( opts = {} ) click to toggle source
 
               # File syck/lib/syck/types.rb, line 125
def to_yaml( opts = {} )
    Syck.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 syck/lib/syck/types.rb, line 86
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 Syck::Error, "Invalid !omap entry: " + val.inspect
            end
        end
    else
        raise Syck::Error, "Invalid !omap: " + val.inspect
    end
    self
end
            

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

If you are posting code samples in your comments, please wrap them in "<pre><code class="ruby" > ... </code></pre>" markup in order to get syntax highlighting.

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 a bug report so that it can be corrected for the next release. Thank you.

blog comments powered by Disqus