hamster 1.0.1.pre.rc.1 → 1.0.1.pre.rc2

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.
Files changed (209) hide show
  1. checksums.yaml +4 -4
  2. data/lib/hamster/groupable.rb +12 -0
  3. data/lib/hamster/hash.rb +32 -12
  4. data/lib/hamster/list.rb +68 -22
  5. data/lib/hamster/queue.rb +5 -6
  6. data/lib/hamster/set.rb +50 -14
  7. data/lib/hamster/stack.rb +2 -0
  8. data/lib/hamster/trie.rb +34 -14
  9. data/lib/hamster/tuple.rb +9 -24
  10. data/lib/hamster/vector.rb +29 -7
  11. data/lib/hamster/version.rb +1 -1
  12. data/spec/hamster/core_ext/array_spec.rb +4 -10
  13. data/spec/hamster/core_ext/enumerable_spec.rb +1 -0
  14. data/spec/hamster/experimental/mutable_set/add_qm_spec.rb +14 -22
  15. data/spec/hamster/experimental/mutable_set/add_spec.rb +20 -34
  16. data/spec/hamster/experimental/mutable_set/delete_qm_spec.rb +15 -24
  17. data/spec/hamster/experimental/mutable_set/delete_spec.rb +15 -25
  18. data/spec/hamster/experimental/mutable_stack/pop_spec.rb +21 -27
  19. data/spec/hamster/experimental/mutable_stack/push_spec.rb +11 -31
  20. data/spec/hamster/hash/all_spec.rb +21 -34
  21. data/spec/hamster/hash/any_spec.rb +0 -15
  22. data/spec/hamster/hash/clear_spec.rb +1 -8
  23. data/spec/hamster/hash/construction_spec.rb +3 -11
  24. data/spec/hamster/hash/copying_spec.rb +1 -8
  25. data/spec/hamster/hash/delete_spec.rb +1 -10
  26. data/spec/hamster/hash/each_spec.rb +1 -12
  27. data/spec/hamster/hash/empty_spec.rb +8 -8
  28. data/spec/hamster/hash/eql_spec.rb +30 -22
  29. data/spec/hamster/hash/except_spec.rb +1 -10
  30. data/spec/hamster/hash/fetch_spec.rb +1 -24
  31. data/spec/hamster/hash/filter_spec.rb +1 -16
  32. data/spec/hamster/hash/find_spec.rb +1 -14
  33. data/spec/hamster/hash/has_key_spec.rb +1 -10
  34. data/spec/hamster/hash/hash_spec.rb +1 -16
  35. data/spec/hamster/hash/immutable_spec.rb +0 -3
  36. data/spec/hamster/hash/inspect_spec.rb +1 -9
  37. data/spec/hamster/hash/keys_spec.rb +4 -5
  38. data/spec/hamster/hash/map_spec.rb +1 -16
  39. data/spec/hamster/hash/merge_spec.rb +5 -11
  40. data/spec/hamster/hash/new_spec.rb +21 -0
  41. data/spec/hamster/hash/put_spec.rb +13 -11
  42. data/spec/hamster/hash/reduce_spec.rb +7 -15
  43. data/spec/hamster/hash/remove_spec.rb +1 -16
  44. data/spec/hamster/hash/uniq_spec.rb +1 -8
  45. data/spec/hamster/hash/values_spec.rb +1 -6
  46. data/spec/hamster/immutable/copying_spec.rb +1 -8
  47. data/spec/hamster/immutable/immutable_spec.rb +1 -14
  48. data/spec/hamster/immutable/memoize_spec.rb +0 -1
  49. data/spec/hamster/list/add_spec.rb +1 -6
  50. data/spec/hamster/list/all_spec.rb +1 -28
  51. data/spec/hamster/list/any_spec.rb +1 -20
  52. data/spec/hamster/list/append_spec.rb +1 -11
  53. data/spec/hamster/list/at_spec.rb +1 -13
  54. data/spec/hamster/list/break_spec.rb +1 -13
  55. data/spec/hamster/list/cadr_spec.rb +1 -9
  56. data/spec/hamster/list/chunk_spec.rb +1 -9
  57. data/spec/hamster/list/clear_spec.rb +1 -9
  58. data/spec/hamster/list/combinations_spec.rb +1 -11
  59. data/spec/hamster/list/compact_spec.rb +1 -9
  60. data/spec/hamster/list/cons_spec.rb +1 -10
  61. data/spec/hamster/list/construction_spec.rb +1 -30
  62. data/spec/hamster/list/copying_spec.rb +1 -9
  63. data/spec/hamster/list/count_spec.rb +1 -15
  64. data/spec/hamster/list/cycle_spec.rb +1 -10
  65. data/spec/hamster/list/drop_spec.rb +1 -9
  66. data/spec/hamster/list/drop_while_spec.rb +1 -13
  67. data/spec/hamster/list/each_slice_spec.rb +1 -17
  68. data/spec/hamster/list/each_spec.rb +1 -17
  69. data/spec/hamster/list/each_with_index_spec.rb +1 -10
  70. data/spec/hamster/list/elem_index_spec.rb +1 -13
  71. data/spec/hamster/list/elem_indices_spec.rb +1 -11
  72. data/spec/hamster/list/empty_spec.rb +1 -13
  73. data/spec/hamster/list/eql_spec.rb +52 -62
  74. data/spec/hamster/list/find_index_spec.rb +1 -13
  75. data/spec/hamster/list/find_indices_spec.rb +1 -11
  76. data/spec/hamster/list/find_spec.rb +1 -17
  77. data/spec/hamster/list/flatten_spec.rb +1 -9
  78. data/spec/hamster/list/grep_spec.rb +1 -16
  79. data/spec/hamster/list/group_by_spec.rb +1 -20
  80. data/spec/hamster/list/head_spec.rb +1 -11
  81. data/spec/hamster/list/include_spec.rb +1 -13
  82. data/spec/hamster/list/init_spec.rb +1 -8
  83. data/spec/hamster/list/inits_spec.rb +1 -9
  84. data/spec/hamster/list/inspect_spec.rb +1 -11
  85. data/spec/hamster/list/intersperse_spec.rb +1 -9
  86. data/spec/hamster/list/join_spec.rb +1 -18
  87. data/spec/hamster/list/last_spec.rb +1 -11
  88. data/spec/hamster/list/map_spec.rb +1 -15
  89. data/spec/hamster/list/maximum_spec.rb +1 -20
  90. data/spec/hamster/list/merge_by_spec.rb +1 -19
  91. data/spec/hamster/list/merge_spec.rb +1 -20
  92. data/spec/hamster/list/minimum_spec.rb +1 -20
  93. data/spec/hamster/list/none_spec.rb +1 -18
  94. data/spec/hamster/list/one_spec.rb +1 -16
  95. data/spec/hamster/list/partition_spec.rb +1 -13
  96. data/spec/hamster/list/product_spec.rb +1 -11
  97. data/spec/hamster/list/reduce_spec.rb +0 -1
  98. data/spec/hamster/list/remove_spec.rb +1 -15
  99. data/spec/hamster/list/reverse_spec.rb +1 -11
  100. data/spec/hamster/list/size_spec.rb +1 -13
  101. data/spec/hamster/list/slice_spec.rb +1 -11
  102. data/spec/hamster/list/sorting_spec.rb +1 -14
  103. data/spec/hamster/list/span_spec.rb +1 -12
  104. data/spec/hamster/list/split_at_spec.rb +1 -9
  105. data/spec/hamster/list/sum_spec.rb +1 -11
  106. data/spec/hamster/list/tail_spec.rb +1 -11
  107. data/spec/hamster/list/tails_spec.rb +1 -9
  108. data/spec/hamster/list/take_spec.rb +1 -9
  109. data/spec/hamster/list/take_while_spec.rb +0 -1
  110. data/spec/hamster/list/to_a_spec.rb +1 -13
  111. data/spec/hamster/list/to_ary_spec.rb +0 -1
  112. data/spec/hamster/list/to_list_spec.rb +1 -9
  113. data/spec/hamster/list/to_set_spec.rb +2 -8
  114. data/spec/hamster/list/union_spec.rb +1 -11
  115. data/spec/hamster/list/uniq_spec.rb +1 -11
  116. data/spec/hamster/queue/clear_spec.rb +1 -9
  117. data/spec/hamster/queue/construction_spec.rb +1 -10
  118. data/spec/hamster/queue/dequeue_spec.rb +1 -11
  119. data/spec/hamster/queue/empty_spec.rb +1 -13
  120. data/spec/hamster/queue/enqueue_spec.rb +1 -11
  121. data/spec/hamster/queue/head_spec.rb +1 -11
  122. data/spec/hamster/queue/inspect_spec.rb +1 -9
  123. data/spec/hamster/queue/size_spec.rb +1 -11
  124. data/spec/hamster/queue/to_a_spec.rb +1 -11
  125. data/spec/hamster/queue/to_list_spec.rb +1 -11
  126. data/spec/hamster/set/add_spec.rb +1 -12
  127. data/spec/hamster/set/all_spec.rb +1 -18
  128. data/spec/hamster/set/any_spec.rb +1 -17
  129. data/spec/hamster/set/clear_spec.rb +9 -8
  130. data/spec/hamster/set/compact_spec.rb +1 -9
  131. data/spec/hamster/set/construction_spec.rb +1 -9
  132. data/spec/hamster/set/copying_spec.rb +1 -8
  133. data/spec/hamster/set/count_spec.rb +1 -13
  134. data/spec/hamster/set/delete_spec.rb +1 -10
  135. data/spec/hamster/set/difference_spec.rb +1 -11
  136. data/spec/hamster/set/empty_spec.rb +1 -11
  137. data/spec/hamster/set/exclusion_spec.rb +1 -11
  138. data/spec/hamster/set/filter_spec.rb +10 -17
  139. data/spec/hamster/set/find_spec.rb +1 -14
  140. data/spec/hamster/set/flatten_spec.rb +8 -10
  141. data/spec/hamster/set/group_by_spec.rb +8 -17
  142. data/spec/hamster/set/head_spec.rb +1 -12
  143. data/spec/hamster/set/immutable_spec.rb +1 -4
  144. data/spec/hamster/set/include_spec.rb +1 -9
  145. data/spec/hamster/set/inspect_spec.rb +1 -9
  146. data/spec/hamster/set/intersection_spec.rb +1 -11
  147. data/spec/hamster/set/join_spec.rb +1 -16
  148. data/spec/hamster/set/map_spec.rb +1 -16
  149. data/spec/hamster/set/marshal_spec.rb +1 -6
  150. data/spec/hamster/set/maximum_spec.rb +1 -18
  151. data/spec/hamster/set/minimum_spec.rb +1 -17
  152. data/spec/hamster/set/new_spec.rb +21 -0
  153. data/spec/hamster/set/none_spec.rb +1 -16
  154. data/spec/hamster/set/one_spec.rb +1 -14
  155. data/spec/hamster/set/partition_spec.rb +1 -13
  156. data/spec/hamster/set/product_spec.rb +1 -9
  157. data/spec/hamster/set/reduce_spec.rb +1 -26
  158. data/spec/hamster/set/remove_spec.rb +1 -16
  159. data/spec/hamster/set/size_spec.rb +1 -9
  160. data/spec/hamster/set/sorting_spec.rb +1 -3
  161. data/spec/hamster/set/subset_spec.rb +1 -9
  162. data/spec/hamster/set/sum_spec.rb +1 -9
  163. data/spec/hamster/set/superset_spec.rb +1 -9
  164. data/spec/hamster/set/to_a_spec.rb +1 -11
  165. data/spec/hamster/set/to_list_spec.rb +1 -11
  166. data/spec/hamster/set/to_set_spec.rb +1 -9
  167. data/spec/hamster/set/union_spec.rb +1 -11
  168. data/spec/hamster/set/uniq_spec.rb +1 -7
  169. data/spec/hamster/sorter/immutable_spec.rb +1 -4
  170. data/spec/hamster/stack/clear_spec.rb +1 -9
  171. data/spec/hamster/stack/construction_spec.rb +1 -10
  172. data/spec/hamster/stack/copying_spec.rb +1 -9
  173. data/spec/hamster/stack/empty_spec.rb +1 -9
  174. data/spec/hamster/stack/eql_spec.rb +1 -13
  175. data/spec/hamster/stack/immutable_spec.rb +1 -4
  176. data/spec/hamster/stack/inspect_spec.rb +1 -9
  177. data/spec/hamster/stack/peek_spec.rb +1 -11
  178. data/spec/hamster/stack/pop_spec.rb +1 -11
  179. data/spec/hamster/stack/push_spec.rb +1 -11
  180. data/spec/hamster/stack/size_spec.rb +1 -11
  181. data/spec/hamster/stack/to_a_spec.rb +1 -11
  182. data/spec/hamster/stack/to_list_spec.rb +1 -9
  183. data/spec/hamster/tuple/construction_spec.rb +30 -0
  184. data/spec/hamster/tuple/copying_spec.rb +1 -8
  185. data/spec/hamster/tuple/eql_spec.rb +57 -40
  186. data/spec/hamster/tuple/first_spec.rb +1 -6
  187. data/spec/hamster/tuple/immutable_spec.rb +1 -4
  188. data/spec/hamster/tuple/inspect_spec.rb +1 -6
  189. data/spec/hamster/tuple/last_spec.rb +1 -6
  190. data/spec/hamster/tuple/to_a_spec.rb +1 -9
  191. data/spec/hamster/tuple/to_ary_spec.rb +0 -1
  192. data/spec/hamster/undefined/erase_spec.rb +1 -12
  193. data/spec/hamster/vector/add_spec.rb +8 -0
  194. data/spec/hamster/vector/clear_spec.rb +1 -8
  195. data/spec/hamster/vector/copying_spec.rb +1 -8
  196. data/spec/hamster/vector/each_spec.rb +1 -11
  197. data/spec/hamster/vector/each_with_index_spec.rb +1 -9
  198. data/spec/hamster/vector/empty_spec.rb +7 -9
  199. data/spec/hamster/vector/eql_spec.rb +1 -12
  200. data/spec/hamster/vector/filter_spec.rb +8 -12
  201. data/spec/hamster/vector/first_spec.rb +1 -11
  202. data/spec/hamster/vector/get_spec.rb +1 -23
  203. data/spec/hamster/vector/include_spec.rb +1 -10
  204. data/spec/hamster/vector/map_spec.rb +8 -14
  205. data/spec/hamster/vector/new_spec.rb +48 -0
  206. data/spec/hamster/vector/reduce_spec.rb +1 -26
  207. data/spec/hamster/vector/set_spec.rb +8 -0
  208. data/spec/spec_helper.rb +0 -5
  209. metadata +35 -68
