Updated RubySpec submodule to 9f66d0b1.
[rbx.git] / kernel / bootstrap / object.rb
blob980bca7a207d7b2436e5c60b113cf42a1c5d3060
1 class InvalidIndexError < Exception
2 end
4 class Object
6   def __find_method__(meth)
7     meth = meth.to_sym
8     cm = Rubinius.asm(meth) do |m|
9       push :self
10       run m
11       push :true
12       locate_method
13     end
15     return cm
16   end
18   def copy_from(other, start, dest)
19     Ruby.primitive :dup_into
20     raise TypeError, "unable to copy into"
21   end
23   def metaclass
24     class << self;self;end
25   end
27   # TODO - Improve this check for metaclass support
28   # TODO - Make this private in core
29   def __verify_metaclass__
30     if self.kind_of?(Fixnum) or self.kind_of?(Symbol)
31       raise TypeError, "no virtual class for #{self.class}"
32     end
33   end
35   def get_instance_variables
36     Ruby.primitive :ivars_get
37     raise PrimitiveFailure, "primitive failed"
38   end
40   def get_instance_variable(sym)
41     Ruby.primitive :ivar_get
42     raise PrimitiveFailure, "primitive failed"
43   end
45   def set_instance_variable(sym, value)
46     Ruby.primitive :ivar_set
47     raise PrimitiveFailure, "primitive failed"
48   end
50   def become!(obj)
51     Ruby.primitive :object_become
52     raise PrimitiveFailure, "primitive failed"
53   end
54 end