hamster 0.1.20 → 0.1.21
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/History.rdoc +18 -0
 - data/lib/hamster/list.rb +24 -12
 - data/lib/hamster/set.rb +19 -0
 - data/lib/hamster/version.rb +1 -1
 - data/spec/hamster/list/join_spec.rb +77 -0
 - data/spec/hamster/list/sort_by_spec.rb +75 -0
 - data/spec/hamster/list/sort_spec.rb +52 -0
 - data/spec/hamster/set/head_spec.rb +36 -0
 - data/spec/hamster/set/inspect_spec.rb +48 -0
 - data/spec/hamster/set/sort_by_spec.rb +60 -0
 - data/spec/hamster/set/sort_spec.rb +37 -0
 - data/spec/hamster/set/to_set_spec.rb +32 -0
 - metadata +10 -2
 
    
        data/History.rdoc
    CHANGED
    
    | 
         @@ -1,3 +1,21 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            === 0.1.21 / 2010-01-08
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            * Implement List#sort. (Very, VERY inefficient implementation!)
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            * Implement List#sort_by. (Very, VERY inefficient implementation!)
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            * Implement Set#to_set.
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            * Implement Set#inspect.
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            * Implement Set#first (aliased as #head).
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            * Implement Set#sort. (Very, VERY inefficient implementation!)
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            * Implement Set#sort_by. (Very, VERY inefficient implementation!)
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
            * Implement List#join.
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
       1 
19 
     | 
    
         
             
            === 0.1.20 / 2010-01-07
         
     | 
| 
       2 
20 
     | 
    
         | 
| 
       3 
21 
     | 
    
         
             
            * Implement Stack#clear.
         
     | 
    
        data/lib/hamster/list.rb
    CHANGED
    
    | 
         @@ -2,8 +2,6 @@ require 'monitor' 
     | 
|
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            module Hamster
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
              Undefined = Object.new
         
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
5 
     | 
    
         
             
              class << self
         
     | 
| 
       8 
6 
     | 
    
         | 
| 
       9 
7 
     | 
    
         
             
                def list(*items)
         
     | 
| 
         @@ -22,11 +20,11 @@ module Hamster 
     | 
|
| 
       22 
20 
     | 
    
         
             
                alias_method :range, :interval
         
     | 
| 
       23 
21 
     | 
    
         | 
| 
       24 
22 
     | 
    
         
             
                def repeat(item)
         
     | 
| 
       25 
     | 
    
         
            -
                   
     | 
| 
      
 23 
     | 
    
         
            +
                  Stream.new(item) { repeat(item) }
         
     | 
| 
       26 
24 
     | 
    
         
             
                end
         
     | 
| 
       27 
25 
     | 
    
         | 
| 
       28 
26 
     | 
    
         
             
                def replicate(number, item)
         
     | 
| 
       29 
     | 
    
         
            -
                   
     | 
| 
      
 27 
     | 
    
         
            +
                  repeat(item).take(number)
         
     | 
| 
       30 
28 
     | 
    
         
             
                end
         
     | 
| 
       31 
29 
     | 
    
         | 
| 
       32 
30 
     | 
    
         
             
                def iterate(item, &block)
         
     | 
| 
         @@ -37,6 +35,8 @@ module Hamster 
     | 
|
| 
       37 
35 
     | 
    
         | 
| 
       38 
36 
     | 
    
         
             
              module List
         
     | 
| 
       39 
37 
     | 
    
         | 
| 
      
 38 
     | 
    
         
            +
                Undefined = Object.new
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
       40 
40 
     | 
    
         
             
                def empty?
         
     | 
| 
       41 
41 
     | 
    
         
             
                  false
         
     | 
| 
       42 
42 
     | 
    
         
             
                end
         
     | 
| 
         @@ -170,7 +170,7 @@ module Hamster 
     | 
|
| 
       170 
170 
     | 
    
         | 
| 
       171 
171 
     | 
    
         
             
                def partition(&block)
         
     | 
| 
       172 
172 
     | 
    
         
             
                  return self unless block_given?
         
     | 
