hashery 2.0.0 → 2.0.1
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/.ruby +4 -4
- data/HISTORY.rdoc +10 -0
- data/lib/hashery.yml +4 -4
- data/lib/hashery/open_cascade.rb +6 -2
- data/test/case_casting_hash.rb +71 -0
- data/test/case_core_ext.rb +79 -0
- data/test/case_crud_hash.rb +29 -0
- data/test/case_ini_hash.rb +56 -0
- data/test/case_linked_list.rb +167 -0
- data/test/case_property_hash.rb +21 -0
- data/test/fixture/example.ini +8 -0
- metadata +34 -12
data/.ruby
CHANGED
@@ -58,11 +58,10 @@ load_path:
|
|
58
58
|
- lib
|
59
59
|
- alt
|
60
60
|
revision: 0
|
61
|
+
name: hashery
|
62
|
+
title: Hashery
|
61
63
|
created: '2010-04-21'
|
62
64
|
summary: Facets-bread collection of Hash-like classes.
|
63
|
-
title: Hashery
|
64
|
-
version: 2.0.0
|
65
|
-
name: hashery
|
66
65
|
description: ! 'The Hashery is a tight collection of Hash-like classes. Included among
|
67
66
|
its many
|
68
67
|
|
@@ -73,4 +72,5 @@ description: ! 'The Hashery is a tight collection of Hash-like classes. Included
|
|
73
72
|
of the CRUDHash which defines a CRUD model on top of Ruby''s standard Hash
|
74
73
|
|
75
74
|
making it a snap to subclass and augment to fit any specific use case.'
|
76
|
-
|
75
|
+
version: 2.0.1
|
76
|
+
date: '2012-07-06'
|
data/HISTORY.rdoc
CHANGED
@@ -1,5 +1,15 @@
|
|
1
1
|
= RELEASE HISTORY
|
2
2
|
|
3
|
+
== 2.0.1 / 2012-07-06
|
4
|
+
|
5
|
+
This minor release fixes an issue with OpenCascade (#13).
|
6
|
+
The key_proc procedure wasn't being passed along to sub-cascades.
|
7
|
+
|
8
|
+
Changes:
|
9
|
+
|
10
|
+
* OpenCascade passes along key_proc to childern.
|
11
|
+
|
12
|
+
|
3
13
|
== 2.0.0 / 2012-05-11
|
4
14
|
|
5
15
|
This is a big release for Hashery which both culls some of it's
|
data/lib/hashery.yml
CHANGED
@@ -58,11 +58,10 @@ load_path:
|
|
58
58
|
- lib
|
59
59
|
- alt
|
60
60
|
revision: 0
|
61
|
+
name: hashery
|
62
|
+
title: Hashery
|
61
63
|
created: '2010-04-21'
|
62
64
|
summary: Facets-bread collection of Hash-like classes.
|
63
|
-
title: Hashery
|
64
|
-
version: 2.0.0
|
65
|
-
name: hashery
|
66
65
|
description: ! 'The Hashery is a tight collection of Hash-like classes. Included among
|
67
66
|
its many
|
68
67
|
|
@@ -73,4 +72,5 @@ description: ! 'The Hashery is a tight collection of Hash-like classes. Included
|
|
73
72
|
of the CRUDHash which defines a CRUD model on top of Ruby''s standard Hash
|
74
73
|
|
75
74
|
making it a snap to subclass and augment to fit any specific use case.'
|
76
|
-
|
75
|
+
version: 2.0.1
|
76
|
+
date: '2012-07-06'
|
data/lib/hashery/open_cascade.rb
CHANGED
@@ -72,7 +72,7 @@ module Hashery
|
|
72
72
|
#
|
73
73
|
# Read value given a +key+.
|
74
74
|
#
|
75
|
-
# key - Index
|
75
|
+
# key - Index key to lookup.
|
76
76
|
#
|
77
77
|
# Returns value.
|
78
78
|
#
|
@@ -124,7 +124,10 @@ module Hashery
|
|
124
124
|
def cast_value(entry)
|
125
125
|
case entry
|
126
126
|
when Hash
|
127
|
-
OpenCascade
|
127
|
+
e = OpenCascade.new
|
128
|
+
e.key_proc = key_proc if key_proc
|
129
|
+
e.merge!(entry)
|
130
|
+
e
|
128
131
|
when Array
|
129
132
|
entry.map{ |e| cast_value(e) }
|
130
133
|
else
|
@@ -136,6 +139,7 @@ module Hashery
|
|
136
139
|
|
137
140
|
end
|
138
141
|
|
142
|
+
|
139
143
|
#--
|
140
144
|
# Last, when an entry is not found, 'null' is returned rather then 'nil'.
|
141
145
|
# This allows for run-on entries withuot error. Eg.
|
@@ -0,0 +1,71 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
test_case CastingHash do
|
4
|
+
|
5
|
+
class_method :[] do
|
6
|
+
test do
|
7
|
+
h = CastingHash[:a=>1, :b=>2]
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
class_method :new do
|
12
|
+
test do
|
13
|
+
h = CastingHash.new
|
14
|
+
end
|
15
|
+
|
16
|
+
test 'with default' do
|
17
|
+
h = CastingHash.new(0)
|
18
|
+
h['a'].assert == 0
|
19
|
+
end
|
20
|
+
|
21
|
+
test 'with casting procedure' do
|
22
|
+
h = CastingHash.new{ |k,v| [k.to_sym, v] }
|
23
|
+
h['a'] = 1
|
24
|
+
h.assert == {:a=>1}
|
25
|
+
end
|
26
|
+
|
27
|
+
test 'with default and casting procedure' do
|
28
|
+
h = CastingHash.new(0){ |k,v| [k.to_sym, v] }
|
29
|
+
h['a'].assert == 0
|
30
|
+
h['b'] = 2
|
31
|
+
h.assert == {:b=>2}
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
method :recast! do
|
36
|
+
test do
|
37
|
+
h = CastingHash[:a=>1, :b=>2]
|
38
|
+
h.cast_proc{ |k,v| [k.to_s, v] }
|
39
|
+
h.recast!
|
40
|
+
h.assert == {'a'=>1, 'b'=>2}
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
method :cast_proc= do
|
45
|
+
test do
|
46
|
+
h = CastingHash[:a=>1, :b=>2]
|
47
|
+
h.cast_proc = Proc.new{ |k,v| [k.to_s, v] }
|
48
|
+
h.recast!
|
49
|
+
h.assert == {'a'=>1, 'b'=>2}
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
method :to_hash do
|
54
|
+
test do
|
55
|
+
h = CastingHash[:a=>1, :b=>2]
|
56
|
+
h.to_hash
|
57
|
+
::Hash.assert === h
|
58
|
+
h.assert == {:a=>1, :b=>2}
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
method :to_h do
|
63
|
+
test do
|
64
|
+
h = CastingHash[:a=>1, :b=>2]
|
65
|
+
h.to_h
|
66
|
+
::Hash.assert === h
|
67
|
+
h.assert == {:a=>1, :b=>2}
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
test_case Hash do
|
4
|
+
|
5
|
+
method :rekey do
|
6
|
+
|
7
|
+
test "default" do
|
8
|
+
foo = { "a"=>1, "b"=>2 }
|
9
|
+
foo.rekey.assert == { :a=>1, :b=>2 }
|
10
|
+
foo.assert == { "a"=>1, "b"=>2 }
|
11
|
+
end
|
12
|
+
|
13
|
+
test "specific key" do
|
14
|
+
bar = { :a=>1, :b=>2 }
|
15
|
+
foo = bar.rekey(:a=>:c)
|
16
|
+
foo[:c].assert == 1
|
17
|
+
foo[:b].assert == 2
|
18
|
+
foo[:a].assert == nil
|
19
|
+
end
|
20
|
+
|
21
|
+
test "with block" do
|
22
|
+
bar = { :a=>1, :b=>2 }
|
23
|
+
foo = bar.rekey{ |k| k.to_s }
|
24
|
+
foo['a'].assert == 1
|
25
|
+
foo['b'].assert == 2
|
26
|
+
foo[:a].assert == nil
|
27
|
+
foo[:b].assert == nil
|
28
|
+
foo.assert == { 'a'=>1, 'b'=>2 }
|
29
|
+
end
|
30
|
+
|
31
|
+
test "symbol proc" do
|
32
|
+
foo = { :a=>1, :b=>2 }
|
33
|
+
foo.rekey(&:to_s).assert == { "a"=>1, "b"=>2 }
|
34
|
+
foo.assert == { :a =>1, :b=>2 }
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
method :rekey! do
|
40
|
+
|
41
|
+
test "default" do
|
42
|
+
foo = { "a"=>1, "b"=>2 }
|
43
|
+
foo.rekey!.assert == { :a=>1, :b=>2 }
|
44
|
+
foo.assert == { :a=>1, :b=>2 }
|
45
|
+
end
|
46
|
+
|
47
|
+
test "specific key" do
|
48
|
+
foo = { :a=>1, :b=>2 }
|
49
|
+
foo.rekey!(:a=>:c)
|
50
|
+
foo[:c].assert == 1
|
51
|
+
foo[:b].assert == 2
|
52
|
+
foo[:a].assert == nil
|
53
|
+
end
|
54
|
+
|
55
|
+
test "with block" do
|
56
|
+
foo = { :a=>1, :b=>2 }
|
57
|
+
foo.rekey!{ |k| k.to_s }
|
58
|
+
foo['a'].assert == 1
|
59
|
+
foo['b'].assert == 2
|
60
|
+
foo[:a].assert == nil
|
61
|
+
foo[:b].assert == nil
|
62
|
+
foo.assert == { 'a'=>1, 'b'=>2 }
|
63
|
+
end
|
64
|
+
|
65
|
+
test "symbol proc" do
|
66
|
+
foo = { :a=>1, :b=>2 }
|
67
|
+
foo.rekey!(&:to_s).assert == { "a"=>1, "b"=>2 }
|
68
|
+
foo.assert == { "a"=>1, "b"=>2 }
|
69
|
+
end
|
70
|
+
|
71
|
+
test "no conflict between keys" do
|
72
|
+
r = {1 => :a, 2 => :b}.rekey!{ |k| k + 1 }
|
73
|
+
r.refute = {3 => :a}
|
74
|
+
r.assert = {2 => :a, 3 => :b}
|
75
|
+
end
|
76
|
+
|
77
|
+
end
|
78
|
+
|
79
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
test_case CRUDHash do
|
4
|
+
|
5
|
+
class_method :create do
|
6
|
+
test do
|
7
|
+
h = CRUDHash.create(:a=>1,:b=>2)
|
8
|
+
h.assert == {:a=>1,:b=>2}
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
class_method :auto do
|
13
|
+
test 'without a block' do
|
14
|
+
h = CRUDHash.auto
|
15
|
+
h[:a].assert == {}
|
16
|
+
end
|
17
|
+
|
18
|
+
test 'with a block' do
|
19
|
+
h = CRUDHash.auto{ [] }
|
20
|
+
h[:a].assert == []
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
|
27
|
+
#
|
28
|
+
# OT: Why not make `:a=>1` a Pair object?
|
29
|
+
#
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
test_case IniHash do
|
4
|
+
|
5
|
+
class_method :new do
|
6
|
+
test do
|
7
|
+
h = IniHash.new('foo.ini', false)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
method :[]= do
|
12
|
+
test do
|
13
|
+
h = IniHash.new('foo.ini', false)
|
14
|
+
h['a'] = '1'
|
15
|
+
h['a'].assert = '1'
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
method :[] do
|
20
|
+
test do
|
21
|
+
h = IniHash.new('foo.ini', false)
|
22
|
+
h['a'] = '1'
|
23
|
+
h['a'].assert = '1'
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
method :to_h do
|
28
|
+
test do
|
29
|
+
h = IniHash.new('foo.ini', false)
|
30
|
+
h['a'] = '1'
|
31
|
+
h.to_h.assert = {'a'=>'1'}
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
method :to_s do
|
36
|
+
test do
|
37
|
+
h = IniHash.new('foo.ini', false)
|
38
|
+
h['a'] = '1'
|
39
|
+
h.to_s.assert == "a=1\n"
|
40
|
+
end
|
41
|
+
|
42
|
+
test do
|
43
|
+
h = IniHash.new('foo.ini', false)
|
44
|
+
h['a'] = '1'
|
45
|
+
h['b'] = {'c'=>3}
|
46
|
+
h.to_s.assert == "a=1\n[b]\nc=3\n"
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
class_method :load do
|
51
|
+
h = IniHash.load('test/fixture/example.ini')
|
52
|
+
h['a'].assert == '1'
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
56
|
+
|
@@ -0,0 +1,167 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
test_case LinkedList do
|
4
|
+
|
5
|
+
class_method :new do
|
6
|
+
ll = LinkedList.new
|
7
|
+
LinkedList.assert === ll
|
8
|
+
end
|
9
|
+
|
10
|
+
method :to_a do
|
11
|
+
test 'empty' do
|
12
|
+
ll = LinkedList.new
|
13
|
+
ll.to_a.assert == []
|
14
|
+
end
|
15
|
+
test 'not empty' do
|
16
|
+
ll = LinkedList.new
|
17
|
+
ll.push :a
|
18
|
+
ll.to_a.assert == [:a]
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
method :empty? do
|
23
|
+
test do
|
24
|
+
ll = LinkedList.new
|
25
|
+
ll.assert.empty?
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
method :delete do
|
30
|
+
test do
|
31
|
+
ll = LinkedList.new
|
32
|
+
ll.push :a
|
33
|
+
ll.to_a.assert == [:a]
|
34
|
+
ll.delete(:a)
|
35
|
+
ll.to_a.assert == []
|
36
|
+
end
|
37
|
+
|
38
|
+
test do
|
39
|
+
ll = LinkedList.new
|
40
|
+
ll.push :a
|
41
|
+
ll.push :b
|
42
|
+
ll.push :c
|
43
|
+
ll.to_a.assert == [:a, :b, :c]
|
44
|
+
ll.delete(:b)
|
45
|
+
ll.to_a.assert == [:a, :c]
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
method :each do
|
50
|
+
test do
|
51
|
+
a = []
|
52
|
+
ll = LinkedList.new
|
53
|
+
ll.push :a
|
54
|
+
ll.each do |e|
|
55
|
+
a << e
|
56
|
+
end
|
57
|
+
a.assert == [:a]
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
method :length do
|
62
|
+
test do
|
63
|
+
ll = LinkedList.new
|
64
|
+
ll.push :a
|
65
|
+
ll.length.assert == 1
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
method :push do
|
70
|
+
test do
|
71
|
+
ll = LinkedList.new
|
72
|
+
ll.push :a
|
73
|
+
ll.to_a.assert == [:a]
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
method :unshift do
|
78
|
+
test do
|
79
|
+
ll = LinkedList.new
|
80
|
+
ll.unshift :a
|
81
|
+
ll.to_a.assert == [:a]
|
82
|
+
end
|
83
|
+
test do
|
84
|
+
ll = LinkedList.new
|
85
|
+
ll.push :a
|
86
|
+
ll.unshift :b
|
87
|
+
ll.to_a.assert == [:b, :a]
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
method :pop do
|
92
|
+
test do
|
93
|
+
ll = LinkedList.new
|
94
|
+
ll.push :a
|
95
|
+
ll.push :b
|
96
|
+
ll.to_a.assert == [:a, :b]
|
97
|
+
ll.pop
|
98
|
+
ll.to_a.assert == [:a]
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
method :shift do
|
103
|
+
test do
|
104
|
+
ll = LinkedList.new
|
105
|
+
ll.push :a
|
106
|
+
ll.push :b
|
107
|
+
ll.to_a.assert == [:a, :b]
|
108
|
+
ll.shift
|
109
|
+
ll.to_a.assert == [:b]
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
method :first do
|
114
|
+
test do
|
115
|
+
ll = LinkedList.new
|
116
|
+
ll.push :a
|
117
|
+
ll.push :b
|
118
|
+
ll.to_a.assert == [:a, :b]
|
119
|
+
ll.first.assert == :a
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
method :last do
|
124
|
+
test do
|
125
|
+
ll = LinkedList.new
|
126
|
+
ll.push :a
|
127
|
+
ll.push :b
|
128
|
+
ll.to_a.assert == [:a, :b]
|
129
|
+
ll.last.assert == :b
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
method :queue do
|
134
|
+
test do
|
135
|
+
ll = LinkedList.new
|
136
|
+
ll.push :a
|
137
|
+
ll.push :b
|
138
|
+
ll.queue.assert == [:a, :b]
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
method :[]= do
|
143
|
+
test do
|
144
|
+
ll = LinkedList.new
|
145
|
+
ll[:a] = :b
|
146
|
+
ll.to_a.assert == [:b]
|
147
|
+
ll[:a].assert == :b
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
method :[] do
|
152
|
+
test do
|
153
|
+
ll = LinkedList.new
|
154
|
+
ll.push :a
|
155
|
+
ll[:a].assert == :a
|
156
|
+
end
|
157
|
+
|
158
|
+
test do
|
159
|
+
ll = LinkedList.new
|
160
|
+
ll.push :a
|
161
|
+
ll.push :b
|
162
|
+
ll[:a].assert == :a
|
163
|
+
ll[:b].assert == :b
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
167
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
test_case PropertyHash do
|
4
|
+
|
5
|
+
class_method :new do
|
6
|
+
test do
|
7
|
+
PropertyHash.new
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
method :update do
|
12
|
+
test do
|
13
|
+
h = PropertyHash.new
|
14
|
+
h.property :a
|
15
|
+
h.property :b
|
16
|
+
h.update(:a=>1, :b=>2)
|
17
|
+
h.assert == {:a=>1, :b=>2}
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hashery
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -15,11 +15,11 @@ authors:
|
|
15
15
|
autorequire:
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
|
-
date: 2012-06
|
18
|
+
date: 2012-07-06 00:00:00.000000000 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: detroit
|
22
|
-
requirement:
|
22
|
+
requirement: !ruby/object:Gem::Requirement
|
23
23
|
none: false
|
24
24
|
requirements:
|
25
25
|
- - ! '>='
|
@@ -27,10 +27,15 @@ dependencies:
|
|
27
27
|
version: '0'
|
28
28
|
type: :development
|
29
29
|
prerelease: false
|
30
|
-
version_requirements:
|
30
|
+
version_requirements: !ruby/object:Gem::Requirement
|
31
|
+
none: false
|
32
|
+
requirements:
|
33
|
+
- - ! '>='
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '0'
|
31
36
|
- !ruby/object:Gem::Dependency
|
32
37
|
name: qed
|
33
|
-
requirement:
|
38
|
+
requirement: !ruby/object:Gem::Requirement
|
34
39
|
none: false
|
35
40
|
requirements:
|
36
41
|
- - ! '>='
|
@@ -38,10 +43,15 @@ dependencies:
|
|
38
43
|
version: '0'
|
39
44
|
type: :development
|
40
45
|
prerelease: false
|
41
|
-
version_requirements:
|
46
|
+
version_requirements: !ruby/object:Gem::Requirement
|
47
|
+
none: false
|
48
|
+
requirements:
|
49
|
+
- - ! '>='
|
50
|
+
- !ruby/object:Gem::Version
|
51
|
+
version: '0'
|
42
52
|
- !ruby/object:Gem::Dependency
|
43
53
|
name: lemon
|
44
|
-
requirement:
|
54
|
+
requirement: !ruby/object:Gem::Requirement
|
45
55
|
none: false
|
46
56
|
requirements:
|
47
57
|
- - ! '>='
|
@@ -49,7 +59,12 @@ dependencies:
|
|
49
59
|
version: '0'
|
50
60
|
type: :development
|
51
61
|
prerelease: false
|
52
|
-
version_requirements:
|
62
|
+
version_requirements: !ruby/object:Gem::Requirement
|
63
|
+
none: false
|
64
|
+
requirements:
|
65
|
+
- - ! '>='
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '0'
|
53
68
|
description: ! 'The Hashery is a tight collection of Hash-like classes. Included among
|
54
69
|
its many
|
55
70
|
|
@@ -65,8 +80,8 @@ email:
|
|
65
80
|
executables: []
|
66
81
|
extensions: []
|
67
82
|
extra_rdoc_files:
|
68
|
-
- LICENSE.txt
|
69
83
|
- NOTICE.txt
|
84
|
+
- LICENSE.txt
|
70
85
|
- HISTORY.rdoc
|
71
86
|
- DEMO.rdoc
|
72
87
|
- README.rdoc
|
@@ -94,19 +109,26 @@ files:
|
|
94
109
|
- lib/hashery.rb
|
95
110
|
- lib/hashery.yml
|
96
111
|
- test/case_association.rb
|
112
|
+
- test/case_casting_hash.rb
|
113
|
+
- test/case_core_ext.rb
|
114
|
+
- test/case_crud_hash.rb
|
97
115
|
- test/case_dictionary.rb
|
116
|
+
- test/case_ini_hash.rb
|
98
117
|
- test/case_key_hash.rb
|
118
|
+
- test/case_linked_list.rb
|
99
119
|
- test/case_lru_hash.rb
|
100
120
|
- test/case_open_cascade.rb
|
101
121
|
- test/case_open_hash.rb
|
122
|
+
- test/case_property_hash.rb
|
102
123
|
- test/case_query_hash.rb
|
124
|
+
- test/fixture/example.ini
|
103
125
|
- test/helper.rb
|
104
126
|
- HISTORY.rdoc
|
105
127
|
- DEMO.rdoc
|
106
|
-
- LICENSE.txt
|
107
|
-
- README.rdoc
|
108
128
|
- NOTICE.txt
|
109
129
|
- Config.rb
|
130
|
+
- README.rdoc
|
131
|
+
- LICENSE.txt
|
110
132
|
homepage: http://rubyworks.github.com/hashery
|
111
133
|
licenses:
|
112
134
|
- BSD-2-Clause
|
@@ -129,7 +151,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
129
151
|
version: '0'
|
130
152
|
requirements: []
|
131
153
|
rubyforge_project:
|
132
|
-
rubygems_version: 1.8.
|
154
|
+
rubygems_version: 1.8.24
|
133
155
|
signing_key:
|
134
156
|
specification_version: 3
|
135
157
|
summary: Facets-bread collection of Hash-like classes.
|