Class YAML::Pairs
In: yaml/types.rb
Parent: ::Array

Builtin collection: !pairs

Methods

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

Public Class methods

[Source]

# File yaml/types.rb, line 157
        def self.[]( *vals )
            p = Pairs.new
            0.step( vals.length - 1, 2 ) { |i|
                p[vals[i]] = vals[i+1]
            }
            p
        end

Public Instance methods

[Source]

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

[Source]

# File yaml/types.rb, line 167
        def []=( k, val )
            self << [ k, val ] 
            val
        end

[Source]

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

[Source]

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

[Source]

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

[Source]

# File yaml/types.rb, line 143
        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 !pairs entry: " + val.inspect
                    end
                end
            else
                raise YAML::Error, "Invalid !pairs: " + val.inspect
            end
            self
        end

[Validate]