require する際の指定文字列が大文字/小文字で挙動が変わる? → Macの大文字小文字区別の問題でした
ローカル環境で問題なく実行されたコードが別の環境でうまく動作しない
私の開発環境はMacなのですが、そこで以下のように記載したコードを作成しました。
require 'CSV'
自分のローカル環境での単体テストが問題なく終了したため、Linuxの実行環境で上記のコードを含んだアプリケーションを動作させようとしたのですが、
LoadError: cannot load such file -- CSV from /usr/local/src/rbenv/versions/2.2.2/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
となり、エラーが発生しました。
問題は、MacとLinuxで大文字小文字の判断が異なること
Mac は Windows と同じく、ファイル名やフォルダ名の大文字個別を区別しません。(デフォルトの設定では)
Linux は大文字小文字を区別します。
その違いで発生していたエラーでした。
Mac は Unix ベースだから、という勘違い
Macは Unix をベースにしている、という認識があって、そこから勝手にLinux と同じように動作するだろうと思いこんでいました。。
ということで
require 'csv'
に修正して問題は解決しました。