Actions
バグ #959
closedsettings.ymlで特定のキーに対する値が設定を開いた回数分増える
プラグイン名:
ブランチ:
クラッシュする:
Description
settings.yml の UserConfig::reply_present_policy
及び UserConfig::quote_present_policy
の値が設定画面を開いた回数だけ増えていきます。UserConfig::reply_present_policy
の場合は
- :icon
UserConfig::quote_present_policy
の場合は - :header - :icon - :edge
がそれぞれ回数分生成されているのを確認しました。
Files
Updated by あひる 家鴨 over 7 years ago
- File multiselect.patch multiselect.patch added
settingsのmultiselectが原因のようです。
source:core/plugin/settings/multiselect.rb#L72 は設定を開くとチェックが入っている場合毎回呼ばれますが、その度に [value] が追加されています。
これによって、今回報告した問題が引き起こされています。
とりあえず対策としては、value を入れる際に get で得た既存の値と同じものがあるかを判定し、なければ set を実行するというものにしてみましたが、いかがでしょうか。
listener.set((listener.get || []) + [value]) unless (listener.get || []).include?(value)
source:core/plugin/settings/multiselect.rb#L80に関しても同様です。
この修正をしてから既存の環境と新しく作った環境の両方で本チケットの問題が再現しないことを確認しました。
パッチを添付します。( multiselect.patch )
Updated by toshi_a 初音 over 7 years ago
- Status changed from パッチ適用待ち to レビュー待ち
- Assignee set to あひる 家鴨
mergeしました。ちょっとだけ変更していて、値の書き換えが行われる度に重複を排除するようにしています。本来であれば要らない処理ですが、既存のユーザ全員の設定にゴミが入っているはずなので、今後書き換えられた時に重複が排除されるようにしています。
Updated by あひる 家鴨 over 7 years ago
- Status changed from レビュー待ち to 解決
設定を開いても増えないことと、設定更新時に既存の重複が排除されるのを確認しました。
ありがとうございます。
Actions