/* * call-seq: * Integer(arg,base=0) -> integer * * Converts <i>arg</i> to a <code>Fixnum</code>. * Numeric types are converted directly (with floating point numbers * being truncated). <i>base</i> (0, or between 2 and 36) is a base for * integer string representation. If <i>arg</i> is a <code>String</code>, * when <i>base</i> is omitted or equals to zero, radix indicators * (<code>0</code>, <code>0b</code>, and <code>0x</code>) are honored. * In any case, strings should be strictly conformed to numeric * representation. This behavior is different from that of * <code>String#to_i</code>. Non string values will be converted using * <code>to_int</code>, and <code>to_i</code>. Passing <code>nil</code> * raises a TypeError. * * Integer(123.999) #=> 123 * Integer("0x1a") #=> 26 * Integer(Time.new) #=> 1204973019 * Integer("0930", 10) #=> 930 * Integer("111", 2) #=> 7 * Integer(nil) #=> TypeError */ static mrb_value mrb_f_integer(mrb_state *mrb, mrb_value self) { mrb_value arg; mrb_int base = 0; mrb_get_args(mrb, "o|i", &arg, &base); return mrb_convert_to_integer(mrb, arg, base); }
mrb_value mrb_Integer(mrb_state *mrb, mrb_value val) { return mrb_convert_to_integer(mrb, val, 0); }