Ruby 2.7.0p0(2019-12-25revision647ee6f091eafcce70ffb75ddf7e121e192ab217)

Data Structures | Macros | Functions | Variables
Core objects and their operations

## Macros
#define | wrong_constant_name bad_const_name
#define | id_for_var(obj, name, type) id_for_setter(obj, name, type, bad_##type##_name)
#define | id_for_setter(obj, name, type, message) check_setter_id(obj, &(name), rb_is_##type##_id, rb_is_##type##_name, message, strlen(message))
#define | IMPLICIT_CONVERSIONS 7
#define | try_to_int(val, mid, raise) convert_type_with_id(val, "Integer", mid, raise, -1)
#define | opts_exception_p(opts) rb_opts_exception_p((opts), TRUE)

## Functions
void | rb_obj_call_init (VALUE obj, int argc, const VALUE *argv)
| Calls `#initialize` method of obj with the given arguments. More...
VALUE | rb_obj_hide (VALUE obj)
| Make the object invisible from Ruby code. More...
VALUE | rb_obj_reveal (VALUE obj, VALUE klass)
| Make a hidden object visible again. More...
VALUE | rb_obj_setup (VALUE obj, VALUE klass, VALUE type)
| Fills common (`RBasic`) fields in obj. More...
VALUE | rb_equal (VALUE obj1, VALUE obj2)
| Same as `Object#===`, case equality. More...
int | rb_eql (VALUE obj1, VALUE obj2)
| Determines if obj1 and obj2 are equal in terms of `Object::eql`?. More...
VALUE | rb_obj_hash (VALUE obj)
VALUE | rb_class_real (VALUE cl)
| Looks up the nearest ancestor of cl, skipping singleton classes or module inclusions. More...
VALUE | rb_obj_class (VALUE obj)
| Equivalent to `Object#class` in Ruby. More...
VALUE | rb_obj_clone (VALUE obj)
| Almost same as `Object::clone`. More...
VALUE | rb_obj_dup (VALUE obj)
| Equivalent to `Object#dup` in Ruby. More...
VALUE | rb_obj_init_copy (VALUE obj, VALUE orig)
| Default implementation of `#initialize_copy`. More...
VALUE | rb_obj_init_dup_clone (VALUE obj, VALUE orig)
| Default implementation of `#initialize_dup` and `#initialize_clone`. More...
VALUE | rb_any_to_s (VALUE obj)
| Default implementation of `#to_s`. More...
VALUE | rb_str_escape (VALUE str)
VALUE | rb_inspect (VALUE obj)
| Convenient wrapper of `Object::inspect`. More...
VALUE | rb_obj_is_instance_of (VALUE obj, VALUE c)
| Determines if obj is an instance of c. More...
VALUE | rb_obj_is_kind_of (VALUE obj, VALUE c)
| Determines if obj is a kind of c. More...
VALUE | rb_obj_tainted (VALUE obj)
| call-seq: obj.tainted? -> false More...
VALUE | rb_obj_taint (VALUE obj)
| call-seq: obj.taint -> obj More...
VALUE | rb_obj_untaint (VALUE obj)
| call-seq: obj.untaint -> obj More...
VALUE | rb_obj_untrusted (VALUE obj)
| call-seq: obj.untrusted? -> false More...
VALUE | rb_obj_untrust (VALUE obj)
| call-seq: obj.untrust -> obj More...
VALUE | rb_obj_trust (VALUE obj)
| call-seq: obj.trust -> obj More...
void | rb_obj_infect (VALUE victim, VALUE carrier)
| Does nothing. More...
VALUE | rb_obj_freeze (VALUE obj)
| Make the object unmodifiable. More...
VALUE | rb_obj_frozen_p (VALUE obj)
| Determines if the object is frozen. More...
MJIT_FUNC_EXPORTED VALUE | rb_false (VALUE obj)
VALUE | rb_class_inherited_p (VALUE mod, VALUE arg)
| Determines if mod inherits arg. More...
VALUE | rb_obj_alloc (VALUE klass)
| Allocates an instance of klass. More...
VALUE | rb_class_new_instance_kw (int argc, const VALUE *argv, VALUE klass, int kw_splat)
VALUE | rb_class_new_instance (int argc, const VALUE *argv, VALUE klass)
| Allocates and initializes an instance of klass. More...
VALUE | rb_class_superclass (VALUE klass)
| Returns the superclass of klass. More...
VALUE | rb_class_get_superclass (VALUE klass)
| Returns the superclass of klass The return value might be an iclass of a module, unlike rb_class_superclass. More...
VALUE | rb_convert_type (VALUE val, int type, const char *tname, const char *method)
| Converts an object into another type. More...
VALUE | rb_check_convert_type (VALUE val, int type, const char *tname, const char *method)
| Tries to convert an object into another type. More...
| ALWAYS_INLINE (static VALUE rb_to_integer(VALUE val, const char *method, ID mid))
VALUE | rb_check_to_integer (VALUE val, const char *method)
| Tries to convert val into `Integer`. More...
VALUE | rb_to_int (VALUE val)
| Converts val into `Integer`. More...
VALUE | rb_check_to_int (VALUE val)
| Tries to convert val into Integer. More...
VALUE | rb_Integer (VALUE val)
| Equivalent to `Kernel#Integer` in Ruby. More...
int | rb_bool_expected (VALUE obj, const char *flagname)
int | rb_opts_exception_p (VALUE opts, int default_value)
double | rb_cstr_to_dbl (const char *p, int badcheck)
| Parses a string representation of a floating point number. More...
| FUNC_MINIMIZED (double rb_str_to_dbl(VALUE str, int badcheck))
double | rb_str_to_dbl (VALUE str, int badcheck)
| Parses a string representation of a floating point number. More...
| FUNC_MINIMIZED (VALUE rb_Float(VALUE val))
VALUE | rb_Float (VALUE val)
| Equivalent to `Kernel#Float` in Ruby. More...
VALUE | rb_to_float (VALUE val)
| Converts a `Numeric` object into `Float`. More...
VALUE | rb_check_to_float (VALUE val)
| Tries to convert an object into `Float`. More...
double | rb_num2dbl (VALUE val)
| Converts a `Numeric` object to `double`. More...
VALUE | rb_String (VALUE val)
| Equivalent to `Kernel#String` in Ruby. More...
VALUE | rb_Array (VALUE val)
| Equivalent to `Kernel#Array` in Ruby. More...
VALUE | rb_Hash (VALUE val)
| Equivalent to `Kernel#Hash` in Ruby. More...
void | Init_Object (void)

