Sha256: 16ab1282d774bfda5172ca0f2bdb14a08f51da06f1ae0c4c58e3627d780eafd8

Contents?: true

Size: 968 Bytes

Versions: 11

Compression:

Stored size: 968 Bytes

Contents

module Roles::Generic::User
  module ClassMethods
    def inherited(subclass) # :nodoc:
      ::Roles::Generic::User::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

11 entries across 11 versions & 1 rubygems

Version Path
roles_generic-0.5.0 lib/roles_generic/generic/user/class_methods.rb
roles_generic-0.3.9 lib/roles_generic/generic/user/class_methods.rb
roles_generic-0.3.8 lib/roles_generic/generic/user/class_methods.rb
roles_generic-0.3.7.2 lib/roles_generic/generic/user/class_methods.rb
roles_generic-0.3.7.1 lib/roles_generic/generic/user/class_methods.rb
roles_generic-0.3.7 lib/roles_generic/generic/user/class_methods.rb
roles_generic-0.3.6 lib/roles_generic/generic/user/class_methods.rb
roles_generic-0.3.5 lib/roles_generic/generic/user/class_methods.rb
roles_generic-0.3.4 lib/roles_generic/generic/user/class_methods.rb
roles_generic-0.3.3 lib/roles_generic/generic/user/class_methods.rb
roles_generic-0.2.7 lib/roles_generic/generic/user/class_methods.rb