class Syck::Omap - syck-1.3.0 Documentation

# class Syck::Omap

Builtin collection: !omap

### Public Class Methods

[]( *vals ) click to toggle source

    # File lib/syck/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 lib/syck/types.rb, line 106
    def []( k )
        self.assoc( k ).to_a[1]
    end

[]=( k, *rest ) click to toggle source

    # File lib/syck/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 lib/syck/types.rb, line 118
    def has_key?( k )
        self.assoc( k ) ? true : false
    end

is_complex_yaml?() click to toggle source

    # File lib/syck/types.rb, line 121
    def is_complex_yaml?
        true
    end

to_yaml( opts = {} ) click to toggle source

    # File lib/syck/types.rb, line 124
    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 lib/syck/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 ::Syck::Error, "Invalid !omap entry: " + val.inspect
                end
            end
        else
            raise ::Syck::Error, "Invalid !omap: " + val.inspect
        end
        self
    end