| 
       173 
     | 
    
         
            -
                  Stream.new(filter(&block)) {  
     | 
| 
      
 173 
     | 
    
         
            +
                  Stream.new(filter(&block)) { Sequence.new(reject(&block)) }
         
     | 
| 
       174 
174 
     | 
    
         
             
                end
         
     | 
| 
       175 
175 
     | 
    
         | 
| 
       176 
176 
     | 
    
         
             
                def append(other)
         
     | 
| 
         @@ -201,7 +201,7 @@ module Hamster 
     | 
|
| 
       201 
201 
     | 
    
         
             
                end
         
     | 
| 
       202 
202 
     | 
    
         | 
| 
       203 
203 
     | 
    
         
             
                def zip(other)
         
     | 
| 
       204 
     | 
    
         
            -
                  Stream.new( 
     | 
| 
      
 204 
     | 
    
         
            +
                  Stream.new(Sequence.new(other.head).cons(head)) { tail.zip(other.tail) }
         
     | 
| 
       205 
205 
     | 
    
         
             
                end
         
     | 
| 
       206 
206 
     | 
    
         | 
| 
       207 
207 
     | 
    
         
             
                def cycle
         
     | 
| 
         @@ -209,17 +209,16 @@ module Hamster 
     | 
|
| 
       209 
209 
     | 
    
         
             
                end
         
     | 
| 
       210 
210 
     | 
    
         | 
| 
       211 
211 
     | 
    
         
             
                def split_at(number)
         
     | 
| 
       212 
     | 
    
         
            -
                   
     | 
| 
       213 
     | 
    
         
            -
                  EmptyList.cons(drop(number)).cons(take(number))
         
     | 
| 
      
 212 
     | 
    
         
            +
                  Sequence.new(drop(number)).cons(take(number))
         
     | 
| 
       214 
213 
     | 
    
         
             
                end
         
     | 
| 
       215 
214 
     | 
    
         | 
| 
       216 
215 
     | 
    
         
             
                def span(&block)
         
     | 
| 
       217 
     | 
    
         
            -
                  return  
     | 
| 
       218 
     | 
    
         
            -
                  Stream.new(take_while(&block)) {  
     | 
| 
      
 216 
     | 
    
         
            +
                  return Sequence.new(EmptyList).cons(self) unless block_given?
         
     | 
| 
      
 217 
     | 
    
         
            +
                  Stream.new(take_while(&block)) { Sequence.new(drop_while(&block)) }
         
     | 
| 
       219 
218 
     | 
    
         
             
                end
         
     | 
| 
       220 
219 
     | 
    
         | 
| 
       221 
220 
     | 
    
         
             
                def break(&block)
         
     | 
| 
       222 
     | 
    
         
            -
                  return  
     | 
| 
      
 221 
     | 
    
         
            +
                  return Sequence.new(EmptyList).cons(self) unless block_given?
         
     | 
| 
       223 
222 
     | 
    
         
             
                  span { |item| !yield(item) }
         
     | 
| 
       224 
223 
     | 
    
         
             
                end
         
     | 
| 
       225 
224 
     | 
    
         | 
| 
         @@ -227,6 +226,19 @@ module Hamster 
     | 
|
| 
       227 
226 
     | 
    
         
             
                  EmptyList
         
     | 
| 
       228 
227 
     | 
    
         
             
                end
         
     | 
| 
       229 
228 
     | 
    
         | 
| 
      
 229 
     | 
    
         
            +
                def sort
         
     | 
| 
      
 230 
     | 
    
         
            +
                  sort_by { |item| item }
         
     | 
| 
      
 231 
     | 
    
         
            +
                end
         
     | 
| 
      
 232 
     | 
    
         
            +
             
     | 
| 
      
 233 
     | 
    
         
            +
                def sort_by(&block)
         
     | 
| 
      
 234 
     | 
    
         
            +
                  return sort unless block_given?
         
     | 
| 
      
 235 
     | 
    
         
            +
                  Hamster.list(*to_a.sort_by(&block))
         
     | 
| 
      
 236 
     | 
    
         
            +
                end
         
     | 
| 
      
 237 
     | 
    
         
            +
             
     | 
| 
      
 238 
     | 
    
         
            +
                def join(sep = nil)
         
     | 
| 
      
 239 
     | 
    
         
            +
                  to_a.join(sep)
         
     | 
| 
      
 240 
     | 
    
         
            +
                end
         
     | 
| 
      
 241 
     | 
    
         
            +
             
     | 
| 
       230 
242 
     | 
    
         
             
                def eql?(other)
         
     | 
| 
       231 
243 
     | 
    
         
             
                  return false unless other.is_a?(List)
         
     | 
| 
       232 
244 
     | 
    
         | 
| 
         @@ -293,7 +305,7 @@ module Hamster 
     | 
|
| 
       293 
305 
     | 
    
         
             
                attr_reader :head, :tail
         
     | 
| 
       294 
306 
     | 
    
         
             
                alias_method :first, :head
         
     | 
| 
       295 
307 
     | 
    
         | 
| 
       296 
     | 
    
         
            -
                def initialize(head, tail =  
     | 
| 
      
 308 
     | 
    
         
            +
                def initialize(head, tail = EmptyList)
         
     | 
| 
       297 
309 
     | 
    
         
             
                  @head = head
         
     | 
| 
       298 
310 
     | 
    
         
             
                  @tail = tail
         
     | 
| 
       299 
311 
     | 
    
         
             
                end
         
     | 
    
        data/lib/hamster/set.rb
    CHANGED
    
    | 
         @@ -120,6 +120,20 @@ module Hamster 
     | 
|
| 
       120 
120 
     | 
    
         
             
                  filter { |item| pattern === item }.map(&block)
         
     | 
| 
       121 
121 
     | 
    
         
             
                end
         
     | 
| 
       122 
122 
     | 
    
         | 
| 
      
 123 
     | 
    
         
            +
                def head
         
     | 
| 
      
 124 
     | 
    
         
            +
                  each { |item| return item }
         
     | 
| 
      
 125 
     | 
    
         
            +
                  nil
         
     | 
| 
      
 126 
     | 
    
         
            +
                end
         
     | 
| 
      
 127 
     | 
    
         
            +
                alias_method :first, :head
         
     | 
| 
      
 128 
     | 
    
         
            +
             
     | 
| 
      
 129 
     | 
    
         
            +
                def sort
         
     | 
| 
      
 130 
     | 
    
         
            +
                  to_list.sort
         
     | 
| 
      
 131 
     | 
    
         
            +
                end
         
     | 
| 
      
 132 
     | 
    
         
            +
             
     | 
| 
      
 133 
     | 
    
         
            +
                def sort_by(&block)
         
     | 
| 
      
 134 
     | 
    
         
            +
                  to_list.sort_by(&block)
         
     | 
| 
      
 135 
     | 
    
         
            +
                end
         
     | 
| 
      
 136 
     | 
    
         
            +
             
     | 
| 
       123 
137 
     | 
    
         
             
                def eql?(other)
         
     | 
| 
       124 
138 
     | 
    
         
             
                  other.is_a?(self.class) && @trie.eql?(other.instance_eval{@trie})
         
     | 
| 
       125 
139 
     | 
    
         
             
                end
         
     | 
| 
         @@ -131,6 +145,7 @@ module Hamster 
     | 
|
| 
       131 
145 
     | 
    
         
             
                alias_method :clone, :dup
         
     | 
| 
       132 
146 
     | 
    
         
             
                alias_method :uniq, :dup
         
     | 
| 
       133 
147 
     | 
    
         
             
                alias_method :nub, :dup
         
     | 
| 
      
 148 
     | 
    
         
            +
                alias_method :to_set, :dup
         
     | 
| 
       134 
149 
     | 
    
         | 
| 
       135 
150 
     | 
    
         
             
                def to_a
         
     | 
| 
       136 
151 
     | 
    
         
             
                  reduce([]) { |a, item| a << item }
         
     | 
| 
         @@ -141,6 +156,10 @@ module Hamster 
     | 
|
| 
       141 
156 
     | 
    
         
             
                  reduce(Hamster.list) { |list, item| list.cons(item) }
         
     | 
| 
       142 
157 
     | 
    
         
             
                end
         
     | 
| 
       143 
158 
     | 
    
         | 
| 
      
 159 
     | 
    
         
            +
                def inspect
         
     | 
| 
      
 160 
     | 
    
         
            +
                  "{#{to_a.inspect[1..-2]}}"
         
     | 
| 
      
 161 
     | 
    
         
            +
                end
         
     | 
| 
      
 162 
     | 
    
         
            +
             
     | 
| 
       144 
163 
     | 
    
         
             
              end
         
     | 
| 
       145 
164 
     | 
    
         | 
| 
       146 
165 
     | 
    
         
             
            end
         
     | 
    
        data/lib/hamster/version.rb
    CHANGED
    
    
| 
         @@ -0,0 +1,77 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'hamster/list'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            describe Hamster::List do
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
              describe "#join" do
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                describe "doesn't run out of stack space on a really big" do
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                  it "stream" do
         
     | 
| 
      
 12 
     | 
    
         
            +
                    @list = Hamster.interval(0, STACK_OVERFLOW_DEPTH)
         
     | 
| 
      
 13 
     | 
    
         
            +
                  end
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                  it "list" do
         
     | 
| 
      
 16 
     | 
    
         
            +
                    @list = (0...STACK_OVERFLOW_DEPTH).reduce(Hamster.list) { |list, i| list.cons(i) }
         
     | 
| 
      
 17 
     | 
    
         
            +
                  end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                  after do
         
     | 
| 
      
 20 
     | 
    
         
            +
                    @list.join
         
     | 
| 
      
 21 
     | 
    
         
            +
                  end
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
                describe "with a separator" do
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                  [
         
     | 
| 
      
 28 
     | 
    
         
            +
                    [[], ""],
         
     | 
| 
      
 29 
     | 
    
         
            +
                    [["A"], "A"],
         
     | 
| 
      
 30 
     | 
    
         
            +
                    [["A", "B", "C"], "A|B|C"]
         
     | 
| 
      
 31 
     | 
    
         
            +
                  ].each do |values, expected|
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                    describe "on #{values.inspect}" do
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
                      before do
         
     | 
| 
      
 36 
     | 
    
         
            +
                        original = Hamster.list(*values)
         
     | 
| 
      
 37 
     | 
    
         
            +
                        @result = original.join("|")
         
     | 
| 
      
 38 
     | 
    
         
            +
                      end
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
                      it "returns #{expected.inspect}" do
         
     | 
| 
      
 41 
     | 
    
         
            +
                        @result.should == expected
         
     | 
| 
      
 42 
     | 
    
         
            +
                      end
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
                    end
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
                  end
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
                end
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
                describe "without a separator" do
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
                  [
         
     | 
| 
      
 53 
     | 
    
         
            +
                    [[], ""],
         
     | 
| 
      
 54 
     | 
    
         
            +
                    [["A"], "A"],
         
     | 
| 
      
 55 
     | 
    
         
            +
                    [["A", "B", "C"], "ABC"]
         
     | 
| 
      
 56 
     | 
    
         
            +
                  ].each do |values, expected|
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
                    describe "on #{values.inspect}" do
         
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
      
 60 
     | 
    
         
            +
                      before do
         
     | 
| 
      
 61 
     | 
    
         
            +
                        original = Hamster.list(*values)
         
     | 
| 
      
 62 
     | 
    
         
            +
                        @result = original.join
         
     | 
| 
      
 63 
     | 
    
         
            +
                      end
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
      
 65 
     | 
    
         
            +
                      it "returns #{expected.inspect}" do
         
     | 
| 
      
 66 
     | 
    
         
            +
                        @result.should == expected
         
     | 
| 
      
 67 
     | 
    
         
            +
                      end
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
      
 69 
     | 
    
         
            +
                    end
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
                  end
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
      
 73 
     | 
    
         
            +
                end
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
              end
         
     | 
| 
      
 76 
     | 
    
         
            +
             
     | 
| 
      
 77 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,75 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'hamster/list'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            describe Hamster::List do
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
              describe "#sort_by" do
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                describe "doesn't run out of stack space on a really big" do
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                  it "stream" do
         
     | 
| 
      
 12 
     | 
    
         
            +
                    @list = Hamster.interval(0, STACK_OVERFLOW_DEPTH)
         
     | 
| 
      
 13 
     | 
    
         
            +
                  end
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                  it "list" do
         
     | 
| 
      
 16 
     | 
    
         
            +
                    @list = (0...STACK_OVERFLOW_DEPTH).reduce(Hamster.list) { |list, i| list.cons(i) }
         
     | 
| 
      
 17 
     | 
    
         
            +
                  end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                  after do
         
     | 
| 
      
 20 
     | 
    
         
            +
                    @list.sort_by { |item| item }
         
     | 
| 
      
 21 
     | 
    
         
            +
                  end
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
                [
         
     | 
| 
      
 26 
     | 
    
         
            +
                  [[], []],
         
     | 
| 
      
 27 
     | 
    
         
            +
                  [["A"], ["A"]],
         
     | 
| 
      
 28 
     | 
    
         
            +
                  [["Ichi", "Ni", "San"], ["Ni", "San", "Ichi"]],
         
     | 
| 
      
 29 
     | 
    
         
            +
                ].each do |values, expected|
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                  describe "on #{values.inspect}" do
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                    before do
         
     | 
| 
      
 34 
     | 
    
         
            +
                      @original = Hamster.list(*values)
         
     | 
| 
      
 35 
     | 
    
         
            +
                    end
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
                    describe "with a block" do
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
                      before do
         
     | 
| 
      
 40 
     | 
    
         
            +
                        @result = @original.sort_by { |item| item.length }
         
     | 
| 
      
 41 
     | 
    
         
            +
                      end
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
                      it "preserves the original" do
         
     | 
| 
      
 44 
     | 
    
         
            +
                        @original.should == Hamster.list(*values)
         
     | 
| 
      
 45 
     | 
    
         
            +
                      end
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
                      it "returns #{expected.inspect}" do
         
     | 
| 
      
 48 
     | 
    
         
            +
                        @result.should == Hamster.list(*expected)
         
     | 
| 
      
 49 
     | 
    
         
            +
                      end
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
                    end
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
                    describe "without a block" do
         
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
                      before do
         
     | 
| 
      
 56 
     | 
    
         
            +
                        @result = @original.sort_by
         
     | 
| 
      
 57 
     | 
    
         
            +
                      end
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
                      it "preserves the original" do
         
     | 
| 
      
 60 
     | 
    
         
            +
                        @original.should == Hamster.list(*values)
         
     | 
| 
      
 61 
     | 
    
         
            +
                      end
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
                      it "returns #{expected.sort.inspect}" do
         
     | 
| 
      
 64 
     | 
    
         
            +
                        @result.should == Hamster.list(*expected.sort)
         
     | 
| 
      
 65 
     | 
    
         
            +
                      end
         
     | 
| 
      
 66 
     | 
    
         
            +
             
     | 
| 
      
 67 
     | 
    
         
            +
                    end
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
      
 69 
     | 
    
         
            +
                  end
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
                end
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
      
 73 
     | 
    
         
            +
              end
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,52 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'hamster/list'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            describe Hamster::List do
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
              describe "#sort" do
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                describe "doesn't run out of stack space on a really big" do
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                  it "stream" do
         
     | 
| 
      
 12 
     | 
    
         
            +
                    @list = Hamster.interval(0, STACK_OVERFLOW_DEPTH)
         
     | 
| 
      
 13 
     | 
    
         
            +
                  end
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                  it "list" do
         
     | 
| 
      
 16 
     | 
    
         
            +
                    @list = (0...STACK_OVERFLOW_DEPTH).reduce(Hamster.list) { |list, i| list.cons(i) }
         
     | 
| 
      
 17 
     | 
    
         
            +
                  end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                  after do
         
     | 
| 
      
 20 
     | 
    
         
            +
                    @list.sort
         
     | 
| 
      
 21 
     | 
    
         
            +
                  end
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
                [
         
     | 
| 
      
 26 
     | 
    
         
            +
                  [[], []],
         
     | 
| 
      
 27 
     | 
    
         
            +
                  [["A"], ["A"]],
         
     | 
| 
      
 28 
     | 
    
         
            +
                  [["C", "A", "B"], ["A", "B", "C"]],
         
     | 
| 
      
 29 
     | 
    
         
            +
                ].each do |values, expected|
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                  describe "on #{values.inspect}" do
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                    before do
         
     | 
| 
      
 34 
     | 
    
         
            +
                      @original = Hamster.list(*values)
         
     | 
| 
      
 35 
     | 
    
         
            +
                      @result = @original.sort
         
     | 
| 
      
 36 
     | 
    
         
            +
                    end
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
                    it "preserves the original" do
         
     | 
| 
      
 39 
     | 
    
         
            +
                      @original.should == Hamster.list(*values)
         
     | 
| 
      
 40 
     | 
    
         
            +
                    end
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
                    it "returns #{expected.inspect}" do
         
     | 
| 
      
 43 
     | 
    
         
            +
                      @result.should == Hamster.list(*expected)
         
     | 
| 
      
 44 
     | 
    
         
            +
                    end
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
                  end
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
                end
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
              end
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,36 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'hamster/set'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            describe Hamster::Set do
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
              [:head, :first].each do |method|
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                describe "##{method}" do
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                  [
         
     | 
| 
      
 12 
     | 
    
         
            +
                    [[], nil],
         
     | 
| 
      
 13 
     | 
    
         
            +
                    [["A"], "A"],
         
     | 
| 
      
 14 
     | 
    
         
            +
                    [[1, 2, 3], 1],
         
     | 
| 
      
 15 
     | 
    
         
            +
                  ].each do |values, expected|
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                    describe "on #{values.inspect}" do
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                      before do
         
     | 
| 
      
 20 
     | 
    
         
            +
                        original = Hamster.set(*values)
         
     | 
| 
      
 21 
     | 
    
         
            +
                        @result = original.send(method)
         
     | 
| 
      
 22 
     | 
    
         
            +
                      end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                      it "returns #{expected.inspect}" do
         
     | 
| 
      
 25 
     | 
    
         
            +
                        @result.should == expected
         
     | 
| 
      
 26 
     | 
    
         
            +
                      end
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                    end
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
                  end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                end
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
              end
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,48 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'hamster/set'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            describe Hamster::List do
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
              describe "#inspect" do
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                describe "doesn't run out of stack space on a really big" do
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                  it "stream" do
         
     | 
| 
      
 12 
     | 
    
         
            +
                    @list = Hamster.interval(0, STACK_OVERFLOW_DEPTH)
         
     | 
| 
      
 13 
     | 
    
         
            +
                  end
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                  it "list" do
         
     | 
| 
      
 16 
     | 
    
         
            +
                    @list = (0...STACK_OVERFLOW_DEPTH).reduce(Hamster.list) { |list, i| list.cons(i) }
         
     | 
| 
      
 17 
     | 
    
         
            +
                  end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                  after do
         
     | 
| 
      
 20 
     | 
    
         
            +
                    @list.inspect
         
     | 
| 
      
 21 
     | 
    
         
            +
                  end
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
                [
         
     | 
| 
      
 26 
     | 
    
         
            +
                  [[], "{}"],
         
     | 
| 
      
 27 
     | 
    
         
            +
                  [["A"], "{\"A\"}"],
         
     | 
| 
      
 28 
     | 
    
         
            +
                  [[1, 2, 3], "{1, 2, 3}"]
         
     | 
| 
      
 29 
     | 
    
         
            +
                ].each do |values, expected|
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                  describe "on #{values.inspect}" do
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                    before do
         
     | 
| 
      
 34 
     | 
    
         
            +
                      original = Hamster.set(*values)
         
     | 
| 
      
 35 
     | 
    
         
            +
                      @result = original.inspect
         
     | 
| 
      
 36 
     | 
    
         
            +
                    end
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
                    it "returns #{expected.inspect}" do
         
     | 
| 
      
 39 
     | 
    
         
            +
                      @result.should == expected
         
     | 
| 
      
 40 
     | 
    
         
            +
                    end
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
                  end
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
                end
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
              end
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,60 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'hamster/set'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'hamster/list'
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            describe Hamster::List do
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
              describe "#sort_by" do
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                [
         
     | 
| 
      
 11 
     | 
    
         
            +
                  [[], []],
         
     | 
| 
      
 12 
     | 
    
         
            +
                  [["A"], ["A"]],
         
     | 
| 
      
 13 
     | 
    
         
            +
                  [["Ichi", "Ni", "San"], ["Ni", "San", "Ichi"]],
         
     | 
| 
      
 14 
     | 
    
         
            +
                ].each do |values, expected|
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                  describe "on #{values.inspect}" do
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                    before do
         
     | 
| 
      
 19 
     | 
    
         
            +
                      @original = Hamster.set(*values)
         
     | 
| 
      
 20 
     | 
    
         
            +
                    end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
                    describe "with a block" do
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                      before do
         
     | 
| 
      
 25 
     | 
    
         
            +
                        @result = @original.sort_by { |item| item.length }
         
     | 
| 
      
 26 
     | 
    
         
            +
                      end
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                      it "preserves the original" do
         
     | 
| 
      
 29 
     | 
    
         
            +
                        @original.should == Hamster.set(*values)
         
     | 
| 
      
 30 
     | 
    
         
            +
                      end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                      it "returns #{expected.inspect}" do
         
     | 
| 
      
 33 
     | 
    
         
            +
                        @result.should == Hamster.list(*expected)
         
     | 
| 
      
 34 
     | 
    
         
            +
                      end
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                    end
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
                    describe "without a block" do
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
                      before do
         
     | 
| 
      
 41 
     | 
    
         
            +
                        @result = @original.sort_by
         
     | 
| 
      
 42 
     | 
    
         
            +
                      end
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
                      it "preserves the original" do
         
     | 
| 
      
 45 
     | 
    
         
            +
                        @original.should == Hamster.set(*values)
         
     | 
| 
      
 46 
     | 
    
         
            +
                      end
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
                      it "returns #{expected.sort.inspect}" do
         
     | 
| 
      
 49 
     | 
    
         
            +
                        @result.should == Hamster.list(*expected.sort)
         
     | 
| 
      
 50 
     | 
    
         
            +
                      end
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
                    end
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
                  end
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
                end
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
              end
         
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
      
 60 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,37 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'hamster/set'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'hamster/list'
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            describe Hamster::Set do
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
              describe "#sort" do
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                [
         
     | 
| 
      
 11 
     | 
    
         
            +
                  [[], []],
         
     | 
| 
      
 12 
     | 
    
         
            +
                  [["A"], ["A"]],
         
     | 
| 
      
 13 
     | 
    
         
            +
                  [["C", "A", "B"], ["A", "B", "C"]],
         
     | 
| 
      
 14 
     | 
    
         
            +
                ].each do |values, expected|
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                  describe "on #{values.inspect}" do
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                    before do
         
     | 
| 
      
 19 
     | 
    
         
            +
                      @original = Hamster.set(*values)
         
     | 
| 
      
 20 
     | 
    
         
            +
                      @result = @original.sort
         
     | 
| 
      
 21 
     | 
    
         
            +
                    end
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                    it "preserves the original" do
         
     | 
| 
      
 24 
     | 
    
         
            +
                      @original.should == Hamster.set(*values)
         
     | 
| 
      
 25 
     | 
    
         
            +
                    end
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                    it "returns #{expected.inspect}" do
         
     | 
| 
      
 28 
     | 
    
         
            +
                      @result.should == Hamster.list(*expected)
         
     | 
| 
      
 29 
     | 
    
         
            +
                    end
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                  end
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                end
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
              end
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,32 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'hamster/set'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            describe Hamster::Set do
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
              describe "#to_set" do
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                [
         
     | 
| 
      
 10 
     | 
    
         
            +
                  [],
         
     | 
| 
      
 11 
     | 
    
         
            +
                  ["A"],
         
     | 
| 
      
 12 
     | 
    
         
            +
                  ["A", "B", "C"],
         
     | 
| 
      
 13 
     | 
    
         
            +
                ].each do |values|
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                  describe "on #{values.inspect}" do
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                    before do
         
     | 
| 
      
 18 
     | 
    
         
            +
                      @original = Hamster.set(*values)
         
     | 
| 
      
 19 
     | 
    
         
            +
                      @result = @original.to_set
         
     | 
| 
      
 20 
     | 
    
         
            +
                    end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
                    it "returns self" do
         
     | 
| 
      
 23 
     | 
    
         
            +
                      @result.should equal(@original)
         
     | 
| 
      
 24 
     | 
    
         
            +
                    end
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                  end
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                end
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
              end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification 
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: hamster
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.1.21
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors: 
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Simon Harris
         
     | 
| 
         @@ -9,7 +9,7 @@ autorequire: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
     | 
    
         
            -
            date: 2010-01- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2010-01-08 00:00:00 +11:00
         
     | 
| 
       13 
13 
     | 
    
         
             
            default_executable: 
         
     | 
| 
       14 
14 
     | 
    
         
             
            dependencies: 
         
     | 
| 
       15 
15 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
         @@ -84,6 +84,7 @@ files: 
     | 
|
| 
       84 
84 
     | 
    
         
             
            - spec/hamster/list/head_spec.rb
         
     | 
| 
       85 
85 
     | 
    
         
             
            - spec/hamster/list/include_spec.rb
         
     | 
| 
       86 
86 
     | 
    
         
             
            - spec/hamster/list/inspect_spec.rb
         
     | 
| 
      
 87 
     | 
    
         
            +
            - spec/hamster/list/join_spec.rb
         
     | 
| 
       87 
88 
     | 
    
         
             
            - spec/hamster/list/map_spec.rb
         
     | 
| 
       88 
89 
     | 
    
         
             
            - spec/hamster/list/maximum_spec.rb
         
     | 
| 
       89 
90 
     | 
    
         
             
            - spec/hamster/list/minimum_spec.rb
         
     | 
| 
         @@ -94,6 +95,8 @@ files: 
     | 
|
| 
       94 
95 
     | 
    
         
             
            - spec/hamster/list/reject_spec.rb
         
     | 
| 
       95 
96 
     | 
    
         
             
            - spec/hamster/list/reverse_spec.rb
         
     | 
| 
       96 
97 
     | 
    
         
             
            - spec/hamster/list/size_spec.rb
         
     | 
| 
      
 98 
     | 
    
         
            +
            - spec/hamster/list/sort_by_spec.rb
         
     | 
| 
      
 99 
     | 
    
         
            +
            - spec/hamster/list/sort_spec.rb
         
     | 
| 
       97 
100 
     | 
    
         
             
            - spec/hamster/list/span_spec.rb
         
     | 
| 
       98 
101 
     | 
    
         
             
            - spec/hamster/list/split_at_spec.rb
         
     | 
| 
       99 
102 
     | 
    
         
             
            - spec/hamster/list/tail_spec.rb
         
     | 
| 
         @@ -113,15 +116,20 @@ files: 
     | 
|
| 
       113 
116 
     | 
    
         
             
            - spec/hamster/set/eql_spec.rb
         
     | 
| 
       114 
117 
     | 
    
         
             
            - spec/hamster/set/filter_spec.rb
         
     | 
| 
       115 
118 
     | 
    
         
             
            - spec/hamster/set/grep_spec.rb
         
     | 
| 
      
 119 
     | 
    
         
            +
            - spec/hamster/set/head_spec.rb
         
     | 
| 
       116 
120 
     | 
    
         
             
            - spec/hamster/set/include_spec.rb
         
     | 
| 
      
 121 
     | 
    
         
            +
            - spec/hamster/set/inspect_spec.rb
         
     | 
| 
       117 
122 
     | 
    
         
             
            - spec/hamster/set/map_spec.rb
         
     | 
| 
       118 
123 
     | 
    
         
             
            - spec/hamster/set/none_spec.rb
         
     | 
| 
       119 
124 
     | 
    
         
             
            - spec/hamster/set/reduce_spec.rb
         
     | 
| 
       120 
125 
     | 
    
         
             
            - spec/hamster/set/reject_spec.rb
         
     | 
| 
       121 
126 
     | 
    
         
             
            - spec/hamster/set/remove_spec.rb
         
     | 
| 
       122 
127 
     | 
    
         
             
            - spec/hamster/set/size_spec.rb
         
     | 
| 
      
 128 
     | 
    
         
            +
            - spec/hamster/set/sort_by_spec.rb
         
     | 
| 
      
 129 
     | 
    
         
            +
            - spec/hamster/set/sort_spec.rb
         
     | 
| 
       123 
130 
     | 
    
         
             
            - spec/hamster/set/to_a_spec.rb
         
     | 
| 
       124 
131 
     | 
    
         
             
            - spec/hamster/set/to_list.rb
         
     | 
| 
      
 132 
     | 
    
         
            +
            - spec/hamster/set/to_set_spec.rb
         
     | 
| 
       125 
133 
     | 
    
         
             
            - spec/hamster/set/uniq_spec.rb
         
     | 
| 
       126 
134 
     | 
    
         
             
            - spec/hamster/stack/clear_spec.rb
         
     | 
| 
       127 
135 
     | 
    
         
             
            - spec/hamster/stack/construction_spec.rb
         
     |