1

我希望编写一个测验应用程序来帮助刚接触 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 的方法。我不想重新发明轮子,所以如果已经有这样的程序可用,我愿意使用它而不是进行定制开发。

4

1 回答 1

0

您可能会查看 irb 的替代方案,即 pry。使用 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命令,该命令打印绑定点的周围上下文。我还不知道怎么取消。已修复,感谢栏杆。

于 2012-05-05T18:09:56.377 回答