class Troles::Common::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/troles/common/macros/configuration.rb, line 8
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/troles/common/macros/configuration.rb, line 32
def apply_strategy_options!
  subject_class.troles_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/troles/common/macros/configuration.rb, line 39
def define_hooks
  storage_class = storage_loader.storage_class
  subject_class.send :define_method, :storage do 
    @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 troles_config
      @troles_config ||= #{config_class}.new #{subject_class}, #{options.inspect}
    end
  }
end
load_adapter() click to toggle source
# File lib/troles/common/macros/configuration.rb, line 21
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/troles/common/macros/configuration.rb, line 17
def strategy_module
  strategy_loader.strategy_module
end

Protected Instance Methods

auto_load?() click to toggle source
# File lib/troles/common/macros/configuration.rb, line 77
def auto_load?
  (auto_load && orm) || false
end
config_loader() click to toggle source
# File lib/troles/common/macros/configuration.rb, line 68
def config_loader
  @config_loader ||= ConfigLoader.new strategy, orm
end
namespace() click to toggle source
# File lib/troles/common/macros/configuration.rb, line 56
def namespace
  singularity == :many ? 'troles' : 'trole'      
end
storage_loader() click to toggle source
# File lib/troles/common/macros/configuration.rb, line 64
def storage_loader
  @storage_loader ||= StorageLoader.new strategy, orm
end
strategy_loader() click to toggle source
# File lib/troles/common/macros/configuration.rb, line 72
def strategy_loader
  @strategy_loader ||= StrategyLoader.new strategy, orm
end