我需要一个交互式环境来玩一些算法的东西。我希望能够查看到目前为止已经定义的内容(数据,函数)并且能够保存/加载,这样如果出现问题我可以从之前保存的快照继续。由于我选择ruby作为我的主要脚本语言,我希望它内置了这些功能。
如果ruby交互模式不提供这些功能,那么您还推荐了什么?
由于
答案 0 :(得分:1)
所以这里有一种技术可以将在IRB会话中输入的命令附加到主目录中的文件中(来自ruby-talk:58931的想法)。将以下内容放在.irbrc中:
module Readline
module History
LOG = "#{ENV['HOME']}/.irb-history"
def self.write_log(line)
File.open(LOG, 'ab') {|f| f << "#{line}
"}
end
def self.start_session_log
write_log("
# session start: #{Time.now}
")
at_exit { write_log("
# session stop: #{Time.now}
") }
end
end
alias :old_readline :readline
def readline(*args)
ln = old_readline(*args)
begin
History.write_log(ln)
rescue
end
ln
end
end
Readline::History.start_session_log
答案 1 :(得分:0)
您应该查看sketches gem,这样您就可以在首选编辑器中的临时文件中创建代码原型。我不认为它支持快照。
在irb中我会按如下方式使用它:
>> sketch
# Write some code in an editor ...
# Lists sketches and their code
>> sketches
# Reopens the first sketch from above
>> sketch 1
如果您想要更强大的交互式原型设计环境,请参阅boson。