module LB::Project::Registry::Registration
Mixin for registration
Public Class Methods
[](registry_name, registry = LB::Project::Registry.new)
click to toggle source
# File lib/lb/project/registry/registration.rb, line 8 def self.[](registry_name, registry = LB::Project::Registry.new) rcmethod = "#{registry_name}_registry_config" setup(registry_name, registry, rcmethod) define_helpers(registry_name, rcmethod) unless respond_to?(rcmethod) self end
define_helpers(registry_name, rcmethod)
click to toggle source
# File lib/lb/project/registry/registration.rb, line 16 def self.define_helpers(registry_name, rcmethod) rmethod = "#{registry_name}_registry" define_registry_config(rcmethod) define_registry(rcmethod, rmethod) define_registry_name(registry_name, rcmethod) define_registry_as(registry_name, rmethod) define_key(registry_name) end
define_key(registry_name)
click to toggle source
# File lib/lb/project/registry/registration.rb, line 52 def self.define_key(registry_name) define_method("#{registry_name}_key") do instance_variable_get("@#{registry_name}_key") end end
define_registry(rcmethod, rmethod)
click to toggle source
# File lib/lb/project/registry/registration.rb, line 32 def self.define_registry(rcmethod, rmethod) define_method(rmethod) do send(rcmethod).registry end end
define_registry_as(registry_name, rmethod)
click to toggle source
# File lib/lb/project/registry/registration.rb, line 45 def self.define_registry_as(registry_name, rmethod) define_method("register_#{registry_name}_as") do |key| send(rmethod).register(key.to_sym, self) instance_variable_set("@#{registry_name}_key", key.to_s) end end
define_registry_config(rcmethod)
click to toggle source
# File lib/lb/project/registry/registration.rb, line 26 def self.define_registry_config(rcmethod) define_method(rcmethod) do Registration.instance_variable_get("@#{rcmethod}") end end
define_registry_name(registry_name, rcmethod)
click to toggle source
# File lib/lb/project/registry/registration.rb, line 38 def self.define_registry_name(registry_name, rcmethod) rnmethod = "#{registry_name}_registry_name" define_method(rnmethod) do send(rcmethod).name end end
setup(registry_name, registry, rcmethod)
click to toggle source
# File lib/lb/project/registry/registration.rb, line 58 def self.setup(registry_name, registry, rcmethod) config = Config.new(registry_name, registry) Registration.instance_variable_set("@#{rcmethod}", config) end