Class: BitBucket::CoreExt::OrderedHash
- Inherits:
-
Hash
- Object
- Hash
- BitBucket::CoreExt::OrderedHash
show all
- Defined in:
- lib/bitbucket_rest_api/core_ext/ordered_hash.rb,
lib/bitbucket_rest_api/core_ext/ordered_hash.rb
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Hash
#all_keys, #except, #except!, #has_deep_key?, #serialize, #symbolize_keys, #symbolize_keys!
Constructor Details
#initialize(*args, &block) ⇒ OrderedHash
Returns a new instance of OrderedHash.
30
31
32
33
|
# File 'lib/bitbucket_rest_api/core_ext/ordered_hash.rb', line 30
def initialize(*args, &block)
super
@order = []
end
|
Instance Attribute Details
#order ⇒ Object
Returns the value of attribute order.
10
11
12
|
# File 'lib/bitbucket_rest_api/core_ext/ordered_hash.rb', line 10
def order
@order
end
|
Class Method Details
.[](*args) ⇒ Object
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# File 'lib/bitbucket_rest_api/core_ext/ordered_hash.rb', line 13
def [](*args)
hsh = OrderedHash.new
if Hash == args[0]
hsh.replace args[0]
elsif (args.size % 2) != 0
pp args
raise ArgumentError, "odd number of elements for Hash"
else
0.step(args.size - 1, 2) do |a|
b = a + 1
hsh[args[a]] = args[b]
end
end
hsh
end
|
Instance Method Details
#==(hsh2) ⇒ Object
40
41
42
43
|
# File 'lib/bitbucket_rest_api/core_ext/ordered_hash.rb', line 40
def ==(hsh2)
return false if @order != hsh2.order
super hsh2
end
|
#[]=(key, value) ⇒ Object
35
36
37
38
|
# File 'lib/bitbucket_rest_api/core_ext/ordered_hash.rb', line 35
def []=(key, value)
@order.push key unless member?(key)
super key, value
end
|
#__class__ ⇒ Object
100
101
102
|
# File 'lib/bitbucket_rest_api/core_ext/ordered_hash.rb', line 100
def __class__
OrderedHash
end
|
#class ⇒ Object
96
97
98
|
# File 'lib/bitbucket_rest_api/core_ext/ordered_hash.rb', line 96
def class
Hash
end
|
#clear ⇒ Object
45
46
47
48
|
# File 'lib/bitbucket_rest_api/core_ext/ordered_hash.rb', line 45
def clear
@order = []
super
end
|
#delete(key) ⇒ Object
50
51
52
53
|
# File 'lib/bitbucket_rest_api/core_ext/ordered_hash.rb', line 50
def delete(key)
@order.delete key
super
end
|
#delete_if ⇒ Object
71
72
73
74
|
# File 'lib/bitbucket_rest_api/core_ext/ordered_hash.rb', line 71
def delete_if
@order.clone.each { |k| delete k if yield }
self
end
|
#each ⇒ Object
Also known as:
each_pair
65
66
67
68
|
# File 'lib/bitbucket_rest_api/core_ext/ordered_hash.rb', line 65
def each
@order.each { |k| yield k, self[k] }
self
end
|
#each_key ⇒ Object
55
56
57
58
|
# File 'lib/bitbucket_rest_api/core_ext/ordered_hash.rb', line 55
def each_key
@order.each { |k| yield k }
self
end
|
#each_value ⇒ Object
60
61
62
63
|
# File 'lib/bitbucket_rest_api/core_ext/ordered_hash.rb', line 60
def each_value
@order.each { |k| yield self[k] }
self
end
|
#keys ⇒ Object
82
83
84
|
# File 'lib/bitbucket_rest_api/core_ext/ordered_hash.rb', line 82
def keys
@order
end
|
#replace(hsh2) ⇒ Object
86
87
88
89
|
# File 'lib/bitbucket_rest_api/core_ext/ordered_hash.rb', line 86
def replace(hsh2)
@order = hsh2.keys
super hsh2
end
|
#shift ⇒ Object
91
92
93
94
|
# File 'lib/bitbucket_rest_api/core_ext/ordered_hash.rb', line 91
def shift
key = @order.first
key ? [key, delete(key)] : super
end
|
#values ⇒ Object
76
77
78
79
80
|
# File 'lib/bitbucket_rest_api/core_ext/ordered_hash.rb', line 76
def values
ary = []
@order.each { |k| ary.push self[k] }
ary
end
|