Temporary tag for this failure. Updated CI spec coming.
[rbx.git] / kernel / core / misc.rb
blob9c3105def2cbc133e1c4c1c93841e96bd6bca2c8
1 # depends on: module.rb class.rb
3 class << MAIN
4   def include(*mods)
5     Object.include(*mods)
6   end
7   
8   def public(*methods)
9     Object.public(*methods)
10   end
11   
12   def private(*methods)
13     Object.private(*methods)
14   end
16   def protected(*methods)
17     Object.protected(*methods)
18   end
19   
20   def add_method(name, obj)
21     Object.add_method(name, obj)
22   end
24   def alias_method(new_name, current_name)
25     Object.__send__ :alias_method, new_name, current_name
26   end
28   def __const_set__(name, obj)
29     Object.__const_set__(name, obj)
30   end
31 end
33 def self.to_s
34   "main"
35 end
37 module Rubinius
38   AtExit = []
39 end
41 class NilClass
42   alias_method :|, :^
44   def call(*a)
45     raise LocalJumpError, "not callable"
46   end
47 end
49 NIL = nil
51 class TrueClass
52   alias_method :inspect, :to_s
53 end
55 TRUE = true
57 class FalseClass
58   alias_method :|, :^
59   alias_method :inspect, :to_s
60 end
62 FALSE = false
64 Undefined = Object.new
66 module RecursionGuard
67   def self.inspecting?(obj)
68     stack.include?(obj.object_id)
69   end
71   def self.inspect(obj, &block)
72     stack.push(obj.object_id)
73     begin
74       yield
75     ensure
76       stack.pop
77     end
78   end
79   
80   def self.stack
81     stack = Thread.current[:inspecting] ||= []
82   end
83 end