module Kojac::ModelMethods

Public Class Methods

included(aClass) click to toggle source
# File lib/kojac/kojac_rails.rb, line 104
      def self.included(aClass)
  aClass.send :extend, ClassMethods
              aClass.class_eval do
                      scope :by_key, ->(aKey,aOperation=nil) {
                              key = if respond_to?(:crack_key)
                                      crack_key(aKey)
                              elsif aClass.respond_to?(:crack_key)
                                      aClass.crack_key(aKey)
                              end
                              r = key[:resource]
                              id = key[:id]
                              a = key[:association]
                              if id
                                      where(id: id)
                              else
                                      where('1 = 1')
                              end
                      }
              end
end

Public Instance Methods

as_json(options = nil) click to toggle source
Calls superclass method
# File lib/kojac/kojac_rails.rb, line 187
def as_json(options = nil)
        super
end
kojac_key() click to toggle source
# File lib/kojac/kojac_rails.rb, line 170
def kojac_key
        self.class.to_s.snake_case.pluralize+'__'+self.id.to_s
end
unauthorized!(aMessage=nil) click to toggle source
# File lib/kojac/kojac_rails.rb, line 166
            def unauthorized!(aMessage=nil)
        raise ::Pundit::NotAuthorizedError, aMessage||"You are not authorized to perform this action"
end
update_permitted_attributes!(aChanges, aPolicy) click to toggle source
# File lib/kojac/kojac_rails.rb, line 174
def update_permitted_attributes!(aChanges, aPolicy)
        aChanges = KojacUtils.upgrade_hashes_to_params(aChanges)
        p_fields = aPolicy.permitted_fields(:write)
        unauthorized! if p_fields.empty?
        p_fields = aChanges.permit(*p_fields)
        if ::Rails::VERSION::MAJOR <= 3
                assign_attributes(p_fields, :without_protection => true)
        else
                assign_attributes(p_fields)
        end
        save!
end