Sha256: cd7eaf215a62933c8856f1d162b924d2dacc8e7f2bc6806cdd1d399a17bb61d9

Contents?: true

Size: 1.08 KB

Versions: 115

Compression:

Stored size: 1.08 KB

Contents

# encoding: utf-8
require 'open_classes/object'
require 'open_classes/module'
require 'open_classes/array/together_helper'

# Array
class Array
  include TogetherHelper

  # Arrays bulk shift.
  #
  # together_shift has alias :tshift
  #
  # not empty case
  #   lists = [[1, 2], [5, 6]]
  #   ret = lists.together_shift
  #   print ret # => [1, 5]
  #   print lists # => [2, 6]
  #
  # empty case
  #   lists = [[], []]
  #   ret = lists.together_shift
  #   print ret # => [nil, nil]
  #   print lists # => [[], []]
  #
  # not empty case with args
  #   lists = [[1, 2], [5, 6]]
  #   ret = lists.together_shift 2
  #   print ret # => [[1, 2], [5, 6]]
  #   print lists # => [[], []]
  #
  # not empty case with args
  #   lists = [[], []]
  #   ret = lists.together_shift 2
  #   print ret # => [[], []]
  #   print lists # => [[], []]
  def together_shift(count = nil)
    if_not_contain_array_rails_type_error
    if count.nil?
      reduce([]) { |ret, list|ret << list.shift }
    else
      reduce([]) { |ret, list|ret << list.shift(count) }
    end
  end

  alias_method :tshift, :together_shift
end

Version data entries

115 entries across 115 versions & 1 rubygems

Version Path
tbpgr_utils-0.0.91 lib/open_classes/array/together_shift.rb
tbpgr_utils-0.0.90 lib/open_classes/array/together_shift.rb
tbpgr_utils-0.0.89 lib/open_classes/array/together_shift.rb
tbpgr_utils-0.0.88 lib/open_classes/array/together_shift.rb
tbpgr_utils-0.0.87 lib/open_classes/array/together_shift.rb
tbpgr_utils-0.0.86 lib/open_classes/array/together_shift.rb
tbpgr_utils-0.0.85 lib/open_classes/array/together_shift.rb
tbpgr_utils-0.0.84 lib/open_classes/array/together_shift.rb
tbpgr_utils-0.0.83 lib/open_classes/array/together_shift.rb
tbpgr_utils-0.0.82 lib/open_classes/array/together_shift.rb
tbpgr_utils-0.0.81 lib/open_classes/array/together_shift.rb
tbpgr_utils-0.0.80 lib/open_classes/array/together_shift.rb
tbpgr_utils-0.0.79 lib/open_classes/array/together_shift.rb
tbpgr_utils-0.0.78 lib/open_classes/array/together_shift.rb
tbpgr_utils-0.0.77 lib/open_classes/array/together_shift.rb
tbpgr_utils-0.0.76 lib/open_classes/array/together_shift.rb
tbpgr_utils-0.0.75 lib/open_classes/array/together_shift.rb
tbpgr_utils-0.0.74 lib/open_classes/array/together_shift.rb
tbpgr_utils-0.0.73 lib/open_classes/array/together_shift.rb
tbpgr_utils-0.0.72 lib/open_classes/array/together_shift.rb