Class: Navigatrix::Rendering::StrategyFactory

Inherits:
Object
  • Object
show all
Defined in:
lib/navigatrix/rendering/strategy_factory.rb

Defined Under Namespace

Classes: MissingStrategy

Constant Summary collapse

DEFAULT_LIST_STRATEGY =
:unordered_list
DEFAULT_ITEM_STRATEGY =
:item

Class Method Summary collapse

Class Method Details

.find_item_strategy(strategy_or_name, strategies = Navigatrix.item_renderers) ⇒ Object



13
14
15
# File 'lib/navigatrix/rendering/strategy_factory.rb', line 13

def self.find_item_strategy(strategy_or_name, strategies = Navigatrix.item_renderers)
  find_strategy(strategy_or_name, strategies, DEFAULT_ITEM_STRATEGY)
end

.find_list_strategy(strategy_or_name, strategies = Navigatrix.list_renderers) ⇒ Object



9
10
11
# File 'lib/navigatrix/rendering/strategy_factory.rb', line 9

def self.find_list_strategy(strategy_or_name, strategies = Navigatrix.list_renderers)
  find_strategy(strategy_or_name, strategies, DEFAULT_LIST_STRATEGY)
end

.find_strategy(strategy_or_name, strategies, default) ⇒ Object



17
18
19
20
21
22
23
24
25
# File 'lib/navigatrix/rendering/strategy_factory.rb', line 17

def self.find_strategy(strategy_or_name, strategies, default)
  return strategy_or_name if strategy_or_name.is_a?(Class)

  strategy_or_name ||= default

  strategies.fetch(strategy_or_name) do
    raise(MissingStrategy, "can't find strategy #{strategy_or_name}")
  end
end