module Papeel::ActsAsPapeelUser::ClassMethods

Public Instance Methods

acts_as_papeel_user() click to toggle source
# File lib/papeel/acts_as_papeel_user.rb, line 9
def acts_as_papeel_user
  include Papeel::ActsAsPapeelUser::LocalInstanceMethods

  class_eval do
    has_many :roles, class_name: "Papeel::Role", dependent: :destroy, inverse_of: :user
  end

  Papeel.config.roles.each do |role|
    define_method "is_#{role}?" do |opts = {}|
      has_role? role, opts
    end
  end

  Papeel.config.roles.each do |role|
    class_eval do
      scope role, -> { joins(:roles).where(papeel_roles: { name: role }) }
    end
  end
end