REPLまたはIRBでRuby DSLを再利用しますか?
-
22-10-2019 - |
質問
JrubyのUniverseデータベースのタスク用のシンプルなDSLを開発しました。このように見えます
support = {
:host => 'localhost',
:account => 'SUPPORT'
}
uni_task support do
connect
exec "LIST FILE A1"
disconnect
end
そして、このように実装されています
def uni_task(config, &block)
session = UniSession.new
session.instance_eval &block
end
RubyスクリプトでIRBにドロップできることを知っています これ
しかし、コマンドラインにドロップし、デフォルトでオブジェクトのインスタンスメソッドを実行するためにスコープを変更する方法はありますか?
例えば
irb> uni_commandline support
uni> connect
uni> exec "LIST FILE A1"
.... output .....
uni> disconnect
解決
IRBで使用できます irb
オブジェクトスコープ内で移動するコマンド:
irb> irb some_object
それ以降、コマンドはそのオブジェクトの範囲内で実行されます(そのため、インスタンスメソッドを直接呼び出すことができます)。
所属していません StackOverflow