Class YAML::DBM
In: lib/yaml/dbm.rb
Parent: ::DBM

Methods

[]   []=   delete   delete_if   each   each_pair   each_value   fetch   has_value?   index   invert   reject   replace   select   shift   store   to_a   to_hash   update   values   values_at  

Constants

VERSION = "0.1"

Public Instance methods

[Source]

    # File lib/yaml/dbm.rb, line 11
11:     def []( key )
12:         fetch( key )
13:     end

[Source]

    # File lib/yaml/dbm.rb, line 14
14:     def []=( key, val )
15:         store( key, val )
16:     end

[Source]

    # 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

[Source]

    # 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
each()

Alias for each_pair

[Source]

    # File lib/yaml/dbm.rb, line 52
52:     def each_pair
53:         keys.each { |k| yield k, fetch( k ) }
54:         self
55:     end

[Source]

    # File lib/yaml/dbm.rb, line 56
56:     def each_value
57:         super { |v| yield YAML::load( v ) }
58:         self
59:     end

[Source]

    # 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

[Source]

    # 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

[Source]

    # File lib/yaml/dbm.rb, line 29
29:     def index( keystr )
30:         super( keystr.to_yaml )
31:     end

[Source]

    # 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

[Source]

    # 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

[Source]

    # File lib/yaml/dbm.rb, line 72
72:     def replace( hsh )
73:         clear
74:         update( hsh )
75:     end

[Source]

    # 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

[Source]

    # 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

[Source]

    # File lib/yaml/dbm.rb, line 88
88:     def store( key, val )
89:         super( key, val.to_yaml )
90:         val
91:     end

[Source]

     # 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

[Source]

     # 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

[Source]

    # 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

[Source]

    # File lib/yaml/dbm.rb, line 60
60:     def values
61:         super.collect { |v| YAML::load( v ) }
62:     end

[Source]

    # File lib/yaml/dbm.rb, line 32
32:     def values_at( *keys )
33:         keys.collect { |k| fetch( k ) }
34:     end

[Validate]