## Variables
VALUE | rb_cBasicObject
| BasicObject class. More...
VALUE | rb_mKernel
| Kernel module. More...
VALUE | rb_cObject
| Object class. More...
VALUE | rb_cModule
| Module class. More...
VALUE | rb_cClass
| Class class. More...
VALUE | rb_cData
| Data class. More...
VALUE | rb_cNilClass
| NilClass class. More...
VALUE | rb_cTrueClass
| TrueClass class. More...
VALUE | rb_cFalseClass
| FalseClass class. More...

## Detailed Description

## Macro Definition Documentation

## ◆ id_for_setter

#define id_for_setter | ( |  | obj,
|  |  | name,
|  |  | type,
|  |  | message
| ) |  | check_setter_id(obj, &(name), rb_is_##type##_id, rb_is_##type##_name, message, strlen(message))

Definition at line 2015 of file object.c.

## ◆ id_for_var

#define id_for_var | ( |  | obj,
|  |  | name,
|  |  | type
| ) |  | id_for_setter(obj, name, type, bad_##type##_name)

Definition at line 2013 of file object.c.

## ◆ IMPLICIT_CONVERSIONS

#define IMPLICIT_CONVERSIONS 7

Definition at line 2821 of file object.c.

## ◆ opts_exception_p

#define opts_exception_p | ( |  | opts | ) | rb_opts_exception_p((opts), TRUE)

Definition at line 3134 of file object.c.

## ◆ try_to_int

#define try_to_int | ( |  | val,
|  |  | mid,
|  |  | raise
| ) |  | convert_type_with_id(val, "Integer", mid, raise, -1)

Definition at line 2971 of file object.c.

## ◆ wrong_constant_name

#define wrong_constant_name bad_const_name

