Class: LcpRuby::ConditionServiceRegistry
- Inherits:
-
Object
- Object
- LcpRuby::ConditionServiceRegistry
- Defined in:
- lib/lcp_ruby/condition_service_registry.rb
Class Method Summary collapse
- .clear! ⇒ Object
- .discover!(base_path) ⇒ Object
- .lookup(key) ⇒ Object
- .register(key, service) ⇒ Object
- .register_built_ins! ⇒ Object
- .registered?(key) ⇒ Boolean
Class Method Details
.clear! ⇒ Object
47 48 49 |
# File 'lib/lcp_ruby/condition_service_registry.rb', line 47 def clear! @registry = {} end |
.discover!(base_path) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/lcp_ruby/condition_service_registry.rb', line 28 def discover!(base_path) services_path = File.join(base_path, "condition_services") return unless File.directory?(services_path) Dir[File.join(services_path, "**", "*.rb")].sort.each do |file| require file relative = file.sub("#{services_path}/", "").sub(/\.rb$/, "") class_name = "LcpRuby::HostConditionServices::#{relative.split('/').map(&:camelize).join('::')}" begin service_class = class_name.constantize register(relative, service_class) rescue NameError => e Rails.logger.warn("[LcpRuby] Could not register condition service #{class_name}: #{e.}") end end end |
.lookup(key) ⇒ Object
9 10 11 |
# File 'lib/lcp_ruby/condition_service_registry.rb', line 9 def lookup(key) registry[key.to_s] end |
.register(key, service) ⇒ Object
4 5 6 7 |
# File 'lib/lcp_ruby/condition_service_registry.rb', line 4 def register(key, service) registry[key.to_s] = service Services::Registry.register("conditions", key, service) if defined?(Services::Registry) end |
.register_built_ins! ⇒ Object
17 18 19 20 21 22 23 24 25 26 |
# File 'lib/lcp_ruby/condition_service_registry.rb', line 17 def register_built_ins! require_relative "condition_services/current_user_role" register("current_user_role", LcpRuby::ConditionServices::CurrentUserRole) require_relative "condition_services/impersonating" register("impersonating", LcpRuby::ConditionServices::Impersonating) require_relative "condition_services/feature_flag" register("feature_flag", LcpRuby::ConditionServices::FeatureFlag) end |
.registered?(key) ⇒ Boolean
13 14 15 |
# File 'lib/lcp_ruby/condition_service_registry.rb', line 13 def registered?(key) registry.key?(key.to_s) end |