我正在寻找一个测验应用程序来帮助新手学习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的方法。我不打算重新发明轮子,所以如果已经有这样的程序,我可以使用它而不是进行自定义开发。
答案 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 命令,该命令打印绑定点的周围上下文。我还不知道如何取消它。修复了,感谢栏杆。