フレームワークを使用して Ruby で記述されたコマンド ライン ユーティリティがありますGLI
。Ruby 自体を DSL として使用して、コマンド ライン ユーティリティをホーム ディレクトリに設定したいと考えています (Gemfile
またはと同様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
今、私が持ちたいのは、Myappfile
現在の作業フォルダーにある、できれば name の構成ファイルで、次の内容です
add('section1') do |i|
i.param1 'Some data'
i.param2 'More data'
end
このコードがclass
とend
ConfigData の間に含まれていた場合、正常に機能しました。しかし今は、アプリケーションを起動する作業フォルダーに配置したいと考えています。
class
ConfigDataとの間で require('./Myappfile')end
を試しましたが、うまくいきません。rake のソースコードを読んでみましたが、よくわかりません。
これを解決する方法のヒントはありますか?