エントリーの編集
![loading...](https://b.st-hatena.com/bdefb8944296a0957e54cebcfefc25c4dcff9f5f/images/v4/public/common/loading@2x.gif)
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
記事へのコメント1件
- 注目コメント
- 新着コメント
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
![アプリのスクリーンショット](https://b.st-hatena.com/bdefb8944296a0957e54cebcfefc25c4dcff9f5f/images/v4/public/entry/app-screenshot.png)
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
KagemushaでCleanなDSLスタイルのinitializeを作る - Hello, world! - s21g
Kagemushaを使って、スコープを汚さないDSLスタイルのinitialize メソッドを提供する方法を紹介します。... Kagemushaを使って、スコープを汚さないDSLスタイルのinitialize メソッドを提供する方法を紹介します。 1 require 'rubygems' 2 require 'kagemusha' 3 4 class Foo 5 def initialize(&block) 6 bar = nil # default value 7 meta = eval('class << self; self end', block.binding) 8 Kagemusha.new(meta) do |kage| 9 kage.def(:bar){|bar|} # substitution 10 end.swap(&block) 11 @bar = bar 12 end 13 end 14 15 def bar(x); puts x end 16 17 foo =
2008/07/24 リンク