@@ -1,12 +1,9 @@
1
1
  require "spec_helper"
2
-
3
2
  require "hamster/immutable"
4
3
  require "hamster/hash"
5
4
 
6
5
  describe Hamster::Hash do
7
-
8
6
  it "includes Immutable" do
9
7
  Hamster::Hash.should include(Hamster::Immutable)
10
8
  end
11
-
12
9
  end
@@ -1,11 +1,8 @@
1
1
  require "spec_helper"
2
-
3
2
  require "hamster/hash"
4
3
 
5
4
  describe Hamster::Hash do
6
-
7
5
  describe "#inspect" do
8
-
9
6
  [
10
7
  [[], "{}"],
11
8
  [["A" => "aye"], "{\"A\" => \"aye\"}"],
@@ -13,7 +10,6 @@ describe Hamster::Hash do
13
10
  ].each do |values, expected|
14
11
 
15
12
  describe "on #{values.inspect}" do
16
-
17
13
  before do
18
14
  original = Hamster.hash(*values)
19
15
  @result = original.inspect
@@ -22,11 +18,7 @@ describe Hamster::Hash do
22
18
  it "returns #{expected.inspect}" do
23
19
  @result.should == expected
24
20
  end
25
-
26
21
  end
27
-
28
22
  end
29
-
30
23
  end