Definition at line 2010 of file object.c.

## Function Documentation

## ◆ ALWAYS_INLINE()

ALWAYS_INLINE | ( | static VALUE | rb_to_integerVALUE val, const char *method, ID mid | ) |

## ◆ FUNC_MINIMIZED() [1/2]

FUNC_MINIMIZED | ( | double | rb_str_to_dblVALUE str, int badcheck | ) |

## ◆ FUNC_MINIMIZED() [2/2]

FUNC_MINIMIZED | ( | VALUE | rb_FloatVALUE val | ) |

## ◆ Init_Object()

void Init_Object | ( | void |  | ) |

Definition at line 4486 of file object.c.

## ◆ rb_any_to_s()

VALUE rb_any_to_s | ( | VALUE | obj | ) |

Default implementation of `#to_s`.

Definition at line 527 of file object.c.

References CLASS_OF, obj, PRIsVALUE, rb_class_name(), rb_sprintf(), and str.

Referenced by rb_int2str(), and rb_obj_as_string_result().

## ◆ rb_Array()

VALUE rb_Array | ( | VALUE | val | ) |

Equivalent to `Kernel#Array` in Ruby.

Definition at line 3684 of file object.c.

References NIL_P, rb_ary_new3, rb_check_array_type(), and rb_check_to_array().

## ◆ rb_bool_expected()

int rb_bool_expected | ( | VALUE | obj,
|  | const char * | flagname
| ) |  |

Definition at line 3112 of file object.c.

References obj, PRIsVALUE, Qfalse, Qtrue, rb_eArgError, and rb_raise().

Referenced by rb_opts_exception_p().

## ◆ rb_check_convert_type()

VALUE rb_check_convert_type | ( | VALUE | val,
|  | int | type,
|  | const char * | tname,
|  | const char * | method
| ) |  |

Tries to convert an object into another type.

Calls the specified conversion method if necessary.

Parameters

  [in] | val | the object to be converted
  [in] | type | a value of `ruby_value_type`
  [in] | tname | name of the target type. only used for error messages.
  [in] | method | name of the method

Returns
  an object of the specified type, or Qnil if no such conversion method defined.

Exceptions

  TypeError | if the conversion method returns an unexpected type of value.

See also
  rb_convert_type
  rb_check_convert_type_with_id

Definition at line 2941 of file object.c.

References T_DATA, TYPE, and v.

Referenced by rb_check_regexp_type().

## ◆ rb_check_to_float()

VALUE rb_check_to_float | ( | VALUE | val | ) |

Tries to convert an object into `Float`.

It calls `#to_f` if necessary.

It returns `Qnil` if the object is not a `Numeric` or `#to_f` is not defined on the object.

Definition at line 3559 of file object.c.

References Qnil, rb_cNumeric, rb_obj_is_kind_of(), RB_TYPE_P, and T_FLOAT.

## ◆ rb_check_to_int()

VALUE rb_check_to_int | ( | VALUE | val | ) |

Tries to convert val into Integer.

It calls `#to_int` method if necessary.

Parameters

  [in] | val | a Ruby object

Returns
  an Integer object on success, or `Qnil` if `#to_int` is not defined.

Exceptions

  TypeError | if `#to_int` returns a non-Integer object.

Definition at line 3036 of file object.c.

References FALSE, idTo_int, Qnil, RB_INTEGER_TYPE_P, and try_to_int.

## ◆ rb_check_to_integer()

VALUE rb_check_to_integer | ( | VALUE | val,
|  | const char * | method
| ) |  |

Tries to convert val into `Integer`.

It calls the specified conversion method if necessary.

Parameters

  [in] | val | a Ruby object
  [in] | method | a name of a method

Returns
  an `Integer` object on success, or `Qnil` if no such conversion method defined.

Exceptions

  TypeError | if the conversion method returns a non-Integer object.

Definition at line 2999 of file object.c.

References FIXNUM_P, RB_TYPE_P, T_BIGNUM, and v.

## ◆ rb_class_get_superclass()

VALUE rb_class_get_superclass | ( | VALUE | klass | ) |

Returns the superclass of klass The return value might be an iclass of a module, unlike rb_class_superclass.

