DEV: Refactor subclasses in ThemeSettingsManager to individual files (#25605)

Why this change?

One Ruby class per file improves readability
This commit is contained in:
Alan Guo Xiang Tan
2024-02-08 12:59:52 +08:00
committed by GitHub
parent 7ce76143ac
commit fb0e656cb7
12 changed files with 197 additions and 185 deletions

View File

@ -0,0 +1,17 @@
# frozen_string_literal: true
class ThemeSettingsManager::Enum < ThemeSettingsManager
def value
val = super
match = choices.find { |choice| choice == val || choice.to_s == val }
match || val
end
def is_valid_value?(new_value)
choices.include?(new_value) || choices.map(&:to_s).include?(new_value)
end
def choices
@opts[:choices]
end
end