Module: Roles::ActiveRecord::ClassMethods
- Defined in:
- lib/roles_active_record/base.rb
Instance Method Summary collapse
- #strategies_with_role_class ⇒ Object
- #strategy(name, options = {}) ⇒ Object
- #valid_multi_strategies ⇒ Object
- #valid_single_strategies ⇒ Object
- #valid_strategies ⇒ Object
Instance Method Details
#strategies_with_role_class ⇒ Object
26 27 28 |
# File 'lib/roles_active_record/base.rb', line 26 def strategies_with_role_class [:one_role, :many_roles] end |
#strategy(name, options = {}) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/roles_active_record/base.rb', line 34 def strategy name, = {} 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, ) if strategies_with_role_class.include? strategy_name # one_role reference if strategy_name == :one_role self.belongs_to :one_role, :foreign_key => 'role_id', :class_name => role_class_name.to_s end # many_roles references if strategy_name == :many_roles urc = user_roles_class instance_eval many_roles_stmt(urc) end set_role_strategy name, end |
#valid_multi_strategies ⇒ Object
22 23 24 |
# File 'lib/roles_active_record/base.rb', line 22 def valid_multi_strategies [:many_roles, :roles_mask] end |
#valid_single_strategies ⇒ Object
18 19 20 |
# File 'lib/roles_active_record/base.rb', line 18 def valid_single_strategies [:admin_flag, :one_role, :role_string] end |
#valid_strategies ⇒ Object
30 31 32 |
# File 'lib/roles_active_record/base.rb', line 30 def valid_strategies valid_single_strategies + valid_multi_strategies end |