Opal (o compilador Ruby para Javascript) e Meteor

Se você é um rubista, provavelmente conhece Opala .

Para quem não

Opal é um compilador de rubi para javascript, uma implementação do ruby ​​corelib e stdlib, e gemas associadas para a construção de aplicativos da Web do lado do cliente rápidos em ruby.
http://opalrb.org/docs/getting_started/

Por outro lado, Meteor é

uma estrutura da web ultrassimples, com banco de dados em qualquer lugar, data on-the-wire, Javascript puro.

O que basicamente significa que o Meteor é uma estrutura reativa, construída em nó e javascript, é isomórfica (também conhecida como permite ao desenvolvedor escrever o mesmo código no cliente e no servidor) e sincronizar automaticamente as alterações entre clientes e entre clientes e servidor.

Eu estava trabalhando em um projeto do Meteor e não estava satisfeito com o Javascript, então tentei o Coffeescript, mas o Meteor ainda não se integra perfeitamente com ele, então comecei a pensar se havia uma maneira de usar Ruby através do Opal.

Um fim de semana depois, publiquei um plugin de compilação Opal para Meteor , é muito básico, mas funciona.

Na página Atmosphere, você pode encontrar alguma documentação preliminar sobre como usá-lo.

Eu também publiquei um Gist com um exemplo básico de Opal-Meteor sobre como envolver objetos embutidos do Meteor em classes de Opal.

Este é o código em toda a sua glória

# user.rb
class User
attr_accessor
:name

def initialize(name)
@name = name
end

def admin?
@name == 'Admin'
end
end
# meteor.rb
# Meteor Objects wrapper
class Meteor
def self.server?
`Meteor.isServer`
end

def self.client?
`Meteor.isClient`
end

def self.startup(&block)
`#{block.call if block_given?}`
end

end
# main.rb
user
= User.new('Admin')
puts user

puts user
.admin?

puts
"hello from client #{user.name}!" if Meteor.client?
puts
"hello from server #{user.name}!" if Meteor.server?

Eu encorajo você a colocar o plugin em teste e me sinalizar bugs ou desideratos.