Class: Glib::ApplicationPolicy

Inherits:
Object
  • Object
show all
Defined in:
app/policies/glib/application_policy.rb

Defined Under Namespace

Classes: Scope

Class Attribute Summary collapse

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name, *args, &block) ⇒ Object



102
103
104
105
106
107
108
# File 'app/policies/glib/application_policy.rb', line 102

def method_missing(name, *args, &block)
  if respond_to_missing?(name) && catch_all
    call_catch_all
  else
    super
  end
end

Class Attribute Details

.catch_allObject (readonly)

Returns the value of attribute catch_all.



23
24
25
# File 'app/policies/glib/application_policy.rb', line 23

def catch_all
  @catch_all
end

Instance Attribute Details

#contextObject

Returns the value of attribute context.



5
6
7
# File 'app/policies/glib/application_policy.rb', line 5

def context
  @context
end

#controllerObject (readonly)

Returns the value of attribute controller.



6
7
8
# File 'app/policies/glib/application_policy.rb', line 6

def controller
  @controller
end

#paramsObject (readonly)

Returns the value of attribute params.



6
7
8
# File 'app/policies/glib/application_policy.rb', line 6

def params
  @params
end

#policy_nameObject (readonly)

Returns the value of attribute policy_name.



6
7
8
# File 'app/policies/glib/application_policy.rb', line 6

def policy_name
  @policy_name
end

#recordObject (readonly)

Returns the value of attribute record.



6
7
8
# File 'app/policies/glib/application_policy.rb', line 6

def record
  @record
end

#requestObject (readonly)

Returns the value of attribute request.



6
7
8
# File 'app/policies/glib/application_policy.rb', line 6

def request
  @request
end

#userObject (readonly)

Returns the value of attribute user.



6
7
8
# File 'app/policies/glib/application_policy.rb', line 6

def user
  @user
end

Class Method Details

.args_builderObject



121
122
123
# File 'app/policies/glib/application_policy.rb', line 121

def self.args_builder
  proc { |_controller| [] }
end

Instance Method Details

#respond_to_missing?(method_name, include_private = false) ⇒ Boolean

Returns:

  • (Boolean)


110
111
112
# File 'app/policies/glib/application_policy.rb', line 110

def respond_to_missing?(method_name, include_private = false)
  method_name.to_s.end_with?('?') || super
end

#scopeObject



114
115
116
117
118
119
# File 'app/policies/glib/application_policy.rb', line 114

def scope
  policy_scope_class = Pundit::PolicyFinder.new(@policy_name).scope
  return unless policy_scope_class

  controller.policy_scope(record.class, policy_scope_class: policy_scope_class)
end