configatron名称空间的简写

时间:2011-11-15 01:23:29

标签: ruby configuration configatron

每次使用configatron gem时,有没有办法避免输入命名空间? 说,你有

  configatron.email.pop.address = 1
  configatron.email.pop.port = 2

我可以通过某种方式只键入configatron.email.pop来配置端口和地址吗?

1 个答案:

答案 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上工作)。并且它不会节省太多的输入,但它可以让你为隐藏在几个名称空间中的东西做一些方便的快捷方式。

也许你应该坚持这里的冗长。