Class: OrderedHash
- Inherits:
-
Object
show all
- Includes:
- Enumerable
- Defined in:
- lib/poolparty/core/ordered_hash.rb
Instance Method Summary
collapse
Constructor Details
Returns a new instance of OrderedHash.
8
9
10
11
|
# File 'lib/poolparty/core/ordered_hash.rb', line 8
def initialize
@h = {}
@a = []
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(*args) ⇒ Object
68
69
70
|
# File 'lib/poolparty/core/ordered_hash.rb', line 68
def method_missing(*args)
@h.send(*args)
end
|
Instance Method Details
12
13
14
|
# File 'lib/poolparty/core/ordered_hash.rb', line 12
def [](k)
@h[k]
end
|
#[]=(k, v) ⇒ Object
15
16
17
18
|
# File 'lib/poolparty/core/ordered_hash.rb', line 15
def []=(k,v)
@a << k unless @h.has_key?(k)
@h[k] = v
end
|
50
51
52
53
|
# File 'lib/poolparty/core/ordered_hash.rb', line 50
def clear
@a.clear
@h.clear
end
|
#delete(k, &block) ⇒ Object
54
55
56
57
|
# File 'lib/poolparty/core/ordered_hash.rb', line 54
def delete(k, &block)
@a.delete k
@h.delete(k, &block)
end
|
#delete_if(&block) ⇒ Object
64
65
66
67
|
# File 'lib/poolparty/core/ordered_hash.rb', line 64
def delete_if(&block)
reject!(&block)
self
end
|
39
40
41
|
# File 'lib/poolparty/core/ordered_hash.rb', line 39
def each
@a.each { |k| yield k,@h[k] }
end
|
47
48
49
|
# File 'lib/poolparty/core/ordered_hash.rb', line 47
def each_key
@a.each {|k| yield k}
end
|
#each_value ⇒ Object
TODO: Need specs below here
44
45
46
|
# File 'lib/poolparty/core/ordered_hash.rb', line 44
def each_value
@a.each {|k| yield(@h[k])}
end
|
#has_key?(k) ⇒ Boolean
27
28
29
|
# File 'lib/poolparty/core/ordered_hash.rb', line 27
def has_key?(k)
end
|
24
25
26
|
# File 'lib/poolparty/core/ordered_hash.rb', line 24
def keys
map {|k,v| k }
end
|
#merge(o = {}) ⇒ Object
19
20
21
22
23
|
# File 'lib/poolparty/core/ordered_hash.rb', line 19
def merge(o={})
na = dup
o.each {|k,v| na[k] = v }
na
end
|
#merge!(o = {}) ⇒ Object
36
37
38
|
# File 'lib/poolparty/core/ordered_hash.rb', line 36
def merge!(o={})
o.each {|k,v| self[k] = v }
end
|
58
59
60
61
62
63
|
# File 'lib/poolparty/core/ordered_hash.rb', line 58
def reject!
del = []
each_pair {|k,v| del << k if yield k,v}
del.each {|k| delete k}
del.empty? ? nil : self
end
|
33
34
35
|
# File 'lib/poolparty/core/ordered_hash.rb', line 33
def size
@h.size
end
|
74
75
76
|
# File 'lib/poolparty/core/ordered_hash.rb', line 74
def to_h
self
end
|
71
72
73
|
# File 'lib/poolparty/core/ordered_hash.rb', line 71
def to_hash
self
end
|
77
78
79
80
|
# File 'lib/poolparty/core/ordered_hash.rb', line 77
def to_json
"{#{collect{|k, v| "\"#{k.to_s}\":#{v.to_json}"}.join(',')}}"
end
|
30
31
32
|
# File 'lib/poolparty/core/ordered_hash.rb', line 30
def values
map {|k,v| v }
end
|