紳士なブログ

紳士すぎてすみません

2013-01-01から1ヶ月間の記事一覧

東京Ruby会議10に行ってきた

昨日と今日、東京Ruby会議という名の千葉Ruby会議に行ってきました。 東京Ruby会議10 #tkrk10 - Regional RubyKaigi 会期:2013/01/13(日)〜14(祝・月) 自分には上手いことあれこれコメントできないので、 聴講したプレゼンの資料とかまとめておきたいと思い…

classキーワードとclass_evalメソッド

Module.class_evalメソッドってどういうときに使うんだっけ、どうしてclassキーワードを使わないんだろと、ふと気になったので簡単にまとめておく。 classキーワード 定数(クラス名)を必要とする 現在の束縛を捨てて、新しいスコープをオープン classはス…

ActiveRecord::Base.find

よくお世話になっているくせにRailsのfindメソッドのコードを初めて読んだので、メモ。 activerecord-2.3.2/lib/active_record/base.rb def find(*args) options = args.extract_options! validates_find_options(options) set_readonly_options!(options) c…

extract_options!

お馴染みextract_options!メソッドですが、正確なコードを忘れてしまっていたので備忘録としてメモ。module Arrayで定義されているのが個人的に面白いと感じたり。 Rails : 2.3.2 module ActiveSupport module CoreExtensions module Array module ExtractOp…

モンキーパッチの防止(Rakeの場合)

Rubyは動的言語であり、メタプログラミングを駆使すれば魔術のようなこともできる。一方で、一歩間違えればコードの複雑性が上がり、可読性が下がってしまう危険性があるどころか、思わぬ挙動を引き起こしてしまうこともある。 テストを必要十分に書くという…

ActiveRecord::AttributeMethods

明けましておめでとうございます。本年もよろしくお願いいたします。 新年早々、ActiveRecordのコードを読んでいて書き方が勉強になったので、今後の参考にメモしておきます。(ソースコードはこちら) ちなみに、もともとはinstance_method_already_impleme…