Also it returns Qfalse when klass does not have a parent class.

See also
  rb_class_superclass

Definition at line 2001 of file object.c.

References klass, and RCLASS.

## ◆ rb_class_inherited_p()

VALUE rb_class_inherited_p | ( | VALUE | mod,
|  | VALUE | arg
| ) |  |

Determines if mod inherits arg.

Equivalent to `Module#<=` in Ruby

Parameters

  [in] | mod | a Module object
  [in] | arg | another Module object or an iclass of a module

Return values

  Qtrue | if mod inherits arg, or mod equals arg
  Qfalse | if arg inherits mod
  Qnil | if otherwise

Definition at line 1574 of file object.c.

References arg, CLASS_OR_MODULE_P, mod, Qtrue, rb_eTypeError, rb_raise(), RB_TYPE_P, and T_ICLASS.

## ◆ rb_class_new_instance()

VALUE rb_class_new_instance | ( | int | argc,
|  | const VALUE * | argv,
|  | VALUE | klass
| ) |  |

Allocates and initializes an instance of klass.

Equivalent to `Class#new` in Ruby

Parameters

  [in] | argc | the number of arguments to `#initialize`
  [in] | argv | a pointer to an array of arguments to `#initialize`
  [in] | klass | a Class object

Returns
  the new instance of klass

See also
  rb_obj_call_init
  rb_obj_alloc

Definition at line 1955 of file object.c.

References Check_Type, klass, obj, and T_CLASS.

Referenced by Init_Exception(), rb_exc_new(), rb_exc_new_str(), rb_exit(), rb_f_abort(), rb_fiddle_new_function(), rb_name_error(), rb_name_error_str(), rb_struct_alloc(), rb_syserr_new_str(), and rb_throw_obj().

## ◆ rb_class_new_instance_kw()

VALUE rb_class_new_instance_kw | ( | int | argc,
|  | const VALUE * | argv,
|  | VALUE | klass,
|  | int | kw_splat
| ) |  |

Definition at line 1931 of file object.c.

References Check_Type, klass, obj, and T_CLASS.

## ◆ rb_class_real()

VALUE rb_class_real | ( | VALUE | cl | ) |

Looks up the nearest ancestor of cl, skipping singleton classes or module inclusions.

It returns the cl itself if it is neither a singleton class or a module.

Parameters

  [in] | cl | a Class object.

Returns
  the ancestor class found, or a falsey value if nothing found.

Definition at line 202 of file object.c.

References BUILTIN_TYPE, FL_SINGLETON, RBASIC, RCLASS_SUPER, and T_ICLASS.

Referenced by rb_class_name(), rb_define_class(), rb_define_class_id_under(), rb_obj_class(), rb_vm_bugreport(), and ruby_vm_special_exception_copy().

## ◆ rb_class_superclass()

VALUE rb_class_superclass | ( | VALUE | klass | ) |

Returns the superclass of klass.

Equivalent to `Class#superclass` in Ruby.

It skips modules.

Parameters

  [in] | klass | a Class object

Returns
  the superclass, or `Qnil` if klass does not have a parent class.

See also
  rb_class_get_superclass

Definition at line 1976 of file object.c.

References klass, Qnil, rb_cBasicObject, rb_eTypeError, rb_raise(), RB_TYPE_P, RCLASS_SUPER, and T_ICLASS.

## ◆ rb_convert_type()

VALUE rb_convert_type | ( | VALUE | val,
|  | int | type,
|  | const char * | tname,
|  | const char * | method
| ) |  |

Converts an object into another type.

Calls the specified conversion method if necessary.

Parameters

  [in] | val | the object to be converted
  [in] | type | a value of `ruby_value_type`
  [in] | tname | name of the target type. only used for error messages.
  [in] | method | name of the method

Returns
  an object of the specified type

Exceptions

  TypeError | on failure

See also
  rb_check_convert_type

Definition at line 2900 of file object.c.

References TYPE, and v.

Referenced by rb_numeric_quo().

## ◆ rb_cstr_to_dbl()

double rb_cstr_to_dbl | ( | const char * | p,
|  | int | badcheck
| ) |  |

Parses a string representation of a floating point number.

