In Files

  • syck/lib/syck/types.rb

Syck::Pairs

Builtin collection: !pairs

Public Class Methods

[]( *vals ) click to toggle source
 
               # File syck/lib/syck/types.rb, line 155
def self.[]( *vals )
    p = Pairs.new
    0.step( vals.length - 1, 2 ) { |i|
        p[vals[i]] = vals[i+1]
    }
    p
end
            

Public Instance Methods

[]( k ) click to toggle source
 
               # File syck/lib/syck/types.rb, line 162
def []( k )
    self.assoc( k ).to_a
end
            
[]=( k, val ) click to toggle source
 
               # File syck/lib/syck/types.rb, line 165
def []=( k, val )
    self << [ k, val ]
    val
end
            
has_key?( k ) click to toggle source
 
               # File syck/lib/syck/types.rb, line 169
def has_key?( k )
    self.assoc( k ) ? true : false
end
            
is_complex_yaml?() click to toggle source
 
               # File syck/lib/syck/types.rb, line 172
def is_complex_yaml?
    true
end
            
to_yaml( opts = {} ) click to toggle source
 
               # File syck/lib/syck/types.rb, line 175
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 141
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 !pairs entry: " + val.inspect
            end
        end
    else
        raise Syck::Error, "Invalid !pairs: " + val.inspect
    end
    self
end