Class: Plum::ThemeResolver

Inherits:
Object
  • Object
show all
Defined in:
app/services/plum/theme_resolver.rb

Instance Method Summary collapse

Constructor Details

#initialize(registry: ThemeRegistry.new, fallback_handle: ThemeRegistry::DEFAULT_THEME_HANDLE) ⇒ ThemeResolver

Returns a new instance of ThemeResolver.



3
4
5
6
# File 'app/services/plum/theme_resolver.rb', line 3

def initialize(registry: ThemeRegistry.new, fallback_handle: ThemeRegistry::DEFAULT_THEME_HANDLE)
  @registry = registry
  @fallback_handle = fallback_handle
end

Instance Method Details

#find_asset(theme_handle, asset_name) ⇒ Object



20
21
22
# File 'app/services/plum/theme_resolver.rb', line 20

def find_asset(theme_handle, asset_name)
  themes_for(theme_handle).filter_map { |theme| theme.asset_path(asset_name) }.find(&:file?)
end

#find_layout(theme_handle, layout_name = "base") ⇒ Object



16
17
18
# File 'app/services/plum/theme_resolver.rb', line 16

def find_layout(theme_handle, layout_name = "base")
  themes_for(theme_handle).map { |theme| theme.layout_path(layout_name) }.find(&:file?)
end

#find_template(theme_handle, template_name) ⇒ Object



12
13
14
# File 'app/services/plum/theme_resolver.rb', line 12

def find_template(theme_handle, template_name)
  template_candidates(theme_handle, template_name).find(&:file?)
end

#theme(handle) ⇒ Object



8
9
10
# File 'app/services/plum/theme_resolver.rb', line 8

def theme(handle)
  registry.fetch(handle)
end