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

Sign up to get free protection for your applications and to get access to all the features.
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,13 +1,9 @@
1
1
  require "spec_helper"
2
-
3
2
  require "hamster/vector"
4
3
 
5
4
  describe Hamster::Vector do
6
-
7
5
  [:first, :head].each do |method|
8
-
9
6
  describe "##{method}" do
10
-
11
7
  [
12
8
  [[], nil],
13
9
  [["A"], "A"],
@@ -15,7 +11,6 @@ describe Hamster::Vector do
15
11
  ].each do |values, expected|
16
12
 
17
13
  describe "on #{values.inspect}" do
18
-
19
14
  before do
20
15
  @vector = Hamster.vector(*values)
21
16
  end
@@ -23,13 +18,8 @@ describe Hamster::Vector do
23
18
  it "returns #{expected.inspect}" do
24
19
  @vector.send(method).should == expected
25
20
  end
26
-
27
21
  end
28
-
29
22
  end
30
-
31
23
  end
32
-
33
24
  end
34
-
35
- end
25
+ end
@@ -2,13 +2,9 @@ require "spec_helper"
2
2
  require "hamster/vector"
3
3
 
4
4
  describe Hamster::Vector do
5
-
6
5
  [:get, :[], :at].each do |method|
7
-
8
6
  describe "##{method}" do
9
-
10
7
  describe "when empty" do
11
-
12
8
  before do
13
9
  @vector = Hamster.vector
14
10
  end
@@ -18,63 +14,45 @@ describe Hamster::Vector do
18
14
  @vector.send(method, i).should be_nil
19
15
  end
20
16
  end
21
-
22
17
  end
23
18
 
24
19
  describe "when not empty" do
25
-
26
20
  before do
27
21
  @vector = Hamster.vector(*(1..1025))
28
22
  end
29
23
 
30
24
  describe "with a positive index" do
31
-
32
25
  describe "within the absolute bounds of the vector" do
33
-
34
26
  it "returns the value at the specified index from the head" do
35
27
  (0..(@vector.size - 1)).each do |i|
36
28
  @vector.send(method, i).should == i + 1
37
29
  end
38
30
  end
39
-
40
31
  end
41
32
 
42
33
  describe "outside the absolute bounds of the vector" do
43
-
44
34
  it "returns nil" do
45
35
  @vector.send(method, @vector.size).should be_nil
46
36
  end
47
-
48
37
  end
49
-
50
38
  end
51
39
 
52
40
  describe "with a negative index" do
53
-
54
41
  describe "within the absolute bounds of the vector" do
55
-
56
42
  it "returns the value at the specified index from the tail" do
57
43
  (-@vector.size..-1).each do |i|
58
44
  @vector.send(method, i).should == @vector.size + i + 1
59
45
  end
60
46
  end
61
-
62
47
  end
63
48
 
64
49
  describe "outside the absolute bounds of the vector" do
65
-
66
50
  it "returns nil" do
67
51
  @vector.send(method, -@vector.size.next).should be_nil
68
52
  end
69
-
70
53
  end
71
-
72
54
  end
73
-
74
55
  end
75
-
76
56
  end
77
-
78
57
  end
79
-
80
- end
58
+ end
@@ -2,11 +2,8 @@ require "spec_helper"
2
2
  require "hamster/vector"
3
3
 
4
4
  describe Hamster::Vector do
5
-
6
5
  [:include?, :member?, :contains?, :elem?].each do |method|
7
-
8
6
  describe "##{method}" do
9
-
10
7
  [
11
8
  [[], "A", false],
12
9
  [[], nil, false],
@@ -24,7 +21,6 @@ describe Hamster::Vector do
24
21
  ].each do |values, item, expected|
25
22
 
26
23
  describe "on #{values.inspect}" do
27
-
28
24
  before do
29
25
  @vector = Hamster.vector(*values)
30
26
  end
@@ -32,13 +28,8 @@ describe Hamster::Vector do
32
28
  it "returns #{expected.inspect}" do
33
29
  @vector.send(method, item).should == expected
34
30
  end
35
-
36
31
  end
37
-
38
32
  end
39
-
40
33
  end
