2013-08-15 11 views
5

Sono stato affascinato dalla potenza e dall'eleganza che offre Opal nel modo di utilizzare puro Ruby vs CoffeeScript o, ovviamente, JS.OpalRb con MeteorJS?

Come si fa a sfruttare Opal per Meteor come lingua principale per lo sviluppo?

UPDATE: voleva solo condividere che abbiamo spostato a fuoco verso Volt per le nostre esigenze in tempo reale in un ambiente che offre isomorfica Rubino dal basso verso l'alto. È stata un'esperienza fantastica e anche Matz has tweeted about it un paio di volte.

+0

Coffeescript sembra fare molte delle stesse cose di OpalRb. Sarà anche meno incline agli errori di Javascript e ha il supporto di Meteor. Perché fare le cose nel modo più difficile? –

+5

Perché credo che renda le cose più facili e più manutenibili, soprattutto nel lungo periodo. Avendo lavorato con CoffeeScript, devo dire che Ruby è superiore a CoffeeScript e meno soggetto a errori rispetto a CS nella mia esperienza. Sembra un'impresa molto utile e varrebbe la pena di essere esplorata. – ylluminate

+1

probabilmente dovresti averlo supportato nel bundle di Meteor, e magari eventualmente inviare una richiesta di pull. Puoi seguire il modello di come è configurato il compilatore coffeescript. –

risposta

2

Ho appena rilasciato un initial version.

Questo compilerà i file Ruby in Javascript, ma non c'è ancora nulla di specifico (ancora).

Ho intenzione di porting Meteor a una classe di Ruby a un certo punto, rimanete sintonizzati o meglio ancora presentare richieste di pull ...

+0

Incredibile, ottime notizie! Sarà davvero fantastico essere in grado di avere una meteora piena di rubini simile in robustezza a jquery (https://github.com/opal/opal-jquery) o portata avanti. – ylluminate

+0

Questo pacchetto non è più disponibile dopo che Meteor 0.9 è stato rilasciato con il loro sistema di pacchetti ufficiale. Qualche possibilità di un aggiornamento Marc-André? –

2

Sì, controllare come il pacchetto coffeescript è implementato in Meteor per compilare .coffee a .js. In particolare, il seguente

Se tutto è progettato in modo ottimale, probabilmente non è necessario toccare il bundler per creare un pacchetto intelligente che creerà file OpalRb. Tuttavia, suppongo che probabilmente dovrai sparare una o due richieste di pull in core nell'area del bundler per farlo funzionare bene con il tuo pacchetto. In questo momento, il preprocessore tratta tutti i file individualmente, il che potrebbe non essere possibile con la tua lingua (non ne sono sicuro). Nel processo, tuttavia, contribuirai a rendere ancora migliore il supporto di Meteor per altri dialetti e compilatori JS!

Ripeterò il mio punto di vista che Coffeescript sembra ideale se si desidera una sorta di linguaggio di alto livello per scrivere JS, soprattutto dal momento che supporta le mappe sorgente nel browser per il debug ora.

2

Forse un po 'in ritardo sulla barca: ho scritto un plugin di generazione per Opal a Meteor.
lo si può trovare in atmosfera https://atmospherejs.com/massimoronca/opal https://atmospherejs.com/mikamai/opal

È possibile installare il plugin utilizzando

meteor add massimoronca:opal
meteor add mikamai:opal

Ogni file che termina in .rb o .js.rb verrà compilato automaticamente.

Dovrete avvolgere Meteor builtin oggetti, fino a che non rilascerò un pacchetto che fa questo, si può trovare un piccolo esempio su come farlo in questo succo https://gist.github.com/wstucco/42392ee21b76dfa3ef83

Ad esempio, il Meteor oggetto globale può essere avvolto in opalino simili

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 

e utilizzato in questo modo

puts "Hello from server" if Meteor.server? 

EDIT: spostato il plugin sotto il Mikamai account

Problemi correlati