每次使用configatron gem时,有没有办法避免输入命名空间? 说,你有
configatron.email.pop.address = 1
configatron.email.pop.port = 2
我可以通过某种方式只键入configatron.email.pop
来配置端口和地址吗?
答案 0 :(得分:1)
你可以做的一件容易的事就是这个。
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上工作)。并且它不会节省太多的输入,但它可以让你为隐藏在几个名称空间中的东西做一些方便的快捷方式。
也许你应该坚持这里的冗长。