Skip to content

Instantly share code, notes, and snippets.

@klebervirgilio
Created March 22, 2012 18:40
Show Gist options
  • Save klebervirgilio/2161451 to your computer and use it in GitHub Desktop.
Save klebervirgilio/2161451 to your computer and use it in GitHub Desktop.

Revisions

  1. klebervirgilio revised this gist Jul 26, 2012. 1 changed file with 5 additions and 1 deletion.
    6 changes: 5 additions & 1 deletion gistfile1.rb
    Original file line number Diff line number Diff line change
    @@ -17,4 +17,8 @@ def by(n)
    end
    end

    [1,2,3,4,5,6].by(2) #=> [[1, 2], [3, 4], [5, 6]]
    [1,2,3,4,5,6].by(2) #=> [[1, 2], [3, 4], [5, 6]]

    #:P

    [*0...9].each_slice(3).to_a => [[0, 1, 2], [3, 4, 5], [6, 7, 8]]
  2. klebervirgilio revised this gist Mar 22, 2012. 1 changed file with 7 additions and 0 deletions.
    7 changes: 7 additions & 0 deletions gistfile1.rb
    Original file line number Diff line number Diff line change
    @@ -10,4 +10,11 @@ def by(n)
    end
    end

    # by @mvoto
    class Array
    def by(n)
    self.enum_for(:each_slice, n).to_a
    end
    end

    [1,2,3,4,5,6].by(2) #=> [[1, 2], [3, 4], [5, 6]]
  3. klebervirgilio revised this gist Mar 22, 2012. 1 changed file with 1 addition and 2 deletions.
    3 changes: 1 addition & 2 deletions gistfile1.rb
    Original file line number Diff line number Diff line change
    @@ -1,7 +1,6 @@
    class Array
    def by(n)
    buff = []
    self_ = self.clone
    buff, self_ = [], self.clone

    if self.size % n == 0
    (self.size/n).times{ buff << self_.shift(n) }
  4. klebervirgilio revised this gist Mar 22, 2012. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions gistfile1.rb
    Original file line number Diff line number Diff line change
    @@ -4,10 +4,10 @@ def by(n)
    self_ = self.clone

    if self.size % n == 0
    (self.size/n).times.map{ buff << self_.shift(n) }
    (self.size/n).times{ buff << self_.shift(n) }
    end

    return buff
    buff
    end
    end

  5. klebervirgilio created this gist Mar 22, 2012.
    14 changes: 14 additions & 0 deletions gistfile1.rb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,14 @@
    class Array
    def by(n)
    buff = []
    self_ = self.clone

    if self.size % n == 0
    (self.size/n).times.map{ buff << self_.shift(n) }
    end

    return buff
    end
    end

    [1,2,3,4,5,6].by(2) #=> [[1, 2], [3, 4], [5, 6]]