Parameters

  [in] | p | a string representation of a floating number
  [in] | badcheck | raises an exception on parse error if badcheck is non-zero.

Returns
  the floating point number in the string on success, 0.0 on parse error and badcheck is zero.

Note
  it always fails to parse a hexadecimal representation like "0xAB.CDp+1" when badcheck is zero, even though it would success if badcheck was non-zero. This inconsistency is coming from a historical compatibility reason. [ruby-dev:40822]

Definition at line 3319 of file object.c.

## ◆ rb_eql()

int rb_eql | ( | VALUE | obj1,
|  | VALUE | obj2
| ) |  |

Determines if obj1 and obj2 are equal in terms of `Object::eql`?.

Note
  It actually calls `#eql`? when necessary. So you cannot implement `#eql`? with this function.

Return values

  non-zero | if they are eql?
  zero | if they are not eql?.

Definition at line 147 of file object.c.

## ◆ rb_equal()

VALUE rb_equal | ( | VALUE | obj1,
|  | VALUE | obj2
| ) |  |

Same as `Object#===`, case equality.

Definition at line 124 of file object.c.

Referenced by rb_ary_assoc(), rb_ary_delete(), rb_ary_includes(), rb_ary_rassoc(), and rb_str_equal().

## ◆ rb_false()

MJIT_FUNC_EXPORTED VALUE rb_false | ( | VALUE | obj | ) |

Definition at line 1391 of file object.c.

References Qfalse.

## ◆ rb_Float()

VALUE rb_Float | ( | VALUE | val | ) |

Equivalent to `Kernel#Float` in Ruby.

Converts val into `Float` in a slightly more strict manner than `#to_f`.

Definition at line 3493 of file object.c.

## ◆ rb_Hash()

VALUE rb_Hash | ( | VALUE | val | ) |

Equivalent to `Kernel#Hash` in Ruby.

Definition at line 3727 of file object.c.

References NIL_P, RARRAY_LEN, rb_check_hash_type(), rb_eTypeError, rb_hash_new(), rb_obj_classname(), rb_raise(), RB_TYPE_P, and T_ARRAY.

## ◆ rb_inspect()

VALUE rb_inspect | ( | VALUE | obj | ) |

Convenient wrapper of `Object::inspect`.

Returns a human-readable string representation of obj, similarly to `Object::inspect`.

Unlike Ruby-level `#inspect`, it escapes characters to keep the result compatible to the default internal or external encoding. If the default internal or external encoding is ASCII compatible, the encoding of the inspected result must be compatible with it. If the default internal or external encoding is ASCII incompatible, the result must be ASCII only.

Definition at line 551 of file object.c.

References NULL, obj, rb_default_external_encoding(), rb_default_internal_encoding(), rb_enc_asciicompat, rb_enc_get(), rb_enc_str_asciionly_p(), rb_encoding, rb_funcallv, rb_obj_as_string(), rb_str_escape(), and str.

Referenced by rb_keyword_error_new(), rb_p(), rb_vmdebug_debug_print_post(), and rb_vmdebug_proc_dump_raw().

## ◆ rb_Integer()

VALUE rb_Integer | ( | VALUE | val | ) |

Equivalent to `Kernel#Integer` in Ruby.

Converts val into `Integer` in a slightly more strict manner than `#to_i`.

Definition at line 3106 of file object.c.

Referenced by ossl_time_split(), and value_to_generic().

## ◆ rb_num2dbl()

double rb_num2dbl | ( | VALUE | val | ) |

Converts a `Numeric` object to `double`.

Parameters

  [in] | val | a `Numeric` object

Returns
  the converted value

Exceptions

  TypeError | if val is not a `Numeric` or it does not support conversion to a floating point number.

Definition at line 3616 of file object.c.

References FIXNUM_P, FLONUM_P, and SPECIAL_CONST_P.

## ◆ rb_obj_alloc()

VALUE rb_obj_alloc | ( | VALUE | klass | ) |

Allocates an instance of klass.

Note
  It calls the allocator defined by {rb_define_alloc_func}. So you cannot use this function to define an allocator. Use {rb_newobj_of}, {TypedData_Make_Struct} or others, instead.
  Usually prefer rb_class_new_instance to rb_obj_alloc and rb_obj_call_init

