Sinatraに別構文があってもいいじゃないか!
前の投稿でSinatraはRubyそのものでDSLじゃないと言いました
SinatraはDSLなんかじゃない、Ruby偽装を使ったマインドコントロールだ!
確かに内部DSLというのはそういうものなのかもしれません
でも言語といったら独自の構文くらいはもっていたい
それで
コードをそのままRubyに通したら
Syntaxエラーになってほしい
ちょっと意味不明ですけど...
そんなわけで...
独自構文を持つSinatra
Chinatra を作りました ^^;*1
(ネタ注意!)
使い方
#myroute.rb get / haml :index get /hi 'hi, my friend!' get /:name hello(params[:name]) helpers - hello(name) "Wow you are #{name}!" -
独自の構文です!
これはそのままRubyには通りません
以下のファイルを用意します
#app.rb require_relative 'chinatra' require 'myroute'
chinatraライブラリをrequireして
さらに先のmyroute.rbをrequireします
そしてこのapp.rbをrubyで実行します
$ ruby app.rb == Sinatra/1.2.6 has taken the stage on 4567 for development with backup from Thin >> Thin web server (v1.2.11 codename Bat-Shit Crazy) >> Maximum connections set to 1024 >> Listening on 0.0.0.0:4567, CTRL+C to stop
独自構文のSinatraができました!
関連記事:内部DSLを使って、RubyのWebフレームワークを書こう!