Sha256: 0ebbefc2adaf870c9bc48021c76e955f706035e35ac0211cdb143bd6f73284eb

Contents?: true

Size: 1.23 KB

Versions: 9

Compression:

Stored size: 1.23 KB

Contents

# frozen_string_literal: true

require_relative 'base_matcher'

module Pundit
  module Matchers
    # This matcher tests whether a policy forbids all actions.
    class ForbidAllActionsMatcher < BaseMatcher
      # A description of the matcher.
      #
      # @return [String] Description of the matcher.
      def description
        'forbid all actions'
      end

      # Checks if the given policy forbids all actions.
      #
      # @param policy [Object] The policy to test.
      # @return [Boolean] True if the policy forbids all actions, false otherwise.
      def matches?(policy)
        setup_policy_info! policy

        policy_info.permitted_actions.empty?
      end

      # Raises a NotImplementedError
      # @raise NotImplementedError
      # @return [void]
      def does_not_match?(_policy)
        raise NotImplementedError, format(AMBIGUOUS_NEGATED_MATCHER_ERROR, name: 'forbid_all_actions')
      end

      # Returns a failure message if the matcher fails.
      #
      # @return [String] Failure message.
      def failure_message
        message = +"expected '#{policy_info}' to forbid all actions,"
        message << " but permitted #{policy_info.permitted_actions}"
        message << user_message
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
pundit-matchers-3.1.2 lib/pundit/matchers/forbid_all_actions_matcher.rb
pundit-matchers-3.1.1 lib/pundit/matchers/forbid_all_actions_matcher.rb
pundit-matchers-3.1.0 lib/pundit/matchers/forbid_all_actions_matcher.rb
pundit-matchers-3.0.1 lib/pundit/matchers/forbid_all_actions_matcher.rb
pundit-matchers-3.0.0 lib/pundit/matchers/forbid_all_actions_matcher.rb
pundit-matchers-3.0.0.beta4 lib/pundit/matchers/forbid_all_actions_matcher.rb
pundit-matchers-3.0.0.beta3 lib/pundit/matchers/forbid_all_actions_matcher.rb
pundit-matchers-3.0.0.beta2 lib/pundit/matchers/forbid_all_actions_matcher.rb
pundit-matchers-3.0.0.beta1 lib/pundit/matchers/forbid_all_actions_matcher.rb