Class: YAML::Omap
- Inherits:
-
Array
show all
- Defined in:
- lib/yaml/types.rb
Overview
Builtin collection: !omap
Class Method Summary
(collapse)
Instance Method Summary
(collapse)
Methods inherited from Array
#abbrev, #dclone, #pretty_print, #pretty_print_cycle, #quote, #shelljoin, #to_csv
Class Method Details
+ (Object) [](*vals)
100
101
102
103
104
105
106
|
# File 'lib/yaml/types.rb', line 100
def self.[]( *vals )
o = Omap.new
0.step( vals.length - 1, 2 ) do |i|
o[vals[i]] = vals[i+1]
end
o
end
|
Instance Method Details
107
108
109
|
# File 'lib/yaml/types.rb', line 107
def []( k )
self.assoc( k ).to_a[1]
end
|
- (Object) []=(k, *rest)
110
111
112
113
114
115
116
117
118
|
# File 'lib/yaml/types.rb', line 110
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
|
- (Boolean) has_key?(k)
119
120
121
|
# File 'lib/yaml/types.rb', line 119
def has_key?( k )
self.assoc( k ) ? true : false
end
|
- (Boolean) is_complex_yaml?
122
123
124
|
# File 'lib/yaml/types.rb', line 122
def is_complex_yaml?
true
end
|
- (Object) to_yaml(opts = {})
125
126
127
128
129
130
131
132
133
|
# File 'lib/yaml/types.rb', line 125
def to_yaml( opts = {} )
YAML::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
|
- (Object) yaml_initialize(tag, val)
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
# File 'lib/yaml/types.rb', line 86
def yaml_initialize( tag, val )
if Array === val
val.each do |v|
if Hash === v
concat( v.to_a ) else
raise YAML::Error, "Invalid !omap entry: " + val.inspect
end
end
else
raise YAML::Error, "Invalid !omap: " + val.inspect
end
self
end
|