【问题标题】:Ruby app that instantly reflects changes in source files [closed]即时反映源文件更改的 Ruby 应用程序 [关闭]
【发布时间】:2014-01-17 11:55:07
【问题描述】:

我如何设计一个 ruby​​ 应用程序,使每次保存 .rb 文件时它都会自动开始以“新方式”运行?

我的意思是,我正在编写一个 REPL(Read-Eval-Print-Loop)应用程序,我希望它能够像每次更改源文件时都重新加载一样工作。

有点像 Rails 或 Unity(游戏引擎)在您更改和保存脚本文件时所做的事情。

我已经对 Kernel.load 进行了试用,但它抱怨重新定义的常量并产生重复的线程。

有人做过类似的事情吗?我怎样才能实现这个目标?

【问题讨论】:

  • 你说你试过Kernel.load,但我没有看到代码。我们需要查看您尝试了什么,以便为您的代码量身定制答案。如果我们生成一些东西,它可能与您所采取的路径大不相同。
  • 我对为我的应用程序量身定制的代码并不真正感兴趣,而是对这种方法的通用指南感兴趣。
  • 这不是 Stack Overflow 的用途。 SO 是针对特定问题的特定答案。
  • @Vargas 使用 programmers.stackexchange.com 来解决这类问题

标签: ruby read-eval-print-loop


【解决方案1】:

Kernel.load 应该可以解决这个问题。您可以通过确定常量是否已定义来避免重新定义常量

CONST = 2 unless defined?(CONST) 

如果您需要重新定义常量,那么您可以使用全局变量,例如 $const

这两个选项在重新加载文件时也将避免警告_您可能应该通过定义自己的重新加载方法来检查它们是否发生了变化。

【讨论】:

    猜你喜欢
    • 2017-11-29
    • 2019-12-13
    • 2012-08-24
    • 1970-01-01
    • 2015-12-02
    • 2018-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多