2013-08-15 10 views
5

Opalが純粋なRuby対CoffeeScriptかJSを使用する方法で提供している力と優雅さに私は興味をそそられました。OpalRbとMeteorJS?

開発の主な言語として、オパールのためにオパールを活用するにはどうすればいいですか?

UPDATE:ちょうど私たちは下から上にルビーを提供しています同型環境における当社のリアルタイムのニーズに合わせてボルトを超える注力シフトしていることを共有したいと思いました。それは素晴らしい経験であり、さらにMatz has tweeted about it数回です。

+0

CoffeescriptはOpalRbと同じことの多くを行うようです。また、Javascriptよりもエラーが起こりにくく、Meteorのサポートもあります。なぜ物事は難しいのですか? –

+5

私は、長期的に見ると、物事がより簡単でより保守的になると信じているからです。 CoffeeScriptで作業していたので、私はRubyがCoffeeScriptよりも優れていて、私の経験ではCSよりもエラーが起こりにくいと言わざるを得ません。それは非常に価値のある努力のようであり、探検の価値があるでしょう。 – ylluminate

+1

あなたはおそらくMeteor bundlerでサポートされているはずですが、最終的にプルリクエストを提出する必要があります。あなたは、coffeescriptコンパイラがどのように設定されているかのモデルに従うことができます。 –

答えて

2

私はちょうどinitial versionをリリースしました。

これはRubyファイルをJavascriptにコンパイルしますが、(まだ)流星はありません。

は、私はいくつかの点でRubyのクラスに流星を移植することを計画し、後半のボートに乗って

+0

素晴らしい、素晴らしいニュース! jquery(https://github.com/opal/opal-jquery)やそれ以上の堅牢性のような完全なルビーの流星を持つことができるのは本当に素晴らしいことです。 – ylluminate

+0

このパッケージは、Meteor 0.9が公式のパッケージシステムでリリースされた後は使用できなくなりました。 Marc-Andréを更新する可能性はありますか? –

2

はい、coffeescriptパッケージがMeteorでどのように実装されているかを確認して、.coffee.jsをコンパイルしてください。 JSファイル

  • https://github.com/meteor/meteor/blob/devel/packages/coffeescript/plugin/compile-coffeescript.jsにCoffeeScriptのファイルを有効にする方法流星を伝える文書化されていない_transitional_registerBuildPlugin機能 - - ファイルをコンパイルし、ソースマップを生成するスクリプト具体的には、

    すべてがうまく設計されていれば、OpalRbファイルをビルドするスマートパッケージを作成するためにバンドラに触れる必要はないはずです。しかし、私はおそらくあなたのパッケージでうまくいくようにするために、バンドル地域の中核にプルリクエストを出してもらう必要があるだろうと推測しています。現在のところ、プリプロセッサはすべてのファイルを個別に扱いますが、これはあなたの言語では不可能です(わかりません)。しかし、このプロセスでは、Meteorが他のJS方言やコンパイラのサポートをより良くするために貢献します。

    私は、特に、デバッグのためのブラウザ内のソースマップをサポートしているので、CoffeescriptがJSを書くための何らかの高級言語を必要としていると思われることを改めて指摘します。

  • 2

    たぶん少し...さらに良いプル要求を提出チューニングや滞在:私は流星にオパールのビルドプラグインを書きました。
    あなたは.rbまたは.js.rbで終わるすべてのファイルが自動的にコンパイルされます

    meteor add massimoronca:opal
    meteor add mikamai:opal

    を使用してプラグインをインストールすることができます雰囲気 https://atmospherejs.com/massimoronca/opal https://atmospherejs.com/mikamai/opal

    上でそれを見つけることができます。

    あなたは私はあなたがこの主旨例 Meteorグローバルオブジェクトに対する https://gist.github.com/wstucco/42392ee21b76dfa3ef83

    でそれを行う方法についての小さな例を見つけることができない、というパッケージをリリースするだろうまで、流星組み込みオブジェクトをラップする必要があります

    この

    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? 
    

    EDITこの方法を使用することができます:012の下にプラグインを移動アカウント