class Class
def use_setname
const = 'C__names__'
evalstr = <<-__END_OF_EVAL__
class #{name}
raise '#{const} is already defined.' if defined? #{const}
#{const} = {}
raise 'setname is already defined.' if defined? setname
def setname(s)
#{const}[self] = s
end
alias inspect! inspect
def inspect
#{const}[self] || super
end
end
__END_OF_EVAL__
eval(evalstr, TOPLEVEL_BINDING)
end
end
module Marshal
def self.put(obj, filename)
open(filename, "wb") do |f|
Marshal.dump(obj, f)
end
end
def self.get(filename)
open(filename, "rb") do |f|
Marshal.load(f)
end
end
end
def p!(x); puts x.inspect!; end
syntax highlighted by Code2HTML, v. 0.9.1