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,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