Parameters

  [in] | klass | a Class object

See also
  rb_class_new_instance
  rb_obj_call_init
  rb_define_alloc_func
  rb_newobj_of
  TypedData_Make_Struct

Definition at line 1895 of file object.c.

References Check_Type, klass, and T_CLASS.

Referenced by Init_top_self(), rb_catch(), rb_key_err_new(), rb_last_status_set(), rb_name_err_new(), rb_nomethod_err_new(), rb_range_new(), and ruby_vm_special_exception_copy().

## ◆ rb_obj_call_init()

void rb_obj_call_init | ( | VALUE | obj,
|  | int | argc,
|  | const VALUE * | argv
| ) |  |

Calls `#initialize` method of obj with the given arguments.

It also forwards the given block to `#initialize` if given.

Parameters

  [in] | obj | the receiver object
  [in] | argc | the number of arguments
  [in] | argv | a pointer to the array of arguments

Definition at line 1680 of file eval.c.

References argc, argv, idInitialize, obj, PASS_PASSED_BLOCK_HANDLER, rb_funcallv_kw(), and RB_NO_KEYWORDS.

## ◆ rb_obj_class()

VALUE rb_obj_class | ( | VALUE | obj | ) |

Equivalent to `Object#class` in Ruby.

Returns the class of `obj`, skipping singleton classes or module inclusions.

Definition at line 217 of file object.c.

References CLASS_OF, obj, and rb_class_real().

Referenced by BIGNUM_1c(), rb_ary_subseq(), rb_block_to_s(), rb_check_inheritable(), rb_define_class(), rb_define_class_id_under(), rb_define_module(), rb_define_module_id_under(), rb_obj_init_copy(), rb_struct_members(), and rb_vm_bugreport().

## ◆ rb_obj_clone()

VALUE rb_obj_clone | ( | VALUE | obj | ) |

Almost same as `Object::clone`.

Definition at line 410 of file object.c.

Referenced by rb_eval_string_wrap().

## ◆ rb_obj_dup()

VALUE rb_obj_dup | ( | VALUE | obj | ) |

Equivalent to `Object#dup` in Ruby.

Definition at line 420 of file object.c.

References dup().

## ◆ rb_obj_freeze()

VALUE rb_obj_freeze | ( | VALUE | obj | ) |

Make the object unmodifiable.

Equivalent to `Object#freeze` in Ruby.

Parameters

  [in,out] | obj | the object to be frozen

Returns
  the frozen object

Definition at line 1080 of file object.c.

References obj, OBJ_FREEZE, OBJ_FROZEN, rb_bug(), and SPECIAL_CONST_P.

Referenced by rb_ary_freeze(), rb_insns_name_array(), rb_iseq_pathobj_new(), rb_str_freeze(), and rb_vm_register_special_exception_str().

## ◆ rb_obj_frozen_p()

VALUE rb_obj_frozen_p | ( | VALUE | obj | ) |

Determines if the object is frozen.

Equivalent to `Object#frozen`? in Ruby.

Parameters

  [in] | obj | the object to be determines

Return values

  Qtrue | if frozen
  Qfalse | if not frozen

Definition at line 1099 of file object.c.

References obj, OBJ_FROZEN, Qfalse, and Qtrue.

## ◆ rb_obj_hash()

VALUE rb_obj_hash | ( | VALUE | obj | ) |

Definition at line 291 of file hash.c.

## ◆ rb_obj_hide()

VALUE rb_obj_hide | ( | VALUE | obj | ) |

Make the object invisible from Ruby code.

It is useful to let Ruby's GC manage your internal data structure – The object keeps being managed by GC, but `ObjectSpace.each_object` never yields the object.

Note that the object also lose a way to call a method on it.

Parameters

  [in] | obj | a Ruby object

See also
  rb_obj_reveal

Definition at line 78 of file object.c.

References obj, RBASIC_CLEAR_CLASS, and SPECIAL_CONST_P.

Referenced by Init_sym().

## ◆ rb_obj_infect()

void rb_obj_infect | ( | VALUE | victim,
|  | VALUE | carrier
| ) |  |

