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