| Class | YAML::DBM |
| In: |
lib/yaml/dbm.rb
|
| Parent: | ::DBM |
| VERSION | = | "0.1" |
# File lib/yaml/dbm.rb, line 35
35: def delete( key )
36: v = super( key )
37: if String === v
38: v = YAML::load( v )
39: end
40: v
41: end
# File lib/yaml/dbm.rb, line 42
42: def delete_if
43: del_keys = keys.dup
44: del_keys.delete_if { |k| yield( k, fetch( k ) ) == false }
45: del_keys.each { |k| delete( k ) }
46: self
47: end
# File lib/yaml/dbm.rb, line 52
52: def each_pair
53: keys.each { |k| yield k, fetch( k ) }
54: self
55: end
# File lib/yaml/dbm.rb, line 56
56: def each_value
57: super { |v| yield YAML::load( v ) }
58: self
59: end
# File lib/yaml/dbm.rb, line 17
17: def fetch( keystr, ifnone = nil )
18: begin
19: val = super( keystr )
20: return YAML::load( val ) if String === val
21: rescue IndexError
22: end
23: if block_given?
24: yield keystr
25: else
26: ifnone
27: end
28: end
# File lib/yaml/dbm.rb, line 63
63: def has_value?( val )
64: each_value { |v| return true if v == val }
65: return false
66: end
# File lib/yaml/dbm.rb, line 67
67: def invert
68: h = {}
69: keys.each { |k| h[ self.fetch( k ) ] = k }
70: h
71: end
# File lib/yaml/dbm.rb, line 48
48: def reject
49: hsh = self.to_hash
50: hsh.reject { |k,v| yield k, v }
51: end
# File lib/yaml/dbm.rb, line 81
81: def select( *keys )
82: if block_given?
83: self.keys.collect { |k| v = self[k]; [k, v] if yield k, v }.compact
84: else
85: values_at( *keys )
86: end
87: end
# File lib/yaml/dbm.rb, line 76
76: def shift
77: a = super
78: a[1] = YAML::load( a[1] ) if a
79: a
80: end
# File lib/yaml/dbm.rb, line 88
88: def store( key, val )
89: super( key, val.to_yaml )
90: val
91: end
# File lib/yaml/dbm.rb, line 98
98: def to_a
99: a = []
100: keys.each { |k| a.push [ k, self.fetch( k ) ] }
101: a
102: end
# File lib/yaml/dbm.rb, line 103
103: def to_hash
104: h = {}
105: keys.each { |k| h[ k ] = self.fetch( k ) }
106: h
107: end
# File lib/yaml/dbm.rb, line 92
92: def update( hsh )
93: hsh.keys.each do |k|
94: self.store( k, hsh.fetch( k ) )
95: end
96: self
97: end