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