Se você é um rubista, provavelmente já 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.