【问题标题】:ruby configatron foreach, How to display the name of a config?ruby configatron foreach,如何显示配置的名称?
【发布时间】:2012-07-12 11:59:54
【问题描述】:

我想看看testtest2

configatron.providers.test.remote_dir = '/incoming/test/current'
configatron.providers.test.local_dir = 'data/test'
configatron.providers.test2.remote_dir = '/incoming/test2/current'
configatron.providers.test2.local_dir = 'data/test2'


configatron.providers.foreach do |p| 
    p.name() #<--- how to display test/test2
end

尝试阅读手册?我在某个地方错过了这个吗?谷歌没有帮助。

谢谢。

【问题讨论】:

  • p.local_dir 不起作用?!或者你的问题到底是什么?
  • 那也行不通。当我放入 puts p.local_dir 时,它返回一个 Configatron::Store 对象。

标签: ruby configatron


【解决方案1】:

我猜这就是你要找的东西:

configatron.providers.configatron_keys.map { |key| configatron.providers.send(key).local_dir }

【讨论】:

  • 那种。如果我在提供者上循环(对它们做一些事情),为什么我不能简单地获取当前提供者的名称而不将我的整个自然 foreach 循环更改为上面的内容?
  • 这是一个用例。记录!如果我想记录该提供商的名称怎么办。即循环通过提供者 log.info("Initializing provider #{x}..."),然后对提供者配置做一些事情。
  • 我的意思是 configatron 在这里不太合适。如您所见,可以迭代您的提供程序。那你还需要什么?
  • 提供者是“可配置的”(即在管理员更改的配置文件中)。它们发生了变化,因此出现了 foreach 循环。最好在日志或屏幕中打印我当前正在处理的提供者的名称。猜猜这对configatron来说太过分了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-03
  • 2013-11-02
  • 1970-01-01
相关资源
最近更新 更多