Module: PunditNamespaces

Defined in:
lib/pundit_namespaces.rb,
lib/pundit_namespaces/version.rb,
lib/pundit_namespaces/namespaced_policy_finder.rb

Defined Under Namespace

Classes: NamespacedPolicyFinder

Constant Summary collapse

VERSION =
"0.1.1"

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.policy(user, record, namespace = nil) ⇒ Object



16
17
18
19
# File 'lib/pundit_namespaces.rb', line 16

def policy(user, record, namespace = nil)
  policy = NamespacedPolicyFinder.new(record, namespace).policy
  policy.new(user, record, namespace) if policy
end

.policy!(user, record, namespace = nil) ⇒ Object



21
22
23
24
# File 'lib/pundit_namespaces.rb', line 21

def policy!(user, record, namespace = nil)
  policy = NamespacedPolicyFinder.new(record, namespace).policy!
  policy.new(user, record, namespace)
end

.policy_scope(user, scope, namespace = nil) ⇒ Object



6
7
8
9
# File 'lib/pundit_namespaces.rb', line 6

def policy_scope(user, scope, namespace = nil)
  policy_scope = NamespacedPolicyFinder.new(scope, namespace).scope
  policy_scope.new(user, scope, namespace).resolve if policy_scope
end

.policy_scope!(user, scope, namespace = nil) ⇒ Object



11
12
13
14
# File 'lib/pundit_namespaces.rb', line 11

def policy_scope!(user, scope, namespace = nil)
  policy_scope = NamespacedPolicyFinder.new(scope, namespace).scope!
  policy_scope.new(user, scope, namespace).resolve
end

Instance Method Details

#policiesObject



36
37
38
39
# File 'lib/pundit_namespaces.rb', line 36

def policies
  @_pundit_policies ||= {}
  @_pundit_policies[pundit_namespace] ||= {}
end

#policy(record) ⇒ Object



30
31
32
33
34
# File 'lib/pundit_namespaces.rb', line 30

def policy(record)
  user      = pundit_user
  namespace = pundit_namespace
  policies[record] ||= PunditNamespaces.policy!(user, record, namespace)
end

#policy_scopesObject



41
42
43
44
# File 'lib/pundit_namespaces.rb', line 41

def policy_scopes
  @_pundit_policy_scopes ||= {}
  @_pundit_policy_scopes[pundit_namespace] ||= {}
end

#pundit_namespaceObject



27
28
# File 'lib/pundit_namespaces.rb', line 27

def pundit_namespace
end