41
-
42
34
  end
43
-
44
- end
35
+ end
@@ -2,13 +2,9 @@ require "spec_helper"
2
2
  require "hamster/vector"
3
3
 
4
4
  describe Hamster::Vector do
5
-
6
5
  [:map, :collect].each do |method|
7
-
8
6
  describe "##{method}" do
9
-
10
7
  describe "when empty" do
11
-
12
8
  before do
13
9
  @original = Hamster.vector
14
10
  @mapped = @original.send(method) {}
@@ -17,17 +13,14 @@ describe Hamster::Vector do
17
13
  it "returns self" do
18
14
  @mapped.should equal(@original)
19
15
  end
20
-
21
16
  end
22
17
 
23
18
  describe "when not empty" do
24
-
25
19
  before do
26
20
  @original = Hamster.vector("A", "B", "C")
27
21
  end
28
22
 
29
23
  describe "with a block" do
30
-
31
24
  before do
32
25
  @mapped = @original.send(method, &:downcase)
33
26
  end
@@ -39,11 +32,9 @@ describe Hamster::Vector do
39
32
  it "returns a new vector with the mapped values" do
40
33
  @mapped.should == Hamster.vector("a", "b", "c")
41
34
  end
42
-
43
35
  end
44
36
 
45
37
  describe "with no block" do
46
-
47
38
  before do
48
39
  @result = @original.send(method)
49
40
  end
@@ -51,13 +42,16 @@ describe Hamster::Vector do
51
42
  it "returns self" do
52
43
  @result.should equal(@original)
53
44
  end
54
-
55
45
  end
56
-
57
46
  end
58
47
 
48
+ context "from a subclass" do
49
+ it "returns an instance of the subclass" do
50
+ @subclass = Class.new(Hamster::Vector)
51
+ @instance = @subclass[1,2,3]
52
+ @instance.map { |x| x + 1 }.class.should be(@subclass)
53
+ end
54
+ end
59
55
  end
60
-
61
56
  end
62
-
63
- end
57
+ end
@@ -0,0 +1,48 @@
1
+ require "spec_helper"
2
+ require "hamster/vector"
3
+
4
+ describe Hamster::Vector do
5
+ describe "new" do
6
+ it "accepts a single enumerable argument and creates a new vector" do
7
+ vector = Hamster::Vector.new([1,2,3])
8
+ vector.size.should be(3)
9
+ vector[0].should be(1)
10
+ vector[1].should be(2)
11
+ vector[2].should be(3)
12
+ end
13
+
14
+ it "returns the canonical empty vector if called with no arguments" do
15
+ Hamster::Vector.new.object_id.should be(Hamster::Vector.new.object_id)
16
+ Hamster::Vector.new.size.should be(0)
17
+ end
18
+
19
+ describe "from a subclass" do
20
+ before do
21
+ @subclass = Class.new(Hamster::Vector)
22
+ @instance = @subclass.new(["some", "values"])
23
+ end
24
+
25
+ it "should return an instance of the subclass" do
26
+ @instance.class.should be @subclass
27
+ end
28
+
29
+ it "should return a frozen instance" do
30
+ @instance.frozen?.should be true
31
+ end
32
+ end
33
+ end
34
+
35
+ describe "[]" do
36
+ it "accepts a variable number of items and creates a new vector" do
37
+ vector = Hamster::Vector['a', 'b']
38
+ vector.size.should be(2)
39
+ vector[0].should == 'a'
40
+ vector[1].should == 'b'
41
+ end
42
+
43
+ it "returns the canonical empty vector if called with no arguments" do
44
+ Hamster::Vector[].should be(Hamster::Vector.empty)
45
+ Hamster::Vector[].size.should be(0)
46
+ end
47
+ end
48
+ end
@@ -1,13 +1,9 @@
1
1
  require "spec_helper"
2
-
3
2
  require "hamster/vector"
4
3
 
5
4
  describe Hamster::Vector do
6
-
7
5
  [:reduce, :inject, :fold, :foldr].each do |method|
8
-
9
6
  describe "##{method}" do
