1

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

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

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

4

1 回答 1

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)。而且它并没有节省多少打字,但它可以让你为隐藏在几个命名空间深处的东西创建一些方便的快捷方式。

也许你应该在这里用冗长的方式坚持下去。

于 2011-11-15T02:08:14.220 回答