いつの間にかopal-sprocketsがobsoleteになって、Opal本体に組み込みになったらしい。
OpalはJavaScriptで書かれたRuby処理系である。opal-sprocketsは「とりあえずOpalを使った静的ページを作ってみたい」ときに使うやつ。ソースを保存すると自動で再コンパイルとかしてくれる。
最新のOpal 0.6.2ではこれがopal gemに内蔵されているので、http://opalrb.org/docs/using_sprockets/ に書かれているようにやるとHello Worldまでできる。せっかくなのでここにもメモしておきます。
準備
以下のファイルを用意する。
Gemfile
source 'https://rubygems.org'
gem 'opal', '>= 0.6.0'
app/application.rb
require 'opal'
puts "hello world"
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>opal server example</title>
<script src="/assets/application.js"></script>
</head>
<body>
</body>
</html>
config.ru
require 'bundler'
Bundler.require
run Opal::Server.new { |s|
s.append_path 'app'
s.main = 'application'
s.index_path = 'index.html'
}
用意できたら以下のようにする。
$ bundle install
$ bundle exec rackup
$ open http://localhost:9292/
これでページが表示できて、開発者コンソールに「hello world」と出力されるはず。あとはapp/application.rbにOpalのコードを書けば、ブラウザをリロードするだけで自動的にJSにコンパイルされて実行できる。
いまのOpalはRubyのひと通りの機能がだいたいあるので、http://opalrb.org/try/# ここにデモがありますが、クラス作ったりとか普通に動きます。
class User
attr_accessor :name
def initialize(name)
@name = name
end
def admin?
@name == 'Admin'
end
end
user = User.new('Bob')
puts user
puts user.admin?