質問

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

それ以降、コマンドはそのオブジェクトの範囲内で実行されます(そのため、インスタンスメソッドを直接呼び出すことができます)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top