Does nothing.

This method is deprecated and will be removed in Ruby 3.2.

Definition at line 1068 of file object.c.

References rb_warning().

## ◆ rb_obj_init_copy()

VALUE rb_obj_init_copy | ( | VALUE | obj,
|  | VALUE | orig
| ) |  |

Default implementation of `#initialize_copy`.

Parameters

  [in,out] | obj | the receiver being initialized
  [in] | orig | the object to be copied from.

Definition at line 500 of file object.c.

References obj, rb_check_frozen, rb_eTypeError, rb_obj_class(), rb_raise(), and TYPE.

## ◆ rb_obj_init_dup_clone()

VALUE rb_obj_init_dup_clone | ( | VALUE | obj,
|  | VALUE | orig
| ) |  |

Default implementation of `#initialize_dup` and `#initialize_clone`.

Parameters

  [in,out] | obj | the receiver being initialized
  [in] | orig | the object to be dup or cloned from.

Definition at line 517 of file object.c.

References obj, and rb_funcall.

## ◆ rb_obj_is_instance_of()

VALUE rb_obj_is_instance_of | ( | VALUE | obj,
|  | VALUE | c
| ) |  |

Determines if obj is an instance of c.

Equivalent to `Object#is_instance_of` in Ruby.

Parameters

  [in] | obj | the object to be determined.
  [in] | c | a Class object

Definition at line 675 of file object.c.

## ◆ rb_obj_is_kind_of()

VALUE rb_obj_is_kind_of | ( | VALUE | obj,
|  | VALUE | c
| ) |  |

Determines if obj is a kind of c.

Equivalent to `Object#kind_of`? in Ruby.

Parameters

  [in] | obj | the object to be determined
  [in] | c | a Module object.

Definition at line 692 of file object.c.

References CLASS_OF, and obj.

Referenced by ole_val2variant(), ossl_evp_get_cipherbyname(), rb_arithmetic_sequence_extract(), rb_check_to_float(), rb_enumeratorize_with_size(), rb_enumeratorize_with_size_kw(), rb_node_case_when_optimizable_literal(), rb_range_values(), and rb_set_errinfo().

## ◆ rb_obj_reveal()

VALUE rb_obj_reveal | ( | VALUE | obj,
|  | VALUE | klass
| ) |  |

Make a hidden object visible again.

It is the caller's responsibility to pass the right klass which obj originally used to belong to.

See also
  rb_obj_hide

Definition at line 95 of file object.c.

References klass, obj, RBASIC_SET_CLASS, and SPECIAL_CONST_P.

## ◆ rb_obj_setup()

VALUE rb_obj_setup | ( | VALUE | obj,
|  | VALUE | klass,
|  | VALUE | type
| ) |  |

Fills common (`RBasic`) fields in obj.

Note
  Prefer rb_newobj_of() to this function.

Parameters

  [in,out] | obj | a Ruby object to be set up.
  [in] | klass | `obj` will belong to this class.
  [in] | type | one of `ruby_value_type`

Definition at line 112 of file object.c.

References klass, obj, RBASIC, and RBASIC_SET_CLASS.

## ◆ rb_obj_taint()

VALUE rb_obj_taint | ( | VALUE | obj | ) |

call-seq: obj.taint -> obj

Returns object. This method is deprecated and will be removed in Ruby 3.2.

Definition at line 999 of file object.c.

References obj, and rb_warning().

## ◆ rb_obj_tainted()

VALUE rb_obj_tainted | ( | VALUE | obj | ) |

call-seq: obj.tainted? -> false

Returns false. This method is deprecated and will be removed in Ruby 3.2.

Definition at line 985 of file object.c.

References Qfalse, and rb_warning().

## ◆ rb_obj_trust()

VALUE rb_obj_trust | ( | VALUE | obj | ) |

call-seq: obj.trust -> obj

Returns object. This method is deprecated and will be removed in Ruby 3.2.

Definition at line 1057 of file object.c.

References obj, and rb_warning().

## ◆ rb_obj_untaint()

VALUE rb_obj_untaint | ( | VALUE | obj | ) |

call-seq: obj.untaint -> obj

Returns object. This method is deprecated and will be removed in Ruby 3.2.

