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]valthe object to be converted
[in]typea value of ruby_value_type
[in]tnamename of the target type. only used for error messages.
[in]methodname of the method
Returns
an object of the specified type, or Qnil if no such conversion method defined.
Exceptions
TypeErrorif 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]vala Ruby object
Returns
an Integer object on success, or Qnil if #to_int is not defined.
Exceptions
TypeErrorif #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]vala Ruby object
[in]methoda name of a method
Returns
an Integer object on success, or Qnil if no such conversion method defined.
Exceptions
TypeErrorif 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]moda Module object
[in]arganother Module object or an iclass of a module
Return values
Qtrueif mod inherits arg, or mod equals arg
Qfalseif arg inherits mod
Qnilif 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]argcthe number of arguments to #initialize
[in]argva pointer to an array of arguments to #initialize
[in]klassa 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]cla 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]klassa 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]valthe object to be converted
[in]typea value of ruby_value_type
[in]tnamename of the target type. only used for error messages.
[in]methodname of the method
Returns
an object of the specified type
Exceptions
TypeErroron 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]pa string representation of a floating number
[in]badcheckraises 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-zeroif they are eql?
zeroif 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]vala Numeric object
Returns
the converted value
Exceptions
TypeErrorif 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]klassa 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]objthe receiver object
[in]argcthe number of arguments
[in]argva 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]objthe 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]objthe object to be determines
Return values
Qtrueif frozen
Qfalseif 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]obja 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]objthe receiver being initialized
[in]origthe 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]objthe receiver being initialized
[in]origthe 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]objthe object to be determined.
[in]ca 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]objthe object to be determined
[in]ca 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]obja Ruby object to be set up.
[in]klassobj will belong to this class.
[in]typeone 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]stra String object representation of a floating number
[in]badcheckraises 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]vala Numeric object
Exceptions
TypeErrorif 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]vala Ruby object
Returns
an Integer object
Exceptions
TypeErroron 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.