Rub
はHaml的なEndless Rubyを気軽にはじめるために作ったGemです。
GitHubをsourceに追加して以下のようにインストールできます。
pre>>
% sudo gem install genki-rub
<<--
ソースコード
を見るとわかりますが、非常に短いので現時点では、if文の複数行にまたがる条件文などには対応していません。気が向けばそのうち対応するかもしれません。
Rubを使ってSinatraアプリを作るには以下のようにします。
config.ru
ruby>>
require "rubygems"
require "rub"
rub "app.rb"
run Sinatra::Application
<<--
app.rb
ruby>>
require "sinatra"
require "dm-core"
require "haml"
DataMapper::setup(:default, ENV['DATABASE_URL'] || 'sqlite3://db.sqlite3')
class Post
include DataMapper::Resource
property :id, Serial
property :content, Text
auto_upgrade!
get "/" do
@posts = Post.all(:order => [:id.desc])
haml :index
post "/" do
Post.create(params)
redirect "/"
END
@@ index
%h1 Hello, Sinatra!
%ul
- @posts.each do |post|
%li= post.content
%form{:method => :post}
%textarea{:name => :content}
%input{:type => :submit, :value => "Post"}
<<--
面白い点として、
Endless RubyでもVimやこのブログのSyntaxハイライトはちゃんと機能してくれます(Emacs使いのレポート求む)
必要なファイルはこれだけです。あとはおもむろにshotgunしましょう。
pre>>
% shotgun
== Shotgun starting Rack::Handler::Mongrel on localhost:9393
<<--
あとはhttp://localhost:9393にアクセスするだけです。
app.rbを適当に書き換えてリロードすると、変更が反映される事が確認できます。
shotgunは
pre>>
% sudo gem install shotgun
<<--
でインストールできます。