Class: ThemeSetting
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- ThemeSetting
- Defined in:
- app/models/theme_setting.rb
Class Method Summary collapse
- .acceptable_value_for_type?(value, type) ⇒ Boolean
- .guess_type(value) ⇒ Object
- .types ⇒ Object
- .value_in_range?(value, range, type) ⇒ Boolean
Instance Method Summary collapse
Class Method Details
.acceptable_value_for_type?(value, type) ⇒ Boolean
30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'app/models/theme_setting.rb', line 30 def self.acceptable_value_for_type?(value, type) case type when self.types[:integer] value.is_a?(Integer) when self.types[:float] value.is_a?(Integer) || value.is_a?(Float) when self.types[:bool] value.is_a?(TrueClass) || value.is_a?(FalseClass) when self.types[:list] value.is_a?(String) else true end end |
.guess_type(value) ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'app/models/theme_setting.rb', line 53 def self.guess_type(value) case value when Integer types[:integer] when Float types[:float] when String types[:string] when TrueClass, FalseClass types[:bool] end end |
.types ⇒ Object
26 27 28 |
# File 'app/models/theme_setting.rb', line 26 def self.types @types ||= Enum.new(integer: 0, float: 1, string: 2, bool: 3, list: 4, enum: 5, upload: 6) end |
.value_in_range?(value, range, type) ⇒ Boolean
45 46 47 48 49 50 51 |
# File 'app/models/theme_setting.rb', line 45 def self.value_in_range?(value, range, type) if type == self.types[:integer] || type == self.types[:float] range.include? value elsif type == self.types[:string] range.include? value.to_s.length end end |
Instance Method Details
#clear_settings_cache ⇒ Object
21 22 23 24 |
# File 'app/models/theme_setting.rb', line 21 def clear_settings_cache # All necessary caches will be cleared on next ensure_baked! theme.settings_field&.invalidate_baked! end |