Module: Roles::ActiveRecord::ClassMethods
- Defined in:
- lib/roles_active_record/base.rb
Instance Method Summary collapse
- #default_role ⇒ Object
- #default_role=(drole) ⇒ Object
- #strategies_with_role_class ⇒ Object
- #strategy(name, options = {}) ⇒ Object
- #valid_multi_strategies ⇒ Object
- #valid_single_strategies ⇒ Object
- #valid_strategies ⇒ Object
Instance Method Details
#default_role ⇒ Object
28 29 30 |
# File 'lib/roles_active_record/base.rb', line 28 def default_role self.to_s.gsub(/(.+)User$/, '\1').underscore.to_sym end |
#default_role=(drole) ⇒ Object
32 33 34 |
# File 'lib/roles_active_record/base.rb', line 32 def default_role= drole @default_role = drole end |
#strategies_with_role_class ⇒ Object
44 45 46 |
# File 'lib/roles_active_record/base.rb', line 44 def strategies_with_role_class [:one_role, :many_roles] end |
#strategy(name, options = {}) ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/roles_active_record/base.rb', line 52 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
40 41 42 |
# File 'lib/roles_active_record/base.rb', line 40 def valid_multi_strategies [:many_roles, :roles_mask] end |
#valid_single_strategies ⇒ Object
36 37 38 |
# File 'lib/roles_active_record/base.rb', line 36 def valid_single_strategies [:admin_flag, :one_role, :role_string] end |
#valid_strategies ⇒ Object
48 49 50 |
# File 'lib/roles_active_record/base.rb', line 48 def valid_strategies valid_single_strategies + valid_multi_strategies end |