OpalRb与MeteorJS?

时间:2013-08-15 15:42:48

标签: javascript ruby meteor voltrb opalrb

我对Opal提供的使用纯Ruby与CoffeeScript,当然还有JS的方式所提供的力量和优雅感到好奇。

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

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

3 个答案:

答案 0 :(得分:2)

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

如果一切都设计得非常好,您可能不必触摸捆绑器来创建将构建OpalRb文件的智能包。但是,我猜你可能不得不在捆绑区域中发出一个拉取请求或者两个核心,以便让它与你的包很好地配合。现在,预处理器单独处理所有文件,这可能是您的语言无法实现的(我不确定。)但是,在此过程中,您将有助于使Meteor对其他JS方言和编译器的支持更加出色!

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

答案 1 :(得分:2)

我刚刚发布了initial version

这会将Ruby文件编译为Javascript,但没有特定的流星(尚)。

我计划在某些时候将Meteor移植到Ruby类,保持关注,甚至更好地提交拉取请求......

答案 2 :(得分:2)

也许船上有点迟了:我在Meteor中为Opal写了一个构建插件 你可以在气氛 https://atmospherejs.com/massimoronca/opal https://atmospherejs.com/mikamai/opal

找到它

您可以使用

安装插件

<击> meteor add massimoronca:opal
meteor add mikamai:opal

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

你必须包装Meteor内置对象,直到我发布一个包这样做的包,你可以找到一个关于如何在这个要点中做到这一点的小例子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帐户