Sinatraに別構文があってもいいじゃないか!

前の投稿でSinatraRubyそのもので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フレームワークを書こう!


*1:支那虎ということで...