Configuration とか ConfigManager とか Setting とか
微妙にとっちらかってる感が満点なので整理してから作業を。
ポイントと致しましては
- settings テーブルの属性としては
- name 属性が hash key
- value 属性が hash の値
- その他、user_id でユーザ毎の情報を切り分け。script/console で確認したら system_id なんていう微妙な名前の列を追加している模様 (げ
- テーブル上では値を文字列で保持
- ただし、config では値は型変換された形で格納されている
- Configuration でデフォルト値を Item という名前の構造体にて保持
- 上記は Configuration.fields というメソドでアクセス可能
- settings テーブルに行が存在しない場合 (config が空)、Configuration なデフォルト値を設定値として使用
- protected な構造体 Item では以下の属性を持つ
- 構造体 Item は fields という名前の hash に格納
- 構造体 Item の属性について、typo と parabola で微妙な差異あり
ってコトで修正の方針としては
- typo の app/models/config_manager.rb の修正
- reload メソドは parabola にアワせる
- [] メソドも上と同様
- Item 構造体の属性はそのまま (parabola 側を修正)
- typo の app/models/configuration.rb の修正
- value には文字列でなく、型に合わせたリテラル値を指定
- parabola の app/models/config_manager.rb の修正
- Item 構造体のメンバの修正
- default → value
- description の追加
- それに伴なう微調整 (影響は外には無いハズ)
- Item 構造体のメンバの修正
- parabola の app/models/configuration.rb の修正
- description の追加に伴なうナニ
- parabola の app/views/admin/general/index.rhtml の修正
あと、system_id 列が追加されてるんだったら、general_controller.rb 方面にその記述を追加しておく必要はある。(ただ、使ってねぇと言えば使ってねぇしー)
修正の方針は良いとして、試験をマージしとく必要があるんだった。(とほほほ
って、見てみたら
- typo は configuration_test.rb
- parabola は setting_test.rb
ってなってるし。(駄目
どうしたものやら。