Ruby使いの方々にとっては至極当然なのかも知れないが、gem configで読み込んだSettingsの定数値を書き換えてしまい詰まった。
gem configを使って定数を読み込んだ際、てっきり都度YAMLを読み込んでいるので定数は不変(immutable)だと思い込んでいた。
しかし、下記のようなコードを書いてしまうと内容が変更される。
# settings/development.yml blog: title: 'ねむい' author: '黄色' ############################### # bundle exec rails c -e development title = Settings.blog.title puts title #"ねむい" title.delete puts Settings.blog.title # nil
Settingsはファイルから値を読み込んだら、解放されるまでメモリにキャッシュされるっぽい。
普通に考えれば、毎度ファイルアクセスが発生してたら遅すぎて致命的だから当然か。