class Helium::Console::Registry
Public Instance Methods
add(klass, &handler)
click to toggle source
# File lib/helium/console/registry.rb, line 80 def add(klass, &handler) define(klass) do define_method(:call, &handler) end end
define(klass, &block)
click to toggle source
# File lib/helium/console/registry.rb, line 86 def define(klass, &block) handlers[klass] = Class.new(Element, &block) end
handler_for(object, **options)
click to toggle source
# File lib/helium/console/registry.rb, line 90 def handler_for(object, **options) element_class = object.class.ancestors.find do |ancestor| break handlers[ancestor] if handlers.key?(ancestor) break handlers[ancestor.name] if handlers.key?(ancestor.name) end return unless element_class element_class.new(object, **options) end
Private Instance Methods
handlers()
click to toggle source
# File lib/helium/console/registry.rb, line 102 def handlers @handlers ||= {} end