31
-
32
- end
24
+ end
@@ -1,12 +1,9 @@
1
1
  require "spec_helper"
2
-
3
2
  require "hamster/hash"
4
3
  require "hamster/set"
5
4
 
6
5
  describe Hamster::Hash do
7
-
8
6
  describe "#keys" do
9
-
10
7
  before do
11
8
  hash = Hamster.hash("A" => "aye", "B" => "bee", "C" => "see")
12
9
  @result = hash.keys
@@ -16,6 +13,8 @@ describe Hamster::Hash do
16
13
  @result.should == Hamster.set("A", "B", "C")
17
14
  end
18
15
 
16
+ it "returns frozen String keys" do
17
+ @result.each { |s| s.should be_frozen }
18
+ end
19
19
  end
20
-
21
- end
20
+ end
@@ -1,15 +1,10 @@
1
1
  require "spec_helper"
2
-
3
2
  require "hamster/hash"
4
3
 
5
4
  describe Hamster::Hash do
6
-
7
5
  [:map, :collect].each do |method|
8
-
9
6
  describe "##{method}" do
10
-
11
7
  describe "when empty" do
12
-
13
8
  before do
14
9
  @original = Hamster.hash
15
10
  @mapped = @original.send(method) {}
@@ -18,17 +13,14 @@ describe Hamster::Hash do
18
13
  it "returns self" do
