Method: Roles::DataMapper::ClassMethods#strategy

Defined in:
lib/roles_data_mapper/base.rb

#strategy(name, options = {}) ⇒ Object

Raises:

  • (ArgumentError)


36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/roles_data_mapper/base.rb', line 36

def strategy name, options={}
  strategy_name = name.to_sym
  raise ArgumentError, "Unknown role strategy #{strategy_name}" if !valid_strategies.include? strategy_name

  use_roles_strategy strategy_name

  set_role_class(strategy_name, options) if strategies_with_role_class.include? strategy_name
          
  if options == :default && MAP[name]
    instance_eval MAP[name] 
  end
  
  set_role_strategy name, options
end