Class: YAML::Omap

Class | YAML::Omap
In: | yaml/types.rb
Parent: | ::Array

Builtin collection: !omap

### Methods

[] [] []= has_key? is_complex_yaml? to_yaml yaml_initialize

### Public Class methods

[]( *vals )

[Source]

    # File yaml/types.rb, line 102
            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 )

[Source]

    # File yaml/types.rb, line 109
            def []( k )
                self.assoc( k ).to_a[1]
            end

[]=( k, *rest )

[Source]

    # File yaml/types.rb, line 112
            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 )

[Source]

    # File yaml/types.rb, line 121
            def has_key?( k )
                self.assoc( k ) ? true : false
            end

is_complex_yaml?()

[Source]

    # File yaml/types.rb, line 124
            def is_complex_yaml?
                true
            end

to_yaml( opts = {} )

[Source]

    # File yaml/types.rb, line 127
            def to_yaml( opts = {} )
                YAML::quick_emit( self.object_id, 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 )

[Source]

    # File yaml/types.rb, line 88
            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

[Validate]