Module: Entitlements::Extras
- Includes:
- Contracts::Core
- Defined in:
- lib/entitlements.rb,
lib/entitlements/extras.rb,
lib/entitlements/extras/base.rb,
lib/entitlements/extras/orgchart/base.rb,
lib/entitlements/extras/orgchart/logic.rb,
lib/entitlements/extras/ldap_group/base.rb,
lib/entitlements/extras/orgchart/person_methods.rb,
lib/entitlements/extras/orgchart/rules/management.rb,
lib/entitlements/extras/ldap_group/rules/ldap_group.rb,
lib/entitlements/extras/orgchart/rules/direct_report.rb,
lib/entitlements/extras/ldap_group/filters/member_of_ldap_group.rb
Defined Under Namespace
Classes: Base, LDAPGroup, Orgchart
Constant Summary
collapse
- C =
::Contracts
Class Method Summary
collapse
common, extended, included
Class Method Details
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/entitlements/extras.rb', line 18
def self.(namespace, path = nil)
path ||= File.expand_path("./extras", __dir__)
unless File.file?(File.join(path, namespace, "base.rb"))
raise Errno::ENOENT, "Error loading #{namespace}: There is no file `base.rb` in directory `#{path}/#{namespace}`."
end
require File.join(path, namespace, "base.rb")
class_name = ["Entitlements", "Extras", Entitlements::Util::Util.camelize(namespace), "Base"].join("::")
clazz = Kernel.const_get(class_name)
clazz.init
register_rules(clazz)
(clazz)
Entitlements.(clazz)
@namespace_class ||= {}
@namespace_class[namespace] ||= clazz
end
|
69
70
71
72
73
74
75
76
77
78
79
80
|
# File 'lib/entitlements/extras.rb', line 69
def self.(clazz)
return unless clazz.respond_to?(:person_methods)
clazz.person_methods.each do |method_name|
clazz_without_base = clazz.to_s.split("::")[0..-2]
method_class_name = [clazz_without_base, "PersonMethods"].join("::")
method_class = Kernel.const_get(method_class_name)
Entitlements.(method_name, method_class)
end
nil
end
|
.register_rules(clazz) ⇒ Object
50
51
52
53
54
55
56
57
58
59
60
|
# File 'lib/entitlements/extras.rb', line 50
def self.register_rules(clazz)
return unless clazz.respond_to?(:rules)
clazz.rules.each do |rule_name|
rule_class_name = [clazz.to_s.sub(/::Base\z/, "::Rules"), Entitlements::Util::Util.camelize(rule_name)].join("::")
rule_class = Kernel.const_get(rule_class_name)
Entitlements::Data::Groups::Calculated.register_rule(rule_name, rule_class)
end
nil
end
|