前の投稿で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

image

独自構文のSinatraができました!

関連記事:内部DSLを使って、RubyのWebフレームワークを書こう!

.rbさえつけなければとてもいいと思います! > tkawaさん
ありがとうございます!.rbのところちょっとだけ直しました。

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


blog comments powered by Disqus
ruby_pack8

100円〜で好評発売中!
M'ELBORNE BOOKS