T
trans. (T. Onoma)
Hi -- I'm trying to delegate the TOPLEVEL object through a singleton class,
but it doesn't seem to want to "singularize". I've tried the Singleton module
and manually as below. When I run this:
assert_equal( toplevel , toplevel )
I get
1) Failure:
test_compare(TC_TopLevel) [tc_toplevel.rb:16]:
<main> expected but was
<main>.
Any ideas?
Thanks,
T.
# toplevel.rb -------------------------------------------
class Binding
def eval( str )
Kernel.eval( str, self )
end
def self()
@self ||= eval( "self" )
@self
end
end
#require 'singleton'
require 'delegate'
class TopLevelClass < DelegateClass(TOPLEVEL_BINDING.self.class)
#include Singleton
class << self
private :new
def instance
@singleton ||= new
end
end
def initialize()
super( TOPLEVEL_BINDING.self )
end
def binding()
TOPLEVEL_BINDING
end
end
module Kernel
# perhaps just call this top() ?
def toplevel()
TopLevelClass.instance
end
end
but it doesn't seem to want to "singularize". I've tried the Singleton module
and manually as below. When I run this:
assert_equal( toplevel , toplevel )
I get
1) Failure:
test_compare(TC_TopLevel) [tc_toplevel.rb:16]:
<main> expected but was
<main>.
Any ideas?
Thanks,
T.
# toplevel.rb -------------------------------------------
class Binding
def eval( str )
Kernel.eval( str, self )
end
def self()
@self ||= eval( "self" )
@self
end
end
#require 'singleton'
require 'delegate'
class TopLevelClass < DelegateClass(TOPLEVEL_BINDING.self.class)
#include Singleton
class << self
private :new
def instance
@singleton ||= new
end
end
def initialize()
super( TOPLEVEL_BINDING.self )
end
def binding()
TOPLEVEL_BINDING
end
end
module Kernel
# perhaps just call this top() ?
def toplevel()
TopLevelClass.instance
end
end