Ruby 1.9.3:引数としてクラス、シンボル、およびprocを取り、そのクラスの新しいインスタンスメソッドを定義(最終的には上書き)するメソッドを実装しようとしていますが、このテストに合格するためにクラスメソッドは実装していません。
require 'test/unit'
include Test::Unit::Assertions
class String
def my_method
'my_method'
end
end
def define_instance_method(klass, method, &block)
# klass.send :define_method, method, &block
# ...
end
define_instance_method(Object, :my_method) { 'define_instance_method my_method' }
define_instance_method(String, :my_method) { 'define_instance_method my_method' }
assert Object.new.my_method == 'define_instance_method my_method'
assert_raise(NoMethodError) { Object.my_method }
assert String.new.my_method == 'define_instance_method my_method'
assert_raise(NoMethodError) { String.my_method }
私は多くの試み(、、、、、、... )を行いましたがdefine_method
、成功しませんでした。あなたはなにか考えはありますか?define_singleton_method
class_eval
instance_eval
instance_exec
module_eval