Sha256: 7ee1230c20b78d87b1395dff61e86079118c7eecbef08e55aa267d1ff0bf0318
Contents?: true
Size: 941 Bytes
Versions: 3
Compression:
Stored size: 941 Bytes
Contents
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
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
role_model-0.5.0 | lib/role_model/class_methods.rb |
role_model-0.4.0 | lib/role_model/class_methods.rb |
role_model-0.3.2 | lib/role_model/class_methods.rb |