class TroleGroups::Macros::Configuration::StrategyLoader

Public Class Methods

new(strategy, orm) click to toggle source
# File lib/trole_groups/macros/configuration/strategy_loader.rb, line 5
def initialize strategy, orm
  super
end

Public Instance Methods

strategy_module() click to toggle source
# File lib/trole_groups/macros/configuration/strategy_loader.rb, line 9
def strategy_module
  @strategy_module ||= orm_strategy_module || generic_strategy_module        
end

Protected Instance Methods

generic_strategy_module(strategy_name, options) click to toggle source
# File lib/trole_groups/macros/configuration/strategy_loader.rb, line 24
def generic_strategy_module strategy_name, options
  @generic_module ||= begin
    base_class = base_name(strategy_name) 
  
    # use generic if no ORM specific strategy found!
    ns = namespace(strategy_name, options)
    mods_found = ["#{namespace}::Strategy::#{strategy.to_s.camelize}", "#{namespace}::Strategy::#{base_class}"].select do |full_name|
      try_module(full_name)
    end        
    !mods_found.empty? ? mods_found.first.constantize : nil
  end
end
orm_strategy_module() click to toggle source
# File lib/trole_groups/macros/configuration/strategy_loader.rb, line 15
def orm_strategy_module
  @orm_strategy_module ||= begin         
    mods_found = ["#{orm_namespace}::Strategy::#{strategy.to_s.camelize}", "#{namespace}::Strategy::#{base_class}"].select do |full_name|
      try_module(full_name)
    end
    !mods_found.empty? ? mods_found.first.constantize : nil
  end
end