Module: IsA

Defined in:
lib/is_a.rb,
lib/is_a/version.rb,
ext/is_a/is_a.c

Constant Summary collapse

VERSION =
"0.1.5"

Class Method Summary collapse

Class Method Details

._ref2id(obj) ⇒ Object



17
18
19
# File 'lib/is_a.rb', line 17

def self._ref2id obj
  self.id_of(obj)
end

.caller_line(r_offset) ⇒ Object



122
123
124
125
126
127
# File 'ext/is_a/is_a.c', line 122

static VALUE
rb_caller_line(VALUE self, VALUE r_offset)
{
  int offset = NUM2INT(r_offset); // we are not interested in self
  return caller_line(offset);
}

.class_of(obj) ⇒ Object



8
9
10
11
12
13
14
# File 'ext/is_a/is_a.c', line 8

static VALUE
rb_get_class_of(VALUE self, VALUE obj)
{
  VALUE cls = rb_class_of(obj);
  //printf("Class of %lu is %lu\n", obj / 2, cls / 2);
  return cls;
}

.id_of(obj) ⇒ Object



16
17
18
19
20
# File 'ext/is_a/is_a.c', line 16

static VALUE
rb_object_id_of(VALUE self, VALUE obj)
{
  return rb_obj_id(obj);
}

.object?(obj) ⇒ Boolean

checks if object is an whole Object, not just BasicObject

Returns:

  • (Boolean)


8
9
10
11
12
13
14
15
# File 'lib/is_a.rb', line 8

def self.object? obj
  cls = self.class_of(obj)
  loop do
    return true if cls == Object
    next if cls = cls.superclass
    return false
  end
end