mirror of
https://github.com/Fishwaldo/role_model.git
synced 2025-03-16 03:51:59 +00:00
move RoleModel::ClassMethods into separate file
This commit is contained in:
parent
35c7ed502c
commit
be80b7e106
2 changed files with 33 additions and 31 deletions
|
@ -1,3 +1,4 @@
|
|||
require 'role_model/class_methods'
|
||||
require 'role_model/roles'
|
||||
|
||||
module RoleModel
|
||||
|
@ -32,35 +33,4 @@ module RoleModel
|
|||
alias is_an? has_role?
|
||||
end
|
||||
|
||||
module ClassMethods
|
||||
def inherited(subclass) # :nodoc:
|
||||
::RoleModel::INHERITABLE_CLASS_ATTRIBUTES.each do |attribute|
|
||||
instance_var = "@#{attribute}"
|
||||
subclass.instance_variable_set(instance_var, instance_variable_get(instance_var))
|
||||
end
|
||||
super
|
||||
end
|
||||
|
||||
# set the bitmask attribute role assignments will be stored in
|
||||
def roles_attribute(name)
|
||||
self.roles_attribute = name
|
||||
end
|
||||
|
||||
# alternative method signature: set the bitmask attribute role assignments will be stored in
|
||||
def roles_attribute=(name)
|
||||
self.roles_attribute_name = name.to_sym
|
||||
end
|
||||
|
||||
# :call-seq:
|
||||
# roles(:role_1, ..., :role_n)
|
||||
# roles('role_1', ..., 'role_n')
|
||||
# roles([:role_1, ..., :role_n])
|
||||
# roles(['role_1', ..., 'role_n'])
|
||||
#
|
||||
# declare valid roles
|
||||
def roles(*roles)
|
||||
self.valid_roles = Array[*roles].flatten.map { |r| r.to_sym }
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
|
32
lib/role_model/class_methods.rb
Normal file
32
lib/role_model/class_methods.rb
Normal file
|
@ -0,0 +1,32 @@
|
|||
module RoleModel
|
||||
module ClassMethods
|
||||
def inherited(subclass) # :nodoc:
|
||||
::RoleModel::INHERITABLE_CLASS_ATTRIBUTES.each do |attribute|
|
||||
instance_var = "@#{attribute}"
|
||||
subclass.instance_variable_set(instance_var, instance_variable_get(instance_var))
|
||||
end
|
||||
super
|
||||
end
|
||||
|
||||
# set the bitmask attribute role assignments will be stored in
|
||||
def roles_attribute(name)
|
||||
self.roles_attribute = name
|
||||
end
|
||||
|
||||
# alternative method signature: set the bitmask attribute role assignments will be stored in
|
||||
def roles_attribute=(name)
|
||||
self.roles_attribute_name = name.to_sym
|
||||
end
|
||||
|
||||
# :call-seq:
|
||||
# roles(:role_1, ..., :role_n)
|
||||
# roles('role_1', ..., 'role_n')
|
||||
# roles([:role_1, ..., :role_n])
|
||||
# roles(['role_1', ..., 'role_n'])
|
||||
#
|
||||
# declare valid roles
|
||||
def roles(*roles)
|
||||
self.valid_roles = Array[*roles].flatten.map { |r| r.to_sym }
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Reference in a new issue