class Voom::Presenters::Registry
Public Class Methods
define(name, namespace, options, &block)
click to toggle source
# File lib/voom/presenters/registry.rb, line 14 def self.define(name, namespace, options, &block) namespace = Array(namespace).map(&:to_s) fq_name = namespace.any? ? namespace.join(':') + ':' + name.to_s : name.to_s registry[fq_name] = Voom::Presenters::DSL::Definition.new(name, namespace, options, &block) end
finalize()
click to toggle source
# File lib/voom/presenters/registry.rb, line 27 def self.finalize registry.each do |key, definition| begin register(key, build(definition)) rescue Exception => e logger.error {"Failed to load presenter #{key}: #{e.inspect}."} raise e end end end
load(directory)
click to toggle source
# File lib/voom/presenters/registry.rb, line 20 def self.load(directory) files = File.join(directory, '**', '*.pom') Dir.glob(files) do |file| Kernel.load file end end
registry()
click to toggle source
# File lib/voom/presenters/registry.rb, line 10 def self.registry @registry end
reset!()
click to toggle source
This method empties out the dsl definitions It should ONLY be used for testing purposes
# File lib/voom/presenters/registry.rb, line 40 def self.reset! registry.clear end
Private Class Methods
build(definition)
click to toggle source
# File lib/voom/presenters/registry.rb, line 50 def self.build(definition) definition.build end
register(name, definition)
click to toggle source
# File lib/voom/presenters/registry.rb, line 46 def self.register(name, definition) return Voom::Presenters::App.register(name: name, presenter: definition) unless Voom::Presenters::App.registered?(name) end