orderedhash 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/install.rb +3 -0
- data/lib/orderedautohash.rb +0 -8
- data/lib/orderedhash.rb +2 -63
- metadata +3 -3
data/install.rb
CHANGED
@@ -37,6 +37,9 @@ def install_rb(srcdir=nil, destdir=nil, mode=nil, bin=nil)
|
|
37
37
|
next if (f = f[srcdir.length+1..-1]) == nil
|
38
38
|
next if (/CVS$/ =~ File.dirname(f))
|
39
39
|
next if f =~ %r/\.lnk/
|
40
|
+
next if f =~ %r/\.svn/
|
41
|
+
next if f =~ %r/\.swp/
|
42
|
+
next if f =~ %r/\.svn/
|
40
43
|
path.push f
|
41
44
|
dir |= [File.dirname(f)]
|
42
45
|
end
|
data/lib/orderedautohash.rb
CHANGED
@@ -4,23 +4,15 @@
|
|
4
4
|
require 'orderedhash' unless defined? OrderedHash
|
5
5
|
|
6
6
|
class AutoOrderedHash < OrderedHash
|
7
|
-
#--{{{
|
8
7
|
def initialize(*args)
|
9
|
-
#--{{{
|
10
8
|
super(*args){|a,k| a[k] = __class__.new(*args)}
|
11
|
-
#--}}}
|
12
9
|
end
|
13
10
|
def class # for nice yaml
|
14
|
-
#--{{{
|
15
11
|
Hash
|
16
|
-
#--}}}
|
17
12
|
end
|
18
13
|
def __class__
|
19
|
-
#--{{{
|
20
14
|
AutoOrderedHash
|
21
|
-
#--}}}
|
22
15
|
end
|
23
|
-
#--}}}
|
24
16
|
end # class AutoOrderedHash
|
25
17
|
|
26
18
|
OrderedAutoHash = AutoOrderedHash
|
data/lib/orderedhash.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
|
1
2
|
# AUTHOR
|
2
3
|
# jan molic /mig/at/1984/dot/cz/
|
3
4
|
#
|
@@ -9,13 +10,10 @@
|
|
9
10
|
# Andrew Johnson for his suggestions and fixes of Hash[],
|
10
11
|
# merge, to_a, inspect and shift
|
11
12
|
class OrderedHash < ::Hash
|
12
|
-
#--{{{
|
13
13
|
attr_accessor :order
|
14
14
|
|
15
15
|
class << self
|
16
|
-
#--{{{
|
17
16
|
def [] *args
|
18
|
-
#--{{{
|
19
17
|
hsh = OrderedHash.new
|
20
18
|
if Hash === args[0]
|
21
19
|
hsh.replace args[0]
|
@@ -28,118 +26,81 @@ class OrderedHash < ::Hash
|
|
28
26
|
end
|
29
27
|
end
|
30
28
|
hsh
|
31
|
-
#--}}}
|
32
29
|
end
|
33
|
-
#--}}}
|
34
30
|
end
|
35
31
|
def initialize(*a, &b)
|
36
|
-
#--{{{
|
37
32
|
super
|
38
33
|
@order = []
|
39
|
-
#--}}}
|
40
34
|
end
|
41
35
|
def store_only a,b
|
42
|
-
#--{{{
|
43
36
|
store a,b
|
44
|
-
#--}}}
|
45
37
|
end
|
46
38
|
alias orig_store store
|
47
39
|
def store a,b
|
48
|
-
#--{{{
|
49
40
|
@order.push a unless has_key? a
|
50
41
|
super a,b
|
51
|
-
#--}}}
|
52
42
|
end
|
53
43
|
alias []= store
|
54
44
|
def == hsh2
|
55
|
-
#--{{{
|
56
45
|
return false if @order != hsh2.order
|
57
46
|
super hsh2
|
58
|
-
#--}}}
|
59
47
|
end
|
60
48
|
def clear
|
61
|
-
#--{{{
|
62
49
|
@order = []
|
63
50
|
super
|
64
|
-
#--}}}
|
65
51
|
end
|
66
52
|
def delete key
|
67
|
-
#--{{{
|
68
53
|
@order.delete key
|
69
54
|
super
|
70
|
-
#--}}}
|
71
55
|
end
|
72
56
|
def each_key
|
73
|
-
#--{{{
|
74
57
|
@order.each { |k| yield k }
|
75
58
|
self
|
76
|
-
#--}}}
|
77
59
|
end
|
78
60
|
def each_value
|
79
|
-
#--{{{
|
80
61
|
@order.each { |k| yield self[k] }
|
81
62
|
self
|
82
|
-
#--}}}
|
83
63
|
end
|
84
64
|
def each
|
85
|
-
#--{{{
|
86
65
|
@order.each { |k| yield k,self[k] }
|
87
66
|
self
|
88
|
-
#--}}}
|
89
67
|
end
|
90
68
|
alias each_pair each
|
91
69
|
def delete_if
|
92
|
-
#--{{{
|
93
70
|
@order.clone.each { |k|
|
94
|
-
delete k if yield
|
71
|
+
delete k if yield(k)
|
95
72
|
}
|
96
73
|
self
|
97
|
-
#--}}}
|
98
74
|
end
|
99
75
|
def values
|
100
|
-
#--{{{
|
101
76
|
ary = []
|
102
77
|
@order.each { |k| ary.push self[k] }
|
103
78
|
ary
|
104
|
-
#--}}}
|
105
79
|
end
|
106
80
|
def keys
|
107
|
-
#--{{{
|
108
81
|
@order
|
109
|
-
#--}}}
|
110
82
|
end
|
111
83
|
def invert
|
112
|
-
#--{{{
|
113
84
|
hsh2 = Hash.new
|
114
85
|
@order.each { |k| hsh2[self[k]] = k }
|
115
86
|
hsh2
|
116
|
-
#--}}}
|
117
87
|
end
|
118
88
|
def reject &block
|
119
|
-
#--{{{
|
120
89
|
self.dup.delete_if &block
|
121
|
-
#--}}}
|
122
90
|
end
|
123
91
|
def reject! &block
|
124
|
-
#--{{{
|
125
92
|
hsh2 = reject &block
|
126
93
|
self == hsh2 ? nil : hsh2
|
127
|
-
#--}}}
|
128
94
|
end
|
129
95
|
def replace hsh2
|
130
|
-
#--{{{
|
131
96
|
@order = hsh2.keys
|
132
97
|
super hsh2
|
133
|
-
#--}}}
|
134
98
|
end
|
135
99
|
def shift
|
136
|
-
#--{{{
|
137
100
|
key = @order.first
|
138
101
|
key ? [key,delete(key)] : super
|
139
|
-
#--}}}
|
140
102
|
end
|
141
103
|
def unshift k,v
|
142
|
-
#--{{{
|
143
104
|
unless self.include? k
|
144
105
|
@order.unshift k
|
145
106
|
orig_store(k,v)
|
@@ -147,10 +108,8 @@ class OrderedHash < ::Hash
|
|
147
108
|
else
|
148
109
|
false
|
149
110
|
end
|
150
|
-
#--}}}
|
151
111
|
end
|
152
112
|
def push k,v
|
153
|
-
#--{{{
|
154
113
|
unless self.include? k
|
155
114
|
@order.push k
|
156
115
|
orig_store(k,v)
|
@@ -158,61 +117,42 @@ class OrderedHash < ::Hash
|
|
158
117
|
else
|
159
118
|
false
|
160
119
|
end
|
161
|
-
#--}}}
|
162
120
|
end
|
163
121
|
def pop
|
164
|
-
#--{{{
|
165
122
|
key = @order.last
|
166
123
|
key ? [key,delete(key)] : nil
|
167
|
-
#--}}}
|
168
124
|
end
|
169
125
|
def to_a
|
170
|
-
#--{{{
|
171
126
|
ary = []
|
172
127
|
each { |k,v| ary << [k,v] }
|
173
128
|
ary
|
174
|
-
#--}}}
|
175
129
|
end
|
176
130
|
def to_s
|
177
|
-
#--{{{
|
178
131
|
self.to_a.to_s
|
179
|
-
#--}}}
|
180
132
|
end
|
181
133
|
def inspect
|
182
|
-
#--{{{
|
183
134
|
ary = []
|
184
135
|
each {|k,v| ary << k.inspect + "=>" + v.inspect}
|
185
136
|
'{' + ary.join(", ") + '}'
|
186
|
-
#--}}}
|
187
137
|
end
|
188
138
|
def update hsh2
|
189
|
-
#--{{{
|
190
139
|
hsh2.each { |k,v| self[k] = v }
|
191
140
|
self
|
192
|
-
#--}}}
|
193
141
|
end
|
194
142
|
alias :merge! update
|
195
143
|
def merge hsh2
|
196
|
-
#--{{{
|
197
144
|
self.dup update(hsh2)
|
198
|
-
#--}}}
|
199
145
|
end
|
200
146
|
def select
|
201
|
-
#--{{{
|
202
147
|
ary = []
|
203
148
|
each { |k,v| ary << [k,v] if yield k,v }
|
204
149
|
ary
|
205
|
-
#--}}}
|
206
150
|
end
|
207
151
|
def class
|
208
|
-
#--{{{
|
209
152
|
Hash
|
210
|
-
#--}}}
|
211
153
|
end
|
212
154
|
def __class__
|
213
|
-
#--{{{
|
214
155
|
OrderedHash
|
215
|
-
#--}}}
|
216
156
|
end
|
217
157
|
|
218
158
|
attr_accessor "to_yaml_style"
|
@@ -242,5 +182,4 @@ class OrderedHash < ::Hash
|
|
242
182
|
@__yaml_inline = bool
|
243
183
|
end
|
244
184
|
def yaml_inline!() self.yaml_inline = true end
|
245
|
-
#--}}}
|
246
185
|
end # class OrderedHash
|
metadata
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.9.
|
2
|
+
rubygems_version: 0.9.4
|
3
3
|
specification_version: 1
|
4
4
|
name: orderedhash
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.0.
|
7
|
-
date: 2007-
|
6
|
+
version: 0.0.3
|
7
|
+
date: 2007-12-06 00:00:00 -07:00
|
8
8
|
summary: orderedhash
|
9
9
|
require_paths:
|
10
10
|
- lib
|