Gem 写了一个 Gem, 叫做 hot_reloader, 请大家帮忙测试一下.

zw963 · 2019年03月21日 · 最后由 zw963 回复于 2019年03月21日 · 446 次阅读

如果你是一个 Rails 开发者, 这个 Gem 的功能已经有了.

而且, Rails 6 的新 reloader 和这个 Gem 采用了同样的方案.

对于有需求的同学, 欢迎测试, 以及提出宝贵的意见.

安装

gem install hot_reloader

或者增加下列内容到 Gemfile

gem 'hot_reloader'

一个 Roda 例子:

# config.ru

require 'roda'
require 'hot_reloader'

if ENV['RACK_ENV'] == 'production'
  HotReloader.eager_load(__dir__, 'another/root/path')
  run App
else
  HotReloader.will_listen([__dir__, 'another/root/path'])
  run ->(env) { App.call(env) }
end

更多的详情, 见相关的 Gem.

hot_reloader

zeitwerk

listen

共收到 2 条回复

似乎 Rails 6 的 ClassLoader 抽成接口所以可以替换了。

扯个题外的,我之前和 @dsh0416 讨论利用这个和 Bootsnap 的原理做 Ruby 代码的预编译,甚至加上简单的AES加密,用来保护外包之类项目的源码

似乎 Rails 6 的 ClassLoader 抽成接口所以可以替换了。

是的, 好像有一个配置, 可以选择使用老的 Module#const_missing 实现和新的 zeitwerk 采用的 Module#autoload 实现.

扯个题外的,我之前和 @dsh0416 讨论利用这个和 Bootsnap 的原理做 Ruby 代码的预编译,甚至加上简单的AES加密,用来保护外包之类项目的源码

👍

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册