- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我想在将实例和类方法添加到某个类时施展魔法。因此我尝试了以下方法:
module Magic
def self.included(base)
base.extend ClassMethods
end
module ClassMethods
def method_added(name)
puts "class method '#{name}' added"
end
def some_class_method
puts "some class method"
end
end
end
class Foo
include Magic
def self.method_added(name)
puts "instance method #{name} added"
end
end
这种方法适用于实例方法,不适用于类方法。我该如何解决?有什么建议吗?
最佳答案
您正在寻找 singleton_method_added:
module Magic
def self.included(base)
base.extend ClassMethods
end
module ClassMethods
def method_added(name)
puts "instance method '#{name}' added"
end
def singleton_method_added(name)
puts "class method '#{name}' added"
end
end
end
class Foo
include Magic
def bla
end
def blubb
end
def self.foobar
end
end
输出:
instance method 'bla' added
instance method 'blubb' added
class method 'foobar' added
尽情享受吧!
关于ruby - 了解类方法的 method_added,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4799760/
我想在将实例和类方法添加到某个类时施展魔法。因此我尝试了以下方法: module Magic def self.included(base) base.extend ClassMethod
我想在对象的所有方法中 Hook 一些 Action ,但我的尝试似乎陷入了无限循环。 一旦我注释掉 initialize 问题就解决了。 我该如何解决这个问题? 我以这种方式调用对象TaskReco
我已经创建了一个模块来在类中的方法调用之前 Hook 方法: module Hooks def self.included(base) base.send :extend, ClassMethods
我相信 Ruby,有一种方法可以访问 block 中所有局部变量的名称。 def some_method(param1, param2) p local_variables end 每当调用“so
我想写一点“Deprecate-It”库并经常使用“method_added”回调。但是现在我注意到在包含模块时不会触发此回调。 是否有任何回调或变通方法,以便在某些内容包含到自身时通知类“Fooba
我有以下来自 Programming Ruby 1.9 的代码(稍微改编)我只是想确保我的思维过程是准确的 module Trace def self.included(culprit)
我是一名优秀的程序员,十分优秀!