10
-
11
7
  [
12
8
  [[], 10, 10],
13
9
  [[1], 10, 9],
@@ -15,33 +11,24 @@ describe Hamster::Vector do
15
11
  ].each do |values, initial, expected|
16
12
 
17
13
  describe "on #{values.inspect}" do
18
-
19
14
  before do
20
15
  @vector = Hamster.vector(*values)
21
16
  end
22
17
 
23
18
  describe "with an initial value of #{initial}" do
24
-
25
19
  describe "and a block" do
26
-
27
20
  it "returns #{expected.inspect}" do
28
21
  @vector.send(method, initial) { |memo, item| memo - item }.should == expected
29
22
  end
30
-
31
23
  end
32
24
 
33
25
  describe "and no block" do
34
-
35
26
  it "returns the memo" do
36
27
  @vector.send(method, initial).should == initial
37
28
  end
38
-
39
29
  end
40
-
41
30
  end
42
-
43
31
  end
44
-
45
32
  end
46
33
 
47
34
  [
@@ -51,37 +38,25 @@ describe Hamster::Vector do
51
38
  ].each do |values, expected|
52
39
 
53
40
  describe "on #{values.inspect}" do
54
-
55
41
  before do
56
42
  @vector = Hamster.vector(*values)
57
43
  end
58
44
 
59
45
  describe "with no initial value" do
60
-
61
46
  describe "and a block" do
62
-
63
47
  it "returns #{expected.inspect}" do
64
48
  @vector.send(method) { |memo, item| memo - item }.should == expected
65
49
  end
66
-
67
50
  end
68
51
 
69
52
  describe "and no block" do
70
-
71
53
  it "returns nil" do
72
54
  @vector.send(method).should be_nil
73
55
  end
74
-
75
56
  end
76
-
77
57
  end
78
-
79
58
  end
80
-
81
59
  end
82
-
83
60
  end
84
-
85
61
  end
86
-
87
- end
62
+ end
@@ -109,5 +109,13 @@ describe Hamster::Vector do
109
109
  end
110
110
  end
111
111
  end
112
+
113
+ context "from a subclass" do
114
+ it "returns an instance of the subclass" do
115
+ @subclass = Class.new(Hamster::Vector)
116
+ @instance = @subclass[1,2,3]
117
+ @instance.set(1, 2.5).class.should be(@subclass)
118
+ end
119
+ end
112
120
  end
113
121
  end
@@ -1,8 +1,3 @@
1
- require "coveralls"
2
- Coveralls.wear! do
3
- add_filter "/spec/"
4
- end
5
-
6
1
  require "pry"
7
2
  require "rspec"
8
3
 
metadata CHANGED
@@ -1,141 +1,99 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hamster
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1.pre.rc.1
4
+ version: 1.0.1.pre.rc2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simon Harris
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-09 00:00:00.000000000 Z
11
+ date: 2014-07-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.3'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.3'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rspec
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '2.14'
33
+ version: '3.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '2.14'
41
- - !ruby/object:Gem::Dependency
42
- name: mocha
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ~>
46
- - !ruby/object:Gem::Version
47
- version: '0.14'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ~>
53
- - !ruby/object:Gem::Version
54
- version: '0.14'
40
+ version: '3.0'
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: rake
57
43
  requirement: !ruby/object:Gem::Requirement
58
44
  requirements:
59
- - - ~>
45
+ - - "~>"
60
46
  - !ruby/object:Gem::Version
61
47
  version: '10.1'
62
48
  type: :development
63
49
  prerelease: false
64
50
  version_requirements: !ruby/object:Gem::Requirement
65
51
  requirements:
66
- - - ~>
52
+ - - "~>"
67
53
  - !ruby/object:Gem::Version
68
54
  version: '10.1'
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: yard
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
- - - ~>
59
+ - - "~>"
74
60
  - !ruby/object:Gem::Version
75
61
  version: '0.8'
76
62
  type: :development
77
63
  prerelease: false
78
64
  version_requirements: !ruby/object:Gem::Requirement
79
65
  requirements:
80
- - - ~>
66
+ - - "~>"
81
67
  - !ruby/object:Gem::Version
82
68
  version: '0.8'
