詳細
Ruby 2.0.0p195のソースコード内でタブインデントを使っているソースを抽出してみた。
※Windows環境で試行
抽出は、Ruby2.0のインストールフォルダ配下を以下のコマンドで調査。
find . -name *.rb | xargs grep $'^\t' | cut -d':' -f1 | sort | uniq
抽出結果
./lib/ruby/2.0.0/cmath.rb ./lib/ruby/2.0.0/date.rb ./lib/ruby/2.0.0/dl/callback.rb ./lib/ruby/2.0.0/dl/import.rb ./lib/ruby/2.0.0/drb/ssl.rb ./lib/ruby/2.0.0/i386-mingw32/rbconfig.rb ./lib/ruby/2.0.0/irb/cmd/chws.rb ./lib/ruby/2.0.0/irb/cmd/fork.rb ./lib/ruby/2.0.0/irb/cmd/load.rb ./lib/ruby/2.0.0/irb/cmd/nop.rb ./lib/ruby/2.0.0/irb/cmd/pushws.rb ./lib/ruby/2.0.0/irb/cmd/subirb.rb ./lib/ruby/2.0.0/irb/completion.rb ./lib/ruby/2.0.0/irb/context.rb ./lib/ruby/2.0.0/irb/ext/change-ws.rb ./lib/ruby/2.0.0/irb/ext/history.rb ./lib/ruby/2.0.0/irb/ext/loader.rb ./lib/ruby/2.0.0/irb/ext/math-mode.rb ./lib/ruby/2.0.0/irb/ext/multi-irb.rb ./lib/ruby/2.0.0/irb/ext/save-history.rb ./lib/ruby/2.0.0/irb/ext/tracer.rb ./lib/ruby/2.0.0/irb/ext/use-loader.rb ./lib/ruby/2.0.0/irb/ext/workspaces.rb ./lib/ruby/2.0.0/irb/extend-command.rb ./lib/ruby/2.0.0/irb/frame.rb ./lib/ruby/2.0.0/irb/help.rb ./lib/ruby/2.0.0/irb/init.rb ./lib/ruby/2.0.0/irb/input-method.rb ./lib/ruby/2.0.0/irb/locale.rb ./lib/ruby/2.0.0/irb/notifier.rb ./lib/ruby/2.0.0/irb/output-method.rb ./lib/ruby/2.0.0/irb/ruby-lex.rb ./lib/ruby/2.0.0/irb/ruby-token.rb ./lib/ruby/2.0.0/irb/slex.rb ./lib/ruby/2.0.0/irb/workspace.rb ./lib/ruby/2.0.0/irb/xmp.rb ./lib/ruby/2.0.0/multi-tk.rb ./lib/ruby/2.0.0/win32/sspi.rb
割りといっぱいある。
irbのコミッターの方はタブ好きなのだろうか?
Ruby2.0.0p195のdate.rb
参考に1ファイル覗いてみましょう。
結構大胆にスペース2インデント中にタブが紛れ込んでますね。
ぱっと見では分かりにくいのでタブを白抜きの□(トーフ)に置換しておきました。
※「 # <= ここタブあり」というコメントは私が追記したもの
# : # 略 # : class Date class Infinity < Numeric # :nodoc: # : # 中略 # : else □begin # <= ここタブあり □ l, r = other.coerce(self) # <= ここタブあり □ return l <=> r # <= ここタブあり □rescue NoMethodError # <= ここタブあり □end # <= ここタブあり end nil end def coerce(other) case other when Numeric; return -d, d else □super # <= ここタブあり end end def to_f return 0 if @d == 0 if @d > 0 □Float::INFINITY # <= ここタブあり else □-Float::INFINITY # <= ここタブあり end end end end