discourse/lib/theme_modifier_helper.rb
David Taylor d1474e94a1
FEATURE: Allow themes to specify modifiers in their about.json file (#9097)
There are three modifiers:
- serialize_topic_excerpts (boolean)
- csp_extensions (array of strings)
- svg_icons (array of strings)

When multiple themes are active, the values will be combined. The combination method varies based on the setting. CSP/SVG arrays will be combined. serialize_topic_excerpts will use `Enumerable#any`.
2020-03-11 13:30:45 +00:00

13 lines
331 B
Ruby

# frozen_string_literal: true
class ThemeModifierHelper
def initialize(request: nil, theme_ids: nil)
@theme_ids = theme_ids || request&.env&.[](:resolved_theme_ids)
end
ThemeModifierSet::MODIFIERS.keys.each do |modifier|
define_method(modifier) do
Theme.lookup_modifier(@theme_ids, modifier)
end
end
end