Class: Pundit::Matchers::Utils::PolicyInfo
- Inherits:
-
Object
- Object
- Pundit::Matchers::Utils::PolicyInfo
- Defined in:
- lib/pundit/matchers/utils/policy_info.rb
Overview
Collects all details about given policy class.
Instance Attribute Summary collapse
-
#policy ⇒ Object
readonly
Returns the value of attribute policy.
Instance Method Summary collapse
- #actions ⇒ Object
- #forbidden_actions ⇒ Object
-
#initialize(policy) ⇒ PolicyInfo
constructor
A new instance of PolicyInfo.
- #permitted_actions ⇒ Object
Constructor Details
#initialize(policy) ⇒ PolicyInfo
Returns a new instance of PolicyInfo.
10 11 12 |
# File 'lib/pundit/matchers/utils/policy_info.rb', line 10 def initialize(policy) @policy = policy end |
Instance Attribute Details
#policy ⇒ Object (readonly)
Returns the value of attribute policy.
8 9 10 |
# File 'lib/pundit/matchers/utils/policy_info.rb', line 8 def policy @policy end |
Instance Method Details
#actions ⇒ Object
14 15 16 17 18 19 |
# File 'lib/pundit/matchers/utils/policy_info.rb', line 14 def actions @actions ||= begin policy_methods = @policy.public_methods - Object.instance_methods policy_methods.grep(/\?$/).map { |policy_method| policy_method.to_s.sub(/\?$/, '').to_sym } end end |
#forbidden_actions ⇒ Object
25 26 27 |
# File 'lib/pundit/matchers/utils/policy_info.rb', line 25 def forbidden_actions actions - permitted_actions end |
#permitted_actions ⇒ Object
21 22 23 |
# File 'lib/pundit/matchers/utils/policy_info.rb', line 21 def permitted_actions @permitted_actions ||= actions.select { |action| policy.public_send("#{action}?") } end |