我已经开发了一个简单的DSL,用于在Jruby中的宇宙数据库上进行任务。看起来像这样

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