Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ** まるごとRubyより
- Ruby で DSL が実装しやすい理由
- 1.メソッドの引数ではハッシュを囲む{}を省略できる。だから、 "=>" だけを列挙してキーと値のペアを記述できる
- 2.シンボルを利用すると、文字列のプログラム的な雰囲気が軽減される
- 3.ブロックを利用すると、メソッド呼び出しの内部にユーザ処理を記述できる
- 4.オープンクラス
- 5.eval を利用した実行時評価の仕組みがある
- ▼ Rakefile
- task :default => :hello
- task :hello => :build do #helloタスクは buildタスクに依存
- require 'hello'
- Hello.new.hello
- File.delete 'hello.rb'
- end
- task :build do
- File.open('hello.rb', 'w') do |f|
- f.puts 'class Hello'
- f.puts ' def hello'
- f.puts ' puts "hello"'
- f.puts ' end'
- f.puts 'end'
- end
- end
- ▼ 実行結果
- $ rake
- (in /home/me)
- hello
- ▼ Rakefile (設定っぽくない)
- task ({"default" => "hello"})
- task ({"hello" => "build"}) do
- require 'hello'
- Hello.new.hello
- File.delete 'hello.rb'
- end
- task ("build") do
- File.open('hello.rb', 'w') do |f|
- f.puts 'class Hello'
- f.puts ' def hello'
- f.puts ' puts "hello"'
- f.puts ' end'
- f.puts 'end'
- end
- end
Add Comment
Please, Sign In to add comment