在开发自己的库的过程中,我一直在阅读 Github 上的各种 Ruby 库,以了解常见的习语。我一直在引用的一个库(在此处找到)利用了我所谓的“未附加发送方法”。这是代码:
module AngellistApi
class API
attr_accessor *Configuration::VALID_OPTIONS_KEYS
# Creates a new API
def initialize(options={})
options = AngellistApi.options.merge(options)
Configuration::VALID_OPTIONS_KEYS.each do |key|
send("#{key}=", options[key])
end
end
end
end
我可以在网上找到有关 Ruby 中的 send 方法的所有文档,都将其描述为一种通过字符串或符号调用对象方法的方式。但是,所有示例都将 send 方法附加到对象,例如:
object.send(:method_name, argument1)
当它没有连接到一个对象时会发生什么?在这种情况下,它是在调用它所调用的类的方法吗?有人可以为我解释这段代码吗?:)