Guest User

Untitled

a guest
Jul 18th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.23 KB | None | 0 0
  1. ** まるごとRubyより
  2. Ruby で DSL が実装しやすい理由
  3.  
  4. 1.メソッドの引数ではハッシュを囲む{}を省略できる。だから、 "=>" だけを列挙してキーと値のペアを記述できる
  5. 2.シンボルを利用すると、文字列のプログラム的な雰囲気が軽減される
  6. 3.ブロックを利用すると、メソッド呼び出しの内部にユーザ処理を記述できる
  7.  
  8. 4.オープンクラス
  9. 5.eval を利用した実行時評価の仕組みがある
  10.  
  11.  
  12. ▼ Rakefile
  13. task :default => :hello
  14. task :hello => :build do #helloタスクは buildタスクに依存
  15. require 'hello'
  16. Hello.new.hello
  17. File.delete 'hello.rb'
  18. end
  19.  
  20. task :build do
  21. File.open('hello.rb', 'w') do |f|
  22. f.puts 'class Hello'
  23. f.puts ' def hello'
  24. f.puts ' puts "hello"'
  25. f.puts ' end'
  26. f.puts 'end'
  27. end
  28. end
  29.  
  30.  
  31. ▼ 実行結果
  32. $ rake
  33. (in /home/me)
  34. hello
  35.  
  36.  
  37. ▼ Rakefile (設定っぽくない)
  38. task ({"default" => "hello"})
  39. task ({"hello" => "build"}) do
  40. require 'hello'
  41. Hello.new.hello
  42. File.delete 'hello.rb'
  43. end
  44.  
  45. task ("build") do
  46. File.open('hello.rb', 'w') do |f|
  47. f.puts 'class Hello'
  48. f.puts ' def hello'
  49. f.puts ' puts "hello"'
  50. f.puts ' end'
  51. f.puts 'end'
  52. end
  53. end
Add Comment
Please, Sign In to add comment