Sha256: 3c800dd91170bf79e02b3bcd67f43dbe345b12b9d552dcd21381b67149c032c9

Contents?: true

Size: 936 Bytes

Versions: 23

Compression:

Stored size: 936 Bytes

Contents

class Range
  ##
  # call-seq:
  #    rng.first    -> obj
  #    rng.first(n) -> an_array
  #
  # Returns the first object in the range, or an array of the first +n+
  # elements.
  #
  #   (10..20).first     #=> 10
  #   (10..20).first(3)  #=> [10, 11, 12]
  #
  def first(*args)
    return self.begin if args.empty?

    raise ArgumentError, "wrong number of arguments (given #{args.length}, expected 1)" unless args.length == 1
    nv = args[0]
    raise TypeError, "no implicit conversion from nil to integer" if nv.nil?
    raise TypeError, "no implicit conversion of #{nv.class} into Integer" unless nv.respond_to?(:to_int)
    n = nv.to_int
    raise TypeError, "no implicit conversion of #{nv.class} into Integer" unless n.kind_of?(Integer)
    raise ArgumentError, "negative array size (or size too big)" unless 0 <= n
    ary = []
    each do |i|
      break if n <= 0
      ary.push(i)
      n -= 1
    end
    ary
  end
end

Version data entries

23 entries across 23 versions & 2 rubygems

Version Path
script_core-0.0.6 ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/mrblib/range.rb
script_core-0.0.5 ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/mrblib/range.rb
esruby-0.2.0 resources/mruby/mrbgems/mruby-range-ext/mrblib/range.rb
esruby-0.1.5 resources/mruby/mrbgems/mruby-range-ext/mrblib/range.rb
esruby-0.1.4 resources/mruby/mrbgems/mruby-range-ext/mrblib/range.rb
esruby-0.1.3 resources/mruby/mrbgems/mruby-range-ext/mrblib/range.rb
esruby-0.1.2 resources/mruby/mrbgems/mruby-range-ext/mrblib/range.rb
esruby-0.1.1 resources/mruby/mrbgems/mruby-range-ext/mrblib/range.rb
esruby-0.1.0 resources/mruby/mrbgems/mruby-range-ext/mrblib/range.rb
esruby-0.0.11 resources/mruby/mrbgems/mruby-range-ext/mrblib/range.rb
esruby-0.0.10 resources/mruby/mrbgems/mruby-range-ext/mrblib/range.rb
esruby-0.0.9 resources/mruby/mrbgems/mruby-range-ext/mrblib/range.rb
esruby-0.0.8 resources/mruby/mrbgems/mruby-range-ext/mrblib/range.rb
esruby-0.0.7 resources/mruby/mrbgems/mruby-range-ext/mrblib/range.rb
esruby-0.0.6 resources/mruby/mrbgems/mruby-range-ext/mrblib/range.rb
esruby-0.0.5 resources/mruby/mrbgems/mruby-range-ext/mrblib/range.rb
esruby-0.0.3 resources/mruby/mrbgems/mruby-range-ext/mrblib/range.rb
esruby-0.0.2 resources/mruby/mrbgems/mruby-range-ext/mrblib/range.rb
esruby-0.0.0 resources/mruby/mrbgems/mruby-range-ext/mrblib/range.rb
script_core-0.0.4 ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/mrblib/range.rb