19
14
  @mapped.should equal(@original)
20
15
  end
21
-
22
16
  end
23
17
 
24
18
  describe "when not empty" do
25
-
26
19
  before do
27
20
  @original = Hamster.hash("A" => "aye", "B" => "bee", "C" => "see")
28
21
  end
29
22
 
30
23
  describe "with a block" do
31
-
32
24
  before do
33
25
  @mapped = @original.send(method) { |key, value| [key.downcase, value.upcase] }
34
26
  end
@@ -40,11 +32,9 @@ describe Hamster::Hash do
40
32
  it "returns a new hash with the mapped values" do
41
33
  @mapped.should == Hamster.hash("a" => "AYE", "b" => "BEE", "c" => "SEE")
42
34
  end
43
-
44
35
  end
45
36
 
46
37
  describe "with no block" do
47
-
48
38
  before do
49
39
  @result = @original.send(method)
50
40
  end
@@ -52,13 +42,8 @@ describe Hamster::Hash do
52
42
  it "returns self" do
53
43
  @result.should equal(@original)
54
44
  end
55
-
56
45
  end
57
-
58
46
  end
59
-
60
47
  end
61
-
62
48
  end
63
-
64
- end
49
+ end
@@ -1,13 +1,9 @@
1
1
  require "spec_helper"
