def initialize(mod, constructor)
@module = mod
@constructor = constructor
@instance_eval = method(:instance_eval)
@method = {}
meths = []
meths.concat singleton_methods
meths.concat public_methods
meths.concat protected_methods
meths.concat private_methods
meths.each do |m|
@method[m.to_sym] = method(m)
end
class << self
escape = []
escape << 'p'
escape << 'singleton_method_undefined'
escape << 'method_missing'
escape << 'initialize'
escape << 'inspect'
escape << 'to_str'
escape << 'to_s'
escape << 'respond_to?'
meths = []
meths.concat singleton_methods
meths.concat public_instance_methods
meths.concat protected_instance_methods
meths.concat private_instance_methods
meths.each do |m|
undef_method(m) unless m =~ /^__/ or escape.include?(m)
end
end
@stack = []
@out = ''
end