我有一个使用GLI
框架用 Ruby 编写的命令行实用程序。我想在我的主目录中配置我的命令行实用程序,使用 Ruby 本身作为 DSL 来处理它(类似于Gemfile
or Rakefile
)。
我在文件夹 lib/myapp 中的类 ConfigData 中。该类看起来像以下方式:
class ConfigData
@@data = {}
class ConfigItem
def initialize
@data = {}
end
def missing_method(name, *args)
@data[name] = args[0]
end
end
def self.add(section)
item = ConfigItem.new()
yield item
@@data[section]=item
end
end
现在,我想要的是配置文件,最好是 name Myappfile
,在当前工作文件夹中,具有以下内容
add('section1') do |i|
i.param1 'Some data'
i.param2 'More data'
end
当此代码包含在ConfigDataclass
和end
ConfigData 之间时,它工作正常。但现在我想把它放在我启动应用程序的工作文件夹中。
class
我在 ConfigData和ConfigData之间尝试了 require('./Myappfile') end
,但它对我不起作用。我试图阅读 rake 的源代码,但对我来说不是很清楚。
任何提示如何解决这个问题?