2
-
3
2
  require "hamster/hash"
4
3
 
5
4
  describe Hamster::Hash do
6
-
7
5
  [:merge, :+].each do |method|
8
-
9
6
  describe "##{method}" do
10
-
11
7
  [
12
8
  [[], [], []],
13
9
  [["A" => "aye"], [], ["A" => "aye"]],
@@ -16,21 +12,19 @@ describe Hamster::Hash do
16
12
  ].each do |a, b, expected|
17
13
 
18
14
  describe "for #{a.inspect} and #{b.inspect}" do
19
-
20
15
  before do
21
16
  @result = Hamster.hash(*a).send(method, Hamster.hash(*b))
22
17
  end
23
18
 
24
- it "returns #{expected.inspect}" do
19
+ it "returns #{expected.inspect} when passed a Hamster::Hash" do
25
20
  @result.should == Hamster.hash(*expected)
26
21
  end
27
22
 
23
+ it "returns #{expected.inspect} when passed a Ruby Hash" do
24
+ Hamster.hash(*a).send(method, Hash[*b]).should == Hamster.hash(*expected)
25
+ end
28
26
  end
29
-
30
27
  end
31
-
32
28
  end
33
-
34
29
  end
35
-
36
- end
30
+ end
@@ -0,0 +1,21 @@
1
+ require "spec_helper"
2
+ require "hamster/hash"
3
+
4
+ describe Hamster::Hash do
5
+ describe "new" do
6
+ describe "from a subclass" do
7
+ before do
8
+ @subclass = Class.new(Hamster::Hash)
9
+ @instance = @subclass.new("some" => "values")
10
+ end
11
+
12
+ it "should return an instance of the subclass" do
13
+ @instance.class.should be @subclass
14
+ end
15
+
16
+ it "should return a frozen instance" do
17
+ @instance.frozen?.should be true
18
+ end
19
+ end
20
+ end
21
+ end
@@ -1,17 +1,13 @@
1
1
  require "spec_helper"
