首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >名称空间的configatron速记

名称空间的configatron速记
EN

Stack Overflow用户
提问于 2011-11-15 09:23:29
回答 1查看 243关注 0票数 1

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

代码语言:javascript
复制
  configatron.email.pop.address = 1
  configatron.email.pop.port = 2

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-15 10:08:14

您可以做的一件简单的事情就是这样。

代码语言:javascript
复制
configatron.email.pop.tap do|pop|
  pop.address = 'localhost'
  pop.port = 22
end

甚至是这个。

代码语言:javascript
复制
pop = configatron.email.pop
pop.address = 'localhost'
pop.port = 22

您也可以尝试向configatron对象添加单例方法。

代码语言:javascript
复制
class << configatron
  def pop; email.pop; end
end

configatron.pop.address = 'localhost'
configatron.pop.port = 22

甚至是这个。

代码语言:javascript
复制
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上工作)。而且它不会节省太多的输入,但它可以让您对隐藏在几个名称空间中的内容提供一些方便的快捷方式。

不过,也许你应该坚持到这里的冗长。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8130402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档