我正在为我正在做的宝石写一个简单的回调。请注意,由于某些体系结构的限制,我不能使用ActiveSupport define_callbacks方法来处理这个特定情况。
现在,我有这样的事情:
def self.after_data_transcoding(&block)
define_method :_after_data_transcoding_callback { block.call }
end因此,用例类似于以下内容:
class MyClass
after_data_transcoding do
end
end实际调用由instance.send(:_after_data_transcoding_callback)完成。
到目前为止,代码工作得很好。我希望更进一步,并能够以块参数的形式访问响应:
class MyClass
after_data_transcoding do |response|
# Do something with the response
end
end然而,我并没有取得多少成功。对我该怎么做有什么想法吗?
发布于 2015-05-29 09:57:40
结果发现这比我想象的要容易。
define_method(:_after_data_transcoding_callback) { |response|
block.call(response)
}
instance.send(:_after_data_transcoding_callback, response)https://stackoverflow.com/questions/30525845
复制相似问题