| Module | Precision |
| In: |
prec.c
|
call_seq:
included
When the Precision module is mixed-in to a class, this included method is used to add our default induced_from implementation to the host class.
/*
* call_seq:
* included
*
* When the +Precision+ module is mixed-in to a class, this +included+
* method is used to add our default +induced_from+ implementation
* to the host class.
*/
static VALUE
prec_included(module, include)
VALUE module, include;
{
switch (TYPE(include)) {
case T_CLASS:
case T_MODULE:
break;
default:
Check_Type(include, T_CLASS);
break;
}
rb_define_singleton_method(include, "induced_from", prec_induced_from, 1);
return module;
}
Converts self into an instance of klass. By default, prec invokes
klass.induced_from(num)
and returns its value. So, if klass.induced_from doesn‘t return an instance of klass, it will be necessary to reimplement prec.
/*
* call-seq:
* num.prec(klass) => a_klass
*
* Converts _self_ into an instance of _klass_. By default,
* +prec+ invokes
*
* klass.induced_from(num)
*
* and returns its value. So, if <code>klass.induced_from</code>
* doesn't return an instance of _klass_, it will be necessary
* to reimplement +prec+.
*/
static VALUE
prec_prec(x, klass)
VALUE x, klass;
{
return rb_funcall(klass, prc_if, 1, x);
}
Returns a Float converted from num. It is equivalent to prec(Float).
/*
* call-seq:
* num.prec_f => Float
*
* Returns a +Float+ converted from _num_. It is equivalent
* to <code>prec(Float)</code>.
*/
static VALUE
prec_prec_f(x)
VALUE x;
{
VALUE klass = rb_cFloat;
return rb_funcall(x, prc_pr, 1, klass);
}
Returns an Integer converted from num. It is equivalent to prec(Integer).
/*
* call-seq:
* num.prec_i => Integer
*
* Returns an +Integer+ converted from _num_. It is equivalent
* to <code>prec(Integer)</code>.
*/
static VALUE
prec_prec_i(x)
VALUE x;
{
VALUE klass = rb_cInteger;
return rb_funcall(x, prc_pr, 1, klass);
}