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

Railsの開発環境の自動再読み込みはどうやってるのか

以前から気になっていたけど調べたことのなかったRailsのアノ機能を調べてみました。開発環境でソースを修正→ブラウザーをリロード→変更が反映、の機能です。どうやっているかというと、RubyのModule#const_missingとModule#remove_constを使っています。ソ…

Module#constantsとModule.constants

Moduleのインスタンスメソッドconstantsとクラスメソッドconstantsの区別がややこしい。 Module#constants Module.constants Module.constantsはModuleじゃなくてKernelに実装してconst_variablesみたいな名前にしたほうがいいんじゃないだろうか。

Rubyの定数は定数ではない

Rubyの定数(大文字で始まる変数)は再代入が可能です。警告は出ますが変更できます。 FOO = "hello" FOO = "world" p FOO結果: temp.rb:2: warning: already initialized constant FOO "world"RubyにはC/C++のような定数は存在せず、大文字で始まる変数は…

Rubyの == と equal? と === と eql? のまとめ

== 数値、文字列、配列などで、「等しいかどうか」「同じ内容かどうか」を調べるのに使います。別のオブジェクト(別のインスタンスへの参照)でも同じ内容ならtrueになります。Rubyでは数値と文字列の間の自動変換は行われませんので、1 == "1"はfalseです…

シンボルをどう説明するか

入門者にRubyのシンボルを説明するのは難しいですよね。