diff options
Diffstat (limited to 'kernel.rb')
| -rw-r--r-- | kernel.rb | 142 |
1 files changed, 4 insertions, 138 deletions
@@ -16,7 +16,7 @@ module Kernel #++ # def class - Primitive.attr! :leaf + Primitive.attr! 'inline' Primitive.cexpr! 'rb_obj_class(self)' end @@ -65,7 +65,7 @@ module Kernel #++ # def frozen? - Primitive.attr! :leaf + Primitive.attr! 'inline' Primitive.cexpr! 'rb_obj_frozen_p(self)' end @@ -118,7 +118,7 @@ module Kernel # 2.then.detect(&:odd?) # => nil # def then - unless block_given? + unless Primitive.block_given_p return Primitive.cexpr! 'SIZED_ENUMERATOR(self, 0, 0, rb_obj_size)' end yield(self) @@ -142,7 +142,7 @@ module Kernel # then {|response| JSON.parse(response) } # def yield_self - unless block_given? + unless Primitive.block_given_p return Primitive.cexpr! 'SIZED_ENUMERATOR(self, 0, 0, rb_obj_size)' end yield(self) @@ -150,47 +150,6 @@ module Kernel module_function - # call-seq: - # loop { block } - # loop -> an_enumerator - # - # Repeatedly executes the block. - # - # If no block is given, an enumerator is returned instead. - # - # loop do - # print "Input: " - # line = gets - # break if !line or line =~ /^q/i - # # ... - # end - # - # StopIteration raised in the block breaks the loop. In this case, - # loop returns the "result" value stored in the exception. - # - # enum = Enumerator.new { |y| - # y << "one" - # y << "two" - # :ok - # } - # - # result = loop { - # puts enum.next - # } #=> :ok - def loop - unless block_given? - return enum_for(:loop) { Float::INFINITY } - end - - begin - while true - yield - end - rescue StopIteration => e - e.result - end - end - # # call-seq: # Float(arg, exception: true) -> float or nil @@ -216,97 +175,4 @@ module Kernel Primitive.rb_f_float(arg, exception) end end - - # call-seq: - # Integer(object, base = 0, exception: true) -> integer or nil - # - # Returns an integer converted from +object+. - # - # Tries to convert +object+ to an integer - # using +to_int+ first and +to_i+ second; - # see below for exceptions. - # - # With a non-zero +base+, +object+ must be a string or convertible - # to a string. - # - # ==== numeric objects - # - # With integer argument +object+ given, returns +object+: - # - # Integer(1) # => 1 - # Integer(-1) # => -1 - # - # With floating-point argument +object+ given, - # returns +object+ truncated to an integer: - # - # Integer(1.9) # => 1 # Rounds toward zero. - # Integer(-1.9) # => -1 # Rounds toward zero. - # - # ==== string objects - # - # With string argument +object+ and zero +base+ given, - # returns +object+ converted to an integer in base 10: - # - # Integer('100') # => 100 - # Integer('-100') # => -100 - # - # With +base+ zero, string +object+ may contain leading characters - # to specify the actual base (radix indicator): - # - # Integer('0100') # => 64 # Leading '0' specifies base 8. - # Integer('0b100') # => 4 # Leading '0b', specifies base 2. - # Integer('0x100') # => 256 # Leading '0x' specifies base 16. - # - # With a positive +base+ (in range 2..36) given, returns +object+ - # converted to an integer in the given base: - # - # Integer('100', 2) # => 4 - # Integer('100', 8) # => 64 - # Integer('-100', 16) # => -256 - # - # With a negative +base+ (in range -36..-2) given, returns +object+ - # converted to an integer in the radix indicator if exists or - # +-base+: - # - # Integer('0x100', -2) # => 256 - # Integer('100', -2) # => 4 - # Integer('0b100', -8) # => 4 - # Integer('100', -8) # => 64 - # Integer('0o100', -10) # => 64 - # Integer('100', -10) # => 100 - # - # +base+ -1 is equal the -10 case. - # - # When converting strings, surrounding whitespace and embedded underscores - # are allowed and ignored: - # - # Integer(' 100 ') # => 100 - # Integer('-1_0_0', 16) # => -256 - # - # ==== other classes - # - # Examples with +object+ of various other classes: - # - # Integer(Rational(9, 10)) # => 0 # Rounds toward zero. - # Integer(Complex(2, 0)) # => 2 # Imaginary part must be zero. - # Integer(Time.now) # => 1650974042 - # - # ==== keywords - # - # With optional keyword argument +exception+ given as +true+ (the default): - # - # - Raises TypeError if +object+ does not respond to +to_int+ or +to_i+. - # - Raises TypeError if +object+ is +nil+. - # - Raise ArgumentError if +object+ is an invalid string. - # - # With +exception+ given as +false+, an exception of any kind is suppressed - # and +nil+ is returned. - - def Integer(arg, base = 0, exception: true) - if Primitive.mandatory_only? - Primitive.rb_f_integer1(arg) - else - Primitive.rb_f_integer(arg, base, exception); - end - end end |