83
- - !ruby/object:Gem::Dependency
84
- name: kramdown
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ~>
88
- - !ruby/object:Gem::Version
89
- version: '1.2'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ~>
95
- - !ruby/object:Gem::Version
96
- version: '1.2'
97
69
  - !ruby/object:Gem::Dependency
98
70
  name: pry
99
71
  requirement: !ruby/object:Gem::Requirement
100
72
  requirements:
101
- - - ~>
73
+ - - "~>"
102
74
  - !ruby/object:Gem::Version
103
75
  version: '0.9'
104
76
  type: :development
105
77
  prerelease: false
106
78
  version_requirements: !ruby/object:Gem::Requirement
107
79
  requirements:
108
- - - ~>
80
+ - - "~>"
109
81
  - !ruby/object:Gem::Version
110
82
  version: '0.9'
111
83
  - !ruby/object:Gem::Dependency
112
- name: coveralls
84
+ name: pry-doc
113
85
  requirement: !ruby/object:Gem::Requirement
114
86
  requirements:
115
- - - ~>
87
+ - - "~>"
116
88
  - !ruby/object:Gem::Version
117
- version: '0.7'
89
+ version: '0.6'
118
90
  type: :development
119
91
  prerelease: false
120
92
  version_requirements: !ruby/object:Gem::Requirement
121
93
  requirements:
122
- - - ~>
123
- - !ruby/object:Gem::Version
124
- version: '0.7'
125
- - !ruby/object:Gem::Dependency
126
- name: rubocop
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - ~>
94
+ - - "~>"
130
95
  - !ruby/object:Gem::Version
131
- version: '0.15'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - ~>
137
- - !ruby/object:Gem::Version
138
- version: '0.15'
96
+ version: '0.6'
139
97
  description: Efficient, immutable, thread-safe collection classes for Ruby
140
98
  email:
141
99
  - haruki_zaemon@mac.com
@@ -143,14 +101,16 @@ executables: []
143
101
  extensions: []
144
102
  extra_rdoc_files: []
145
103
  files:
104
+ - lib/hamster.rb
105
+ - lib/hamster/core_ext.rb
146
106
  - lib/hamster/core_ext/enumerable.rb
147
107
  - lib/hamster/core_ext/enumerator.rb
148
108
  - lib/hamster/core_ext/io.rb
149
- - lib/hamster/core_ext.rb
150
109
  - lib/hamster/enumerable.rb
151
110
  - lib/hamster/experimental/mutable_queue.rb
152
111
  - lib/hamster/experimental/mutable_set.rb
153
112
  - lib/hamster/experimental/mutable_stack.rb
113
+ - lib/hamster/groupable.rb
154
114
  - lib/hamster/hash.rb
155
115
  - lib/hamster/immutable.rb
156
116
  - lib/hamster/list.rb
@@ -165,7 +125,6 @@ files:
165
125
  - lib/hamster/undefined.rb
166
126
  - lib/hamster/vector.rb
167
127
  - lib/hamster/version.rb
168
- - lib/hamster.rb
169
128
  - spec/fixtures/io_spec.txt
170
129
  - spec/hamster/core_ext/array_spec.rb
171
130
  - spec/hamster/core_ext/enumerable_spec.rb
@@ -199,6 +158,7 @@ files:
199
158
  - spec/hamster/hash/map_spec.rb
200
159
  - spec/hamster/hash/marshal_spec.rb
201
160
  - spec/hamster/hash/merge_spec.rb
161
+ - spec/hamster/hash/new_spec.rb
202
162
  - spec/hamster/hash/none_spec.rb
203
163
  - spec/hamster/hash/put_spec.rb
204
164
  - spec/hamster/hash/reduce_spec.rb
@@ -330,6 +290,7 @@ files:
330
290
  - spec/hamster/set/marshal_spec.rb
331
291
  - spec/hamster/set/maximum_spec.rb
332
292
  - spec/hamster/set/minimum_spec.rb
293
+ - spec/hamster/set/new_spec.rb
333
294
  - spec/hamster/set/none_spec.rb
334
295
  - spec/hamster/set/one_spec.rb
335
296
  - spec/hamster/set/partition_spec.rb
@@ -362,6 +323,7 @@ files:
362
323
  - spec/hamster/stack/to_ary.rb
