Class | YAML::Omap |
In: |
lib/yaml/types.rb
|
Parent: | ::Array |
Builtin collection: !omap
# File lib/yaml/types.rb, line 100 100: def self.[]( *vals ) 101: o = Omap.new 102: 0.step( vals.length - 1, 2 ) do |i| 103: o[vals[i]] = vals[i+1] 104: end 105: o 106: end
# File lib/yaml/types.rb, line 110 110: def []=( k, *rest ) 111: val, set = rest.reverse 112: if ( tmp = self.assoc( k ) ) and not set 113: tmp[1] = val 114: else 115: self << [ k, val ] 116: end 117: val 118: end
# File lib/yaml/types.rb, line 119 119: def has_key?( k ) 120: self.assoc( k ) ? true : false 121: end
# File lib/yaml/types.rb, line 125 125: def to_yaml( opts = {} ) 126: YAML::quick_emit( self, opts ) do |out| 127: out.seq( taguri, to_yaml_style ) do |seq| 128: self.each do |v| 129: seq.add( Hash[ *v ] ) 130: end 131: end 132: end 133: end
# File lib/yaml/types.rb, line 86 86: def yaml_initialize( tag, val ) 87: if Array === val 88: val.each do |v| 89: if Hash === v 90: concat( v.to_a ) # Convert the map to a sequence 91: else 92: raise YAML::Error, "Invalid !omap entry: " + val.inspect 93: end 94: end 95: else 96: raise YAML::Error, "Invalid !omap: " + val.inspect 97: end 98: self 99: end