環境変数にハッシュを入れたいと思って、ちょっと考えてみたら LTSV を使えば良いということに気づいたので、 実装してみました。 実際には単独のハッシュではなくハッシュの配列がほしかったので、 連続する数値を末尾に付けて複数受け取れるようにしています。

実装

キーワード引数を使っているので、 以下の実装のままだと ruby 2.0.0 以降必須です。 必要なら適当に変更して使ってください。

env_ltsv_each.rb

詳細

String#scrub! は 2.1.0 以降か string-scrub gem が必要なのでデフォルトでは呼ばないようにしています。

Hash だと取り出すのが面倒だったので、 OpenStruct を使ってみました。 メソッド名として問題がある場合は h['send'] のように普通の Hash のように取り出せます。

添字をまわすのに succ を使っているので FOO_A, FOO_B, … のような使い方も出来ると思います。

Disqus Comments

Kazuhiro NISHIYAMA

Ruby のコミッターとかやってます。 フルスタックエンジニア(って何?)かもしれません。 About znzに主なアカウントをまとめました。

znz znz


Published