module TroleGroups::Config::Schema

Public Instance Methods

configure_field() click to toggle source

Adapter should customize this as needed

# File lib/trole_groups/config/schema.rb, line 18
def configure_field
end
configure_generic() click to toggle source
# File lib/trole_groups/config/schema.rb, line 13
def configure_generic                    
  subject_class.send(:attr_accessor, role_field)  if generic? || orm == :generic # create troles accessor
end
configure_models() click to toggle source
# File lib/trole_groups/config/schema.rb, line 7
def configure_models
  configure_generic
  configure_field if auto_config?(:fields)
  configure_relation if auto_config?(:relations)
end
configure_relation() click to toggle source

Adapter should customize this as needed

# File lib/trole_groups/config/schema.rb, line 22
def configure_relation
end
rolegroup_model() click to toggle source

Gets the role model to be used see (role_model=) @return [Class] the model class (defaults to Role)

# File lib/trole_groups/config/schema.rb, line 36
def rolegroup_model
  @rolegroup_model_found ||= begin
    models = [@rolegroup_model, role_group_class_name].select do |class_name|
      try_class(class_name.to_s.camelize)
    end.compact
    raise "No #{role_group_class_name} class defined, define a #{role_group_class_name} class or set which class to use, using the :rolegroup_model option on configuration" if models.empty?
    models.first.to_s.constantize
  end
end
rolegroup_model=(model_class) click to toggle source

Sets the role model to use allows different role subject classes (fx User Accounts) to have different role schemas @param [Class] the model class

# File lib/trole_groups/config/schema.rb, line 28
def rolegroup_model= model_class
  @rolegroup_model = model_class.to_s and return if model_class.any_kind_of?(Class, String, Symbol)
  raise "The rolegroup model must be a Class, was: #{model_class}"
end

Protected Instance Methods

role_group_class_name() click to toggle source
# File lib/trole_groups/config/schema.rb, line 48
def role_group_class_name
  'RoleGroup'
end
try_class(clazz) click to toggle source
# File lib/trole_groups/config/schema.rb, line 52
def try_class clazz
  begin
    clazz = clazz.constantize if clazz.kind_of?(String)
    clazz
  rescue          
    false
  end
end