首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在REPL或irb中重用Ruby DSL?

在REPL或irb中重用Ruby DSL?
EN

Stack Overflow用户
提问于 2011-06-10 09:09:06
回答 1查看 232关注 0票数 1

我用JRuby语言为UniVerse数据库上的任务开发了一个简单的领域特定语言。它看起来像这样

代码语言:javascript
复制
support = { 
    :host => 'localhost', 
    :account => 'SUPPORT'
}

uni_task support do 
    connect
    exec "LIST FILE A1"
    disconnect
end

,并像这样实现

代码语言:javascript
复制
def uni_task(config, &block)
    session = UniSession.new
    session.instance_eval &block
end

我知道你可以在像this这样的ruby脚本中使用irb

但是,有没有一种方法可以直接使用命令行并将作用域更改为在默认情况下执行对象的实例方法?

例如

代码语言:javascript
复制
irb> uni_commandline support
uni> connect
uni> exec "LIST FILE A1"

     .... output .....

uni> disconnect
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-10 15:36:14

在irb中,您可以使用irb命令在对象范围内移动:

代码语言:javascript
复制
irb> irb some_object

从那时起,任何命令都将在该对象的作用域内执行(因此您可以直接调用它的实例方法)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6300977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档