有没有办法避免每次使用 configatron gem 时都输入命名空间?说,你有
configatron.email.pop.address = 1
configatron.email.pop.port = 2
我可以通过某种方式configatron.email.pop
只键入一次来配置端口和地址吗?
有没有办法避免每次使用 configatron gem 时都输入命名空间?说,你有
configatron.email.pop.address = 1
configatron.email.pop.port = 2
我可以通过某种方式configatron.email.pop
只键入一次来配置端口和地址吗?
你可以做的一件简单的事情就是这个。
configatron.email.pop.tap do|pop|
pop.address = 'localhost'
pop.port = 22
end
甚至这个。
pop = configatron.email.pop
pop.address = 'localhost'
pop.port = 22
您也可以尝试将单例方法添加到 configatron 对象。
class << configatron
def pop; email.pop; end
end
configatron.pop.address = 'localhost'
configatron.pop.port = 22
甚至这个。
class << configatron
def pop_address; email.pop.address; end
def pop_address=(addr); email.pop.address = addr; end
end
configatron.pop_address = 'address'
但这最终可能会破坏事情(我假设configatron适用于method_missing)。而且它并没有节省多少打字,但它可以让你为隐藏在几个命名空间深处的东西创建一些方便的快捷方式。
也许你应该在这里用冗长的方式坚持下去。