如何在ruby的交互模式下查看/保存/加载工作空间

时间:2009-11-13 19:40:27

标签: ruby

我需要一个交互式环境来玩一些算法的东西。我希望能够查看到目前为止已经定义的内容(数据,函数)并且能够保存/加载,这样如果出现问题我可以从之前保存的快照继续。由于我选择ruby作为我的主要脚本语言,我希望它内置了这些功能。

如果ruby交互模式不提供这些功能,那么您还推荐了什么?

由于

2 个答案:

答案 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