Definition at line 1014 of file object.c.

References obj, and rb_warning().

## ◆ rb_obj_untrust()

VALUE rb_obj_untrust | ( | VALUE | obj | ) |

call-seq: obj.untrust -> obj

Returns object. This method is deprecated and will be removed in Ruby 3.2.

Definition at line 1042 of file object.c.

References obj, and rb_warning().

## ◆ rb_obj_untrusted()

VALUE rb_obj_untrusted | ( | VALUE | obj | ) |

call-seq: obj.untrusted? -> false

Returns false. This method is deprecated and will be removed in Ruby 3.2.

Definition at line 1028 of file object.c.

References Qfalse, and rb_warning().

## ◆ rb_opts_exception_p()

int rb_opts_exception_p | ( | VALUE | opts,
|  | int | default_value
| ) |  |

Definition at line 3125 of file object.c.

References idException, rb_bool_expected(), and rb_get_kwargs().

## ◆ rb_str_escape()

VALUE rb_str_escape | ( | VALUE | str | ) |

Definition at line 5866 of file string.c.

References buf, CHAR_ESC_LEN, ENCODING_GET, rb_enc_from_index(), rb_encoding, RSTRING_END, RSTRING_PTR, and str.

Referenced by rb_inspect().

## ◆ rb_str_to_dbl()

double rb_str_to_dbl | ( | VALUE | str,
|  | int | badcheck
| ) |  |

Parses a string representation of a floating point number.

Parameters

  [in] | str | a `String` object representation of a floating number
  [in] | badcheck | raises an exception on parse error if badcheck is non-zero.

Returns
  the floating point number in the string on success, 0.0 on parse error and badcheck is zero.

Note
  it always fails to parse a hexadecimal representation like "0xAB.CDp+1" when badcheck is zero, even though it would success if badcheck was non-zero. This inconsistency is coming from a historical compatibility reason. [ruby-dev:40822]

Definition at line 3371 of file object.c.

## ◆ rb_String()

VALUE rb_String | ( | VALUE | val | ) |

Equivalent to `Kernel#String` in Ruby.

Converts val into `String` by trying `#to_str` at first and then trying `#to_s`.

Definition at line 3652 of file object.c.

References NIL_P, and rb_check_string_type().

## ◆ rb_to_float()

VALUE rb_to_float | ( | VALUE | val | ) |

Converts a `Numeric` object into `Float`.

Parameters

  [in] | val | a `Numeric` object

Exceptions

  TypeError | if val is not a `Numeric` or other conversion failures.

Definition at line 3542 of file object.c.

## ◆ rb_to_int()

VALUE rb_to_int | ( | VALUE | val | ) |

Converts val into `Integer`.

It calls #to_int method if necessary.

Parameters

  [in] | val | a Ruby object

Returns
  an `Integer` object

Exceptions

  TypeError | on failure

Definition at line 3021 of file object.c.

Referenced by rb_absint_singlebit_p(), rb_absint_size(), rb_fix_aref(), rb_integer_pack(), and rb_num2long().

## Variable Documentation

## ◆ rb_cBasicObject

VALUE rb_cBasicObject

BasicObject class.

Definition at line 32 of file object.c.

Referenced by rb_class_superclass().

## ◆ rb_cClass

VALUE rb_cClass

Class class.

Definition at line 36 of file object.c.

## ◆ rb_cData

VALUE rb_cData

Data class.

Definition at line 37 of file object.c.

## ◆ rb_cFalseClass

VALUE rb_cFalseClass

FalseClass class.

Definition at line 41 of file object.c.

## ◆ rb_cModule

VALUE rb_cModule

Module class.

Definition at line 35 of file object.c.

## ◆ rb_cNilClass

VALUE rb_cNilClass

NilClass class.

Definition at line 39 of file object.c.

## ◆ rb_cObject

VALUE rb_cObject

Object class.

Definition at line 34 of file object.c.

## ◆ rb_cTrueClass

VALUE rb_cTrueClass

TrueClass class.

Definition at line 40 of file object.c.

## ◆ rb_mKernel

VALUE rb_mKernel

Kernel module.

Definition at line 33 of file object.c.