【问题标题】:OpalRb with MeteorJS?OpalRb 与 MeteorJS?
【发布时间】:2013-08-15 15:42:47
【问题描述】:

Opal 以使用纯 Ruby 与 CoffeeScript 或者,当然还有 JS 的方式提供的强大和优雅让我很感兴趣。

如何将 Opal for Meteor 用作开发的主要语言?

更新:只是想分享一下,我们已将重点转移到 Volt,以满足我们在从下到上提供 Ruby 的同构环境中的实时需求。这是一次很棒的体验,甚至 Matz has tweeted about it 现在也有好几次了。

【问题讨论】:

  • Coffeescript 似乎做了许多与 OpalRb 相同的事情。它也比 Javascript 更不容易出错,并且支持 Meteor。为什么要以艰难的方式做事?
  • 因为我相信它使事情变得更容易和更易于维护,特别是从长远来看。在使用过 CoffeeScript 之后,我不得不说 Ruby 优于 CoffeeScript,并且在我的经验中甚至比 CS 更不容易出错。这似乎是一项非常值得的努力,值得探索。
  • 您可能应该在 Meteor 捆绑器中获得支持,并且可能最终提交一个拉取请求。您可以按照 coffeescript 编译器的设置模型进行操作。
  • 我喜欢你的思考过程。很有趣。
  • 关于我从哪里开始研究制作类似于 CS 制作方式的智能包的任何想法@AndrewMao?

标签: javascript ruby meteor voltrb opalrb


【解决方案1】:

我刚刚发布了initial version

这会将 Ruby 文件编译为 Javascript,但还没有特定于流星的内容。

我计划在某个时候将 Meteor 移植到 Ruby 类中,敬请期待,甚至更好地提交拉取请求...

【讨论】:

  • 太棒了,好消息!能够拥有与 jquery (github.com/opal/opal-jquery) 的鲁棒性相似或更进一步的完整的 ruby​​'fied 流星将是非常棒的。
  • 在 Meteor 0.9 与他们的官方包系统一起发布后,该包不再可用。 Marc-André 有更新的机会吗?
【解决方案2】:

是的,看看 coffeescript 包是如何在 Meteor 中实现的,以便将 .coffee 编译为 .js。具体如下

如果一切都设计得非常好,那么您可能不必触摸捆绑器来创建将构建 OpalRb 文件的智能包。但是,我猜您可能必须在捆绑器区域中触发一两个拉取请求以使其与您的包一起使用。现在,预处理器单独处理所有文件,这对于您的语言可能是不可能的(我不确定。)但是,在此过程中,您将有助于使 Meteor 对其他 JS 方言和编译器的支持更好!

我将重申我的观点,如果你想要某种高级语言来编写 JS,Coffeescript 似乎是理想的,特别是因为它现在支持用于调试的浏览器内源映射。

【讨论】:

    【解决方案3】:

    可能有点晚了:我在 Meteor 中为 Opal 编写了一个构建插件。
    你可以在大气中找到它https://atmospherejs.com/massimoronca/opalhttps://atmospherejs.com/mikamai/opal

    您可以使用安装插件

    meteor add massimoronca:opal
    meteor add mikamai:opal

    每个以.rb.js.rb 结尾的文件都会被自动编译。

    你必须包装 Meteor 内置对象,直到我发布一个包,你可以在这个 gist https://gist.github.com/wstucco/42392ee21b76dfa3ef83 中找到一个关于如何做到这一点的小例子

    例如,Meteor 全局对象可以像这样包裹在 Opal 中

    class Meteor
      def self.server?
        `Meteor.isServer`
      end
    
      def self.client?
        `Meteor.isClient`
      end
    
      def self.cordova?
        `Meteor.isCordova`
      end
    
      def self.startup(&block)
        `#{block.call if block_given?}`
      end
    end
    

    并以这种方式使用

    puts "Hello from server" if Meteor.server?
    

    编辑:将插件移到Mikamai 帐户下

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-07
      • 2014-04-06
      • 1970-01-01
      • 1970-01-01
      • 2015-03-29
      • 1970-01-01
      相关资源
      最近更新 更多