363
324
  - spec/hamster/stack/to_list_spec.rb
364
325
  - spec/hamster/trie/remove_spec.rb
326
+ - spec/hamster/tuple/construction_spec.rb
365
327
  - spec/hamster/tuple/copying_spec.rb
366
328
  - spec/hamster/tuple/eql_spec.rb
367
329
  - spec/hamster/tuple/first_spec.rb
@@ -387,6 +349,7 @@ files:
387
349
  - spec/hamster/vector/last_spec.rb
388
350
  - spec/hamster/vector/length_spec.rb
389
351
  - spec/hamster/vector/map_spec.rb
352
+ - spec/hamster/vector/new_spec.rb
390
353
  - spec/hamster/vector/reduce_spec.rb
391
354
  - spec/hamster/vector/set_spec.rb
392
355
  - spec/hamster/vector/to_a_spec.rb
@@ -396,7 +359,7 @@ files:
396
359
  - spec/lib/hamster/vector/exists_spec.rb
397
360
  - spec/lib/hamster/vector/ltlt_spec.rb
398
361
  - spec/spec_helper.rb
399
- homepage: http://harukizaemon.github.io/hamster
362
+ homepage: https://github.com/hamstergem/hamster
400
363
  licenses:
401
364
  - MIT
402
365
  metadata: {}
@@ -406,17 +369,17 @@ require_paths:
406
369
  - lib
407
370
  required_ruby_version: !ruby/object:Gem::Requirement
408
371
  requirements:
409
- - - '>='
372
+ - - ">="
410
373
  - !ruby/object:Gem::Version
411
- version: 1.8.7
374
+ version: 1.9.3
412
375
  required_rubygems_version: !ruby/object:Gem::Requirement
413
376
  requirements:
414
- - - '>'
377
+ - - ">"
415
378
  - !ruby/object:Gem::Version
416
379
  version: 1.3.1
417
380
  requirements: []
418
381
  rubyforge_project:
419
- rubygems_version: 2.1.11
382
+ rubygems_version: 2.2.2
420
383
  signing_key:
421
384
  specification_version: 4
422
385
  summary: Efficient, immutable, thread-safe collection classes for Ruby
@@ -454,6 +417,7 @@ test_files:
454
417
  - spec/hamster/hash/map_spec.rb
455
418
  - spec/hamster/hash/marshal_spec.rb
456
419
  - spec/hamster/hash/merge_spec.rb
420
+ - spec/hamster/hash/new_spec.rb
457
421
  - spec/hamster/hash/none_spec.rb
458
422
  - spec/hamster/hash/put_spec.rb
459
423
  - spec/hamster/hash/reduce_spec.rb
@@ -585,6 +549,7 @@ test_files:
585
549
  - spec/hamster/set/marshal_spec.rb
586
550
  - spec/hamster/set/maximum_spec.rb
587
551
  - spec/hamster/set/minimum_spec.rb
552
+ - spec/hamster/set/new_spec.rb
588
553
  - spec/hamster/set/none_spec.rb
589
554
  - spec/hamster/set/one_spec.rb
590
555
  - spec/hamster/set/partition_spec.rb
@@ -617,6 +582,7 @@ test_files:
617
582
  - spec/hamster/stack/to_ary.rb
618
583
  - spec/hamster/stack/to_list_spec.rb
619
584
  - spec/hamster/trie/remove_spec.rb
585
+ - spec/hamster/tuple/construction_spec.rb
620
586
  - spec/hamster/tuple/copying_spec.rb
621
587
  - spec/hamster/tuple/eql_spec.rb
622
588
  - spec/hamster/tuple/first_spec.rb
@@ -642,6 +608,7 @@ test_files:
642
608
  - spec/hamster/vector/last_spec.rb
643
609
  - spec/hamster/vector/length_spec.rb
644
610
  - spec/hamster/vector/map_spec.rb
611
+ - spec/hamster/vector/new_spec.rb
645
612
  - spec/hamster/vector/reduce_spec.rb
646
613
  - spec/hamster/vector/set_spec.rb
647
614
  - spec/hamster/vector/to_a_spec.rb