class Admission::Rails::ScopeResolver

Public Class Methods

default() click to toggle source
# File lib/admission/rails/scope_resolver.rb, line 27
def self.default
  @default ||= new(-> {
    controller_name.to_sym
  })
end
new(scope) click to toggle source
# File lib/admission/rails/scope_resolver.rb, line 5
def initialize scope
  @scope = scope
  freeze
end
using(scope_resolver) click to toggle source
# File lib/admission/rails/scope_resolver.rb, line 33
def self.using scope_resolver
  return scope_resolver if scope_resolver.is_a? ScopeResolver

  unless scope_resolver.is_a?(Proc) || scope_resolver.is_a?(Symbol)
    raise 'Function to resolve the admission scope needed.'+
        ' Pass a block or `resolve_to:` parameter.'
  end

  new scope_resolver
end
void() click to toggle source
# File lib/admission/rails/scope_resolver.rb, line 23
def self.void
  @void ||= new(nil)
end

Public Instance Methods

apply(controller_instance) { |send| ... } click to toggle source
# File lib/admission/rails/scope_resolver.rb, line 10
def apply controller_instance
  case @scope
    when Symbol
      yield controller_instance.send(@scope)

    when Proc
      yield controller_instance.instance_exec(&@scope)

    else # void

  end
end