Sha256: 6b8976c913ef540122440ae0779b1191a3e72d23e8b9ddbde38c711b8a247e36

Contents?: true

Size: 692 Bytes

Versions: 2

Compression:

Stored size: 692 Bytes

Contents

# frozen_string_literal: true

module ActionPolicy
  module ScopeMatchers
    # Adds `relation_scope` method as an alias
    # for `scope_for :active_record_relation`
    module ActiveRecord
      def relation_scope(...)
        scope_for(:active_record_relation, ...)
      end
    end
  end
end

# Register relation scope matcher
ActionPolicy::Base.scope_matcher :active_record_relation, ActiveRecord::Relation

# Add alias to base policy
ActionPolicy::Base.extend ActionPolicy::ScopeMatchers::ActiveRecord

ActiveRecord::Relation.include(Module.new do
  def policy_name
    if model.respond_to?(:policy_name)
      model.policy_name.to_s
    else
      "#{model}Policy"
    end
  end
end)

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
action_policy-0.6.7 lib/action_policy/rails/scope_matchers/active_record.rb
action_policy-0.6.6 lib/action_policy/rails/scope_matchers/active_record.rb