Sha256: 0ac7d8a3c319ace6d44b5e72416a6a324da9064763c0d67ef5ba4c944b41fe19

Contents?: true

Size: 771 Bytes

Versions: 3

Compression:

Stored size: 771 Bytes

Contents

class Policy
  module DefaultPolicy
    def index
      false
    end

    def new?
      false
    end

    def create?
      new?
    end

    def show?
      false
    end

    def edit?
      false
    end

    def update?
      edit?
    end

    def destroy?
      edit?
    end
  end

  include DefaultPolicy

  attr_reader :user, :record

  def initialize(user, record = nil)
    @user = user
    @record = record
  end

  class << self
    def for(user, object)
      if object.is_a?(Class)
        "#{object}Policy".constantize.collection(user)
      else
        "#{object.class}Policy".constantize.member(user, object)
      end
    end

    def collection(user)
      new(user)
    end

    def member(user, record)
      new(user, record)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
pages_core-3.6.2 app/policies/policy.rb
pages_core-3.6.1 app/policies/policy.rb
pages_core-3.6.0 app/policies/policy.rb