Class: Admission::Rails::ActionAdmission
- Inherits:
-
Object
- Object
- Admission::Rails::ActionAdmission
- Defined in:
- lib/admission/rails/action_admission.rb
Constant Summary collapse
- ALL_ACTIONS =
'^'.freeze
Instance Attribute Summary collapse
-
#controller ⇒ Object
readonly
Returns the value of attribute controller.
-
#resolvers ⇒ Object
readonly
Returns the value of attribute resolvers.
Instance Method Summary collapse
-
#for(*actions, resolve_to: nil, &block) ⇒ Object
config methods (adding resolvers).
- #for_all(resolve_to = nil, &block) ⇒ Object
- #for_resource(*actions, all: false, nested: false) ⇒ Object
-
#initialize(controller) ⇒ ActionAdmission
constructor
A new instance of ActionAdmission.
-
#scope_for_action(action) ⇒ Object
run-time.
- #skip(*actions) ⇒ Object
Constructor Details
#initialize(controller) ⇒ ActionAdmission
Returns a new instance of ActionAdmission.
9 10 11 12 |
# File 'lib/admission/rails/action_admission.rb', line 9 def initialize controller @controller = controller @resolvers = {} end |
Instance Attribute Details
#controller ⇒ Object (readonly)
Returns the value of attribute controller.
7 8 9 |
# File 'lib/admission/rails/action_admission.rb', line 7 def controller @controller end |
#resolvers ⇒ Object (readonly)
Returns the value of attribute resolvers.
7 8 9 |
# File 'lib/admission/rails/action_admission.rb', line 7 def resolvers @resolvers end |
Instance Method Details
#for(*actions, resolve_to: nil, &block) ⇒ Object
config methods (adding resolvers)
16 17 18 19 20 21 |
# File 'lib/admission/rails/action_admission.rb', line 16 def for *actions, resolve_to: nil, &block resolve_to = resolve_to || block resolver = ScopeResolver.using resolve_to set_resolver actions, resolver end |
#for_all(resolve_to = nil, &block) ⇒ Object
23 24 25 |
# File 'lib/admission/rails/action_admission.rb', line 23 def for_all resolve_to=nil, &block self.for ALL_ACTIONS, resolve_to: (resolve_to || block || ScopeResolver.default) end |
#for_resource(*actions, all: false, nested: false) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/admission/rails/action_admission.rb', line 27 def for_resource *actions, all: false, nested: false finder_name = if nested "#{controller.controller_name}_admission_scope" else "find_#{controller.controller_name.singularize}" end resolver = ScopeResolver.using finder_name.to_sym actions = all ? ALL_ACTIONS : actions set_resolver actions, resolver end |
#scope_for_action(action) ⇒ Object
run-time
44 45 46 47 48 |
# File 'lib/admission/rails/action_admission.rb', line 44 def scope_for_action action resolvers[action] || resolvers[ALL_ACTIONS] || parent&.scope_for_action(action) end |
#skip(*actions) ⇒ Object
39 40 41 |
# File 'lib/admission/rails/action_admission.rb', line 39 def skip *actions set_resolver actions, ScopeResolver.void end |