module GlobalRoles::ClassMethods

Protected Instance Methods

setup_global_roles!(options = {}) click to toggle source
# File lib/global_roles.rb, line 10
def setup_global_roles!(options = {})
  self::ROLES.freeze
  include GlobalRoles::Methods

  if default = options[:default] || 0
    after_initialize do
      self.global_role = default unless global_role? || persisted?
    end
  end

  self::ROLES.each do |r|
    define_method("global_#{r}?".to_sym) do
      global_role == r
    end
  end

  self.class_eval %(
    scope :with_global_role,
      proc { |r|
        where(:global_role => #{self}::global_role_id_for(r))
      }
  )
end