2
-
3
2
  require "hamster/hash"
4
3
 
5
4
  describe Hamster::Hash do
6
-
7
5
  describe "#put" do
8
-
9
6
  before do
10
7
  @original = Hamster.hash("A" => "aye", "B" => "bee", "C" => "see")
11
8
  end
12
9
 
13
10
  describe "with a block" do
14
-
15
11
  it "passes the value to the block" do
16
12
  @original.put("A") { |value| value.should == "aye" }
17
13
  end
@@ -25,11 +21,9 @@ describe Hamster::Hash do
25
21
  result = @original.put("A", &:upcase)
26
22
  result.get("A").should == "AYE"
27
23
  end
28
-
29
24
  end
30
25
 
31
26
  describe "with a unique key" do
32
-
33
27
  before do
34
28
  @result = @original.put("D", "dee")
35
29
  end
@@ -41,11 +35,9 @@ describe Hamster::Hash do
41
35
  it "returns a copy with the superset of key/value pairs" do
42
36
  @result.should == Hamster.hash("A" => "aye", "B" => "bee", "C" => "see", "D" => "dee")
43
37
  end
44
-
45
38
  end
46
39
 
47
40
  describe "with a duplicate key" do
48
-
49
41
  before do
50
42
  @result = @original.put("C", "sea")
51
43
  end
@@ -57,9 +49,19 @@ describe Hamster::Hash do
57
49
  it "returns a copy with the superset of key/value pairs" do
58
50
  @result.should == Hamster.hash("A" => "aye", "B" => "bee", "C" => "sea")
59
51
  end
60
-
61
52
  end
62
53
 
63
- end
54
+ context "when a String is inserted as key and then mutated" do
55
+ before do
56
+ @string = "a string!"
57
+ @hash = Hamster.hash(@string => 'a value!')
58
+ @string.upcase!
59
+ end
64
60
 
65
- end
61
+ it "is not affected" do
62
+ @hash['a string!'].should == 'a value!'
63
+ @hash['A STRING!'].should be_nil
64
+ end
65
+ end
66
+ end
67
+ end
@@ -1,15 +1,10 @@
1
1
  require "spec_helper"
2
-
3
2
  require "hamster/hash"
4
3
 
5
4
  describe Hamster::Hash do
6
-
7
5
  [:reduce, :inject, :fold, :foldr].each do |method|
8
-
9
6
  describe "##{method}" do
10
-
11
7
  describe "when empty" do
12
-
13
8
  before do
14
9
  @original = Hamster.hash
15
10
  @result = @original.send(method, "ABC") {}
@@ -18,17 +13,14 @@ describe Hamster::Hash do
18
13
  it "returns the memo" do
19
14
  @result.should == "ABC"
20
15
  end
21
-
22
16
  end
23
17
 
24
18
  describe "when not empty" do
25
-
26
19
  before do
27
20
  @original = Hamster.hash("A" => "aye", "B" => "bee", "C" => "see")
28
21
  end
29
22
 
30
23
  describe "with a block" do
31
-
32
24
  before do
33
25
  @result = @original.send(method, 0) { |memo, key, value| memo + 1 }
34
26
  end
@@ -36,11 +28,9 @@ describe Hamster::Hash do
36
28
  it "returns the final memo" do
37
29
  @result.should == 3
38
30
  end
39
-
40
31
  end
41
32
 
42
33
  describe "with no block" do
43
-
44
34
  before do
45
35
  @result = @original.send(method, "ABC")
46
36
  end
@@ -48,13 +38,15 @@ describe Hamster::Hash do
48
38
  it "returns the memo" do
49
39
  @result.should == "ABC"
50
40
  end
51
-
52
41
  end
53
-
54
42
  end
55
43
 
44
+ context "from a subclass" do
45
+ it "returns an instance of the subclass" do
46
+ @subclass = Class.new(Hamster::Set)
47
+ @instance = @subclass.new(*(1..100).to_a)
48
+ end
49
+ end
56
50
  end
57
-
58
51
  end
59
-
60
- end
52
+ end
@@ -1,19 +1,14 @@
1
1
  require "spec_helper"
2
-
3
2
  require "hamster/hash"
4
3
 
5
4
  describe Hamster::Hash do
6
-
7
5
  [:remove, :reject, :delete_if].each do |method|
8
-
9
6
  describe "##{method}" do
10
-
11
7
  before do
12
8
  @original = Hamster.hash("A" => "aye", "B" => "bee", "C" => "see")
13
9
  end
14
10
 
15
11
  describe "when nothing matches" do
16
-
17
12
  before do
18
13
  @result = @original.send(method) { |key, value| false }
19
14
  end
@@ -21,13 +16,10 @@ describe Hamster::Hash do
21
16
  it "returns self" do
22
17
  @result.should equal(@original)
23
18
  end
24
-
25
19
  end
26
20
 
27
21
  describe "when only some things match" do
28
-
29
22
  describe "with a block" do
30
-
31
23
  before do
32
24
  @result = @original.send(method) { |key, value| key == "A" && value == "aye" }
33
25
  end
@@ -39,11 +31,9 @@ describe Hamster::Hash do
39
31
  it "returns a set with the matching values" do
40
32
  @result.should == Hamster.hash("B" => "bee", "C" => "see")
41
33
  end
42
-
43
34
  end
44
35
 
45
36
  describe "with no block" do
46
-
47
37
  before do
48
38
  @result = @original.send(method)
49
39
  end
@@ -51,13 +41,8 @@ describe Hamster::Hash do
51
41
  it "returns self" do
52
42
  @result.should equal(@original)
53
43
  end
54
-
55
44
  end
56
-
57
45
  end
58
-
59
46
  end
60
-
61
47
  end
62
-
63
- end
48
+ end
@@ -1,23 +1,16 @@
1
1
  require "spec_helper"
2
-
3
2
  require "hamster/hash"
4
3
 
5
4
  describe Hamster::Hash do
6
-
7
5
  before do
8
6
  @hash = Hamster.hash("A" => "aye", "B" => "bee", "C" => "see")
9
7
  end
10
8
 
11
9
  [:uniq, :nub, :remove_duplicates].each do |method|
12
-
13
10
  describe "##{method}" do
14
-
15
11
  it "returns self" do
16
12
  @hash.send(method).should equal(@hash)
17
13
  end
18
-
19
14
  end
20
-
21
15
  end
22
-
23
- end
16
+ end
@@ -1,12 +1,9 @@
1
1
  require "spec_helper"
2
-
3
2
  require "hamster/hash"
4
3
  require "hamster/set"
5
4
 
6
5
  describe Hamster::Hash do
7
-
8
6
  describe "#values" do
9
-
10
7
  before do
11
8
  hash = Hamster.hash("A" => "aye", "B" => "bee", "C" => "see")
12
9
  @result = hash.values
@@ -16,7 +13,6 @@ describe Hamster::Hash do
16
13
  @result.should be_a Hamster::List
17
14
  @result.to_a.sort.should == %w(aye bee see)
18
15
  end
19
-
20
16
  end
21
17
 
22
18
  describe "#values with duplicates" do
@@ -30,5 +26,4 @@ describe Hamster::Hash do
30
26
  @result.to_a.sort.should == [15, 15, 19]
31
27
  end
32
28
  end
33
-
34
- end
29
+ end
@@ -1,17 +1,13 @@
1
1
  require "spec_helper"
2
-
3
2
  require "hamster/immutable"
4
3
 
5
4
  describe Hamster::Immutable do
6
-
7
5
  class Fixture
8
6
  include Hamster::Immutable
9
7
  end
10
8
 
11
9
  [:dup, :clone].each do |method|
12
-
13
10
  describe "##{method}" do
14
-
15
11
  before do
16
12
  @original = Fixture.new
17
13
  @result = @original.send(method)
@@ -20,9 +16,6 @@ describe Hamster::Immutable do
20
16
  it "returns self" do
21
17
  @result.should equal(@original)
22
18
  end
23
-
24
19
  end
25
-
26
20
  end
27
-
28
- end
21
+ end