Хотя подход Райана МакГири работает великолепно и почти наверняка является правильным способом сделать это, есть ошибка, которую я не смог определить, которая нарушает метод Hash[]
.
Например:
r = CaseInsensitiveHash['ASDF', 1, 'QWER', 2]
=> {"ASDF"=>1, "QWER"=>2}
r['ASDF']
=> nil
ap r
{
"ASDF" => nil,
"QWER" => nil
}
=> {"ASDF"=>1, "QWER"=>2}
Хотя я не смог найти или исправить основную причину ошибки, следующий хак облегчает проблему:
r = CaseInsensitiveHash.new(Hash['ASDF', 1, 'QWER', 2])
=> {"asdf"=>1, "qwer"=>2}
r['ASDF']
=> 1
ap r
{
"asdf" => 1,
"qwer" => 2
}
=> {"asdf"=>1, "qwer"=>2}