1

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
4

1 に答える 1

3

irb では、irbコマンドを使用してオブジェクト スコープ内に移動できます。

irb> irb some_object

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

于 2011-06-10T07:36:14.440 に答える