module PrivatePerson::ActsAsPermissible::ClassMethods

Public Instance Methods

acts_as_permissible(params = {}) click to toggle source
# File lib/private_person/extensions/acts_as_permissible.rb, line 7
def acts_as_permissible(params = {})
  if params[:by].nil?
    raise 'Called acts_as_permissible, but without a :by parameter.'
  end
  class_attribute :by
  self.by = params[:by]

  has_many :permissions, :as => :permissible, :class_name => 'PrivatePerson::Permission'
  has_many :permissors, :through => :permissions, :as => :permissible, :class_name => self.by.to_s.camelize

  send :include, InstanceMethods
end