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