class TroleGroups::Macros::Configuration

Attributes

auto_load[R]
options[R]
orm[R]
singularity[R]
strategy[R]
subject_class[R]

Public Class Methods

new(subject_class, strategy, options = {}) click to toggle source
# File lib/trole_groups/macros/configuration.rb, line 11
def initialize subject_class, strategy, options = {}
  @subject_class = subject_class
  @strategy = strategy
  @orm = options[:orm] || Troles::Config.default_orm
  @auto_load = options[:auto_load] || Troles::Config.auto_load?
  options[:strategy] = strategy
  @options = options
end

Public Instance Methods

apply_strategy_options!() click to toggle source
# File lib/trole_groups/macros/configuration.rb, line 35
def apply_strategy_options!        
  trolegroups_config.apply_options! options

  # StrategyOptions.new(subject_class)
  # extract_macros(options).each{|m| apply_macro m}
end
define_hooks() click to toggle source
# File lib/trole_groups/macros/configuration.rb, line 46
def define_hooks
  storage_class = storage_loader.storage_class
  # puts "storage_class: #{storage_class}"
  subject_class.send :define_method, :group_storage do 
    @group_storage ||= storage_class
  end
  
  config_class = config_loader.config_class
  puts "config_class: #{config_class}" if Troles::Config.log_on
  subject_class.singleton_class.class_eval %{
    def trolegroups_config
      @trolegroups_config ||= #{config_class}.new #{subject_class}, #{options.inspect}
    end
  }
end
load_adapter() click to toggle source
# File lib/trole_groups/macros/configuration.rb, line 24
def load_adapter
  return false if !auto_load?

  path = "#{namespace}/adapters/#{orm.to_s.underscore}"
  begin
    require path
  rescue
    raise "Adapter for :#{orm} could not be found at: #{path}"
  end
end
strategy_module() click to toggle source
# File lib/trole_groups/macros/configuration.rb, line 20
def strategy_module
  strategy_loader.strategy_module
end
trolegroups_config() click to toggle source
# File lib/trole_groups/macros/configuration.rb, line 42
def trolegroups_config
  subject_class.trolegroups_config
end

Protected Instance Methods

auto_load?() click to toggle source
# File lib/trole_groups/macros/configuration.rb, line 80
def auto_load?
  (auto_load && orm) || false
end
config_loader() click to toggle source
# File lib/trole_groups/macros/configuration.rb, line 72
def config_loader
  @config_loader ||= ConfigLoader.new strategy, orm
end
namespace() click to toggle source
# File lib/trole_groups/macros/configuration.rb, line 64
def namespace
  'trole_groups'
end
storage_loader() click to toggle source
# File lib/trole_groups/macros/configuration.rb, line 68
def storage_loader
  @storage_loader ||= StorageLoader.new strategy, orm
end
strategy_loader() click to toggle source
# File lib/trole_groups/macros/configuration.rb, line 76
def strategy_loader
  @strategy_loader ||= StrategyLoader.new strategy, orm
end