# File lib/facets/core/module/this.rb, line 18 def this klass = self Functor.new do |op, *args| case op.to_s[-1,1] when '=' op = op.to_s.chomp('=') if Proc === args[0] define_method( op, &args[0] ) else define_method( op ) do r = instance_variable_set( "@#{op}", args[0] ) klass.class.class_eval %{ def #{op}; @#{op}; end } r end end else klass.class_eval %{ def #{op}; @#{op}; end } end end end