在 sinatra 上将 opalrb 与链轮集成

Integrate opalrb with sprockets on sinatra

我想将 Opal 集成到我的下一个项目中,并决定从 sinatra-asset-pack 转移到 sprockets 上,但是我找不到任何关于如何将 opal 集成到 sprockets 中的信息,而不仅仅是设置 sprockets和蛋白石分开。

如何设置链轮并将 Opal.rb 与其集成?

请记住,我没有 运行 将其作为 rackup 文件,这是由于我们的环境造成的,因此它不可行,而是我将我的应用程序捆绑为 gem 和 运行 通过可执行文件。

或者,如果这方面的一些资源已经存在,但我只是找不到它,也许只是指出正确的方向来执行此操作,那也很好。

我在蛋白石 github 页面上询问,他们将我指向他们自己代码中的一个地方,在那里他们按照我的要求去做,我会 post link一旦我自己完成,我将 post 我创建的代码。

这是 link to the code on github,突出显示的部分是您想要阅读的部分,请注意它是 rails 特定的,老实说,这让我有些困惑。

编辑:

好的,所以我已经取得了一些进展,现在我有了链轮 运行 opalrb,有点像。浏览器响应 200 所以它找到了文件,mime 类型也是正确的......问题是它得到的文件是空白的,没有呈现任何内容。对于任何对我的进步感兴趣的人,这里是 gist 我已经取得的进展。

编辑:

好的,所以我现在有链轮提供资产和蛋白石从 ruby 源代码渲染出 java 脚本文件。 然而,我放入预编译 ruby 文件的 none 代码实际上正在做任何事情 le sigh.

不过,这里是 link 包含目前代码的回购协议。

编辑:

事实证明,要将蛋白石的东西获取到 运行,您需要 运行 一个命令到 bootstrap 蛋白石代码;我创建了一个助手来为我做这件事:

def opal_boot_code_for(file)
    "<script>#{Opal::Processor.load_asset_code(settings.sprockets, file)}</script>"
end