# File lib/active_support/core_ext/array/grouping.rb, line 22
        def in_groups_of(number, fill_with = nil)
          if fill_with == false
            collection = self
          else
            # size % number gives how many extra we have;
            # subtracting from number gives how many to add;
            # modulo number ensures we don't add group of just fill.
            padding = (number - size % number) % number
            collection = dup.concat([fill_with] * padding)
          end

          if block_given?
            collection.each_slice(number) { |slice| yield(slice) }
          else
            returning [] do |groups|
              collection.each_slice(number) { |group| groups << group }
            end
          end
        end