Fixnum#respond_to?
例外で反応するのをrespondしてるといわないでほしい・・・
1 irb(main):001:0> 1.respond_to? :dup 2 => true 3 irb(main):002:0> 1.dup 4 TypeError: can't dup Fixnum 5 from (irb):2:in `dup' 6 from (irb):2 7 from :0
例外で反応するのをrespondしてるといわないでほしい・・・
1 irb(main):001:0> 1.respond_to? :dup 2 => true 3 irb(main):002:0> 1.dup 4 TypeError: can't dup Fixnum 5 from (irb):2:in `dup' 6 from (irb):2 7 from :0
考えてみりゃそりゃそうなんだけど、
1 irb(main):001:0> true && nil 2 => nil 3 irb(main):002:0> true && false 4 => false
必ず真偽値を返す演算子があってもいいのにと思った
あるフィルタが定義されているかどうかを知りたいとき、
Controller
1 >> ApplicationControlle r.filter_cha in.class 2 => Array
1 >> ApplicationControlle r.filter_cha in.class 2 => ActionCont roller::Filters::FilterChai n
Controller
を直接コントローラに定義する(2.1以前)のではなく、 同クラスに持たせることができるようになった。 これは、名前空間的にも責務の明瞭化としても進化と言える。
従って、今後は Controller
1 >> ApplicationControlle r.filter_cha in.find(:login_requ ired) 2 => #<ActionCont roller::Fi lters::Bef oreFilter: 0x2621914 ...
しかしながら、未だに1.2ユーザも多いプラグインなどでは後方互換性が必要である。
色んな対応策が考えられるが、
ここでは、2.1 側に涙を飲んでもらって、
せっかく奇麗にした所を悪いが find_filte
1 ActionController::Base.class_eval do 2 unless respond_to ?(:find_filte r) 3 def self.find_ filter(name) 4 filter_cha in.find(name) 5 end 6 end
(vendor/plu
せっかくアカウントをとったので、テストがてらプログラムを載せてみる。
お題は、どう書く.orgにあった、一番最近の問題で。
問題の内容は、 どう書く.org - LL Golf Hole 3 - 13日の金曜日を数え上げるを参照のこと。
1 require 'date' 2 3 from = DateTime.now 4 to = DateTime.parse("2013-12-31") 5 6 puts (from..to).find_all{|d| d.wday==5 and d.mday==13}.size
こんな感じになりました。
コードがちゃんとハイライトされてる! s21g blogすごくイイ!!
こんな便利なブログサービスを提供してくれている瀧内さんに感謝、感謝です。