Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

再読み込みする設定ファイルはKernel.loadを使うと幸せになれるかもしれない

Dotenvは.envの値をRubyの組み込み変数「ENV」に格納してくれます。
ENV自体はHashのようなインターフェイス(keyとかvalueとか)を持っています。
しかし、数値を格納できないという欠点があります。
仮に.envに数値を入れとしても

> Dotenv.load
=> {"USER_NAME"=>"Den2Taro", "PASSWORD"=>"Unique and Exciting Campus", "SENSOR"=>"123"}

のように、文字列に置換されます。
.to_iすりゃいいのですが、どうにも面白くありません。

実は、Kernelクラス内蔵のloadメソッドを使うとこの問題は何とかなってしまいます。

>> load './.env'
=> true
>> p USER_NAME
"Den2Taro"
=> "Den2Taro"
>> p SENSOR
123
=> 123

ファイル名は指定できるのでyaml形式でloadする事も可能です。
その上、requireと違いloadは何度でもリロードできます。
たまに値が変わる設定ファイル系はこの手法で呼ぶのも手ですね。