トップ «前の日記(2005-12-08) 最新 次の日記(2005-12-10)» 編集

3 日坊主日記


2005-12-09 [長年日記]

_ [Rails] class inheritable attributes

via rails-west:37

  • inheritable_attributes って何が嬉しいの?

なんとなく分かった気がする。

クラス変数
継承関係で共有される。
クラスのインスタンス変数
クラスごとに独立
inheritable_attributes
継承先にコピーされる。継承元は影響を受けない。

validationやfilterの保持にはこれが使われています。

_ [Rails] Binding.of_caller

メソッド呼び出し元のbindingを得ます。 breakpointで使われています。

サンプルをそのままコピペ:

 def inc_counter(amount = 1)
   Binding.of_caller do |binding|
     # Create a lambda that will increase the variable 'counter'
     # in the caller of this method when called.
     inc = eval("lambda { |arg| counter += arg }", binding)
     # We can refer to amount from inside this block safely.
     inc.call(amount)
   end
   # No other statements can go here. Put them inside the block.
 end
 counter = 0
 2.times { inc_counter }
 counter # => 2

中で (Thread.criticalと) callccが使われているので、YARVでは動きません。;)

ぐぐると irb/frame.rb もそういう処理らしい。

_ [第五] あやしい挙動

以前 support で第二での報告があったように、第五でもリファラ付きで見に行くと反応がなくなることがある。mod_ruby 環境での現象。 http://www.moriq.com/ からのリンクでも起こるので、日付のあるなしは関係ないと思う。

babie さんからのツッコミがメールではきているのに、実際にはなかださんのしか残っていない。c01 が上書きされている。

本日のツッコミ(全1件) [ツッコミを入れる]
# なかだ (2005-12-09 12:32)

クラス変数は1.9だと継承関係で共有されなくなってるんですが、ひょっとして影響大きいですか。

[]