Rubyの標準ライブラリを読んでいく、前回は3年前に ostruct
を読んだ
今回は English.rb を読んでいく。
English.rbとは何か
English.rbはRubyの特殊変数に対してわかりやすい別の名前を付与するライブラリである。Rubyの特殊変数は通常 $ + 記号
の形で与えられており大変読みにくい。そこでこの English.rb
を取り込むことで読みやすい別名を使用することが出来るようになる。
require 'English' "hogefugapiyo" =~ /fuga/ p $PREMATCH #=> "hoge" p $MATCH #=> "fuga" p $POSTMATCH #=> "piyo"
中身を見てみる
基本的に alias
を使って別名を割り当てているだけ
# The exception object passed to +raise+. alias $ERROR_INFO $! # The stack backtrace generated by the last # exception. <tt>See Kernel.caller</tt> for details. Thread local. alias $ERROR_POSITION $@ # The default separator pattern used by <tt>String.split</tt>. May be # set from the command line using the <tt>-F</tt> flag. alias $FS $;
1つ気になるところ
読んでいて1個所気になったのはこの部分
module English end if false
絶対に実行されない謎のコードが入っていたので「なんだこれは」と思っていたのだがどうやらRDocのparseのために追加しているらしい。