如何与IRB进行Ruby语言测验程序的交互?

时间:2012-05-05 17:34:30

标签: ruby irb

我正在寻找一个测验应用程序来帮助新手学习Ruby语言(比如我自己)学习Ruby。

我有兴趣编写一个程序,它会提示用户提出问题,启动交互式Ruby Shell(IRB)会话,设置前置条件,允许用户与shell交互,然后检查发布条件查看用户是否按照提示操作并正确回答了问题。例如,可以提示用户组合包含一周中几天的两个数组。将启动shell会话,并设置前置条件:

days1 = ["Mon", "Tue", "Wed"]
days2 = ["Thu", "Fri", "Sat", "Sun"]

然后用户可以与shell进行交互,并且可能会做类似这样的事情:

days = days1 + days2
=> ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]

然后程序将评估后置条件以验证两个阵列是否已合并。如果提示指出必须以特定方式完成任务,该程序可能还必须具体查看任务是如何完成的。

处理与IRB的交互的最佳方式是什么?一个想法是使用Expect,但我想知道你是否有更好的方法或者只涉及使用Ruby的方法。我不打算重新发明轮子,所以如果已经有这样的程序,我可以使用它而不是进行自定义开发。

1 个答案:

答案 0 :(得分:0)

你可能会看看irb的另一种选择,即撬。有了pry,你的任务看起来更容易。

require 'pry'

days = nil
days1 = ["Mon", "Tue", "Wed"]
days2 = ["Thu", "Fri", "Sat", "Sun"]

binding.pry :quiet => true

if days == (days1 + days2)
    puts "Congratulations!!!"
else
    puts "You did something wrong"
end

唯一的问题是绑定命令自动调用 whereami 命令,该命令打印绑定点的周围上下文。我还不知道如何取消它。修复了,感谢栏杆。