class Voom::Presenters::App
Public Class Methods
boot!()
click to toggle source
# File lib/voom/presenters/app.rb, line 10 def boot! logger.warn(no_roots_message) if presenter_paths.empty? presenter_paths.each do |load_path| Voom::Presenters::App.load('.', load_path) unless ENV['VOOM_ENV']=='testing' end end
load(dir='app', root=ENV['VOOM_ROOT']||File.expand_path("../../../", __FILE__))
click to toggle source
# File lib/voom/presenters/app.rb, line 34 def load(dir='app', root=ENV['VOOM_ROOT']||File.expand_path("../../../", __FILE__)) path = File.expand_path(dir, root) trace {"Loading Presenters from: #{path}"} Presenters::Registry.load(File.expand_path(dir, root)) Presenters::Registry.finalize end
no_roots_message()
click to toggle source
# File lib/voom/presenters/app.rb, line 17 def no_roots_message <<~MESSAGE No root defined to load presenters! Add the following to your initializer/boot process: Voom::Presenters::Settings.configure do |config| config.presenters.root = Rails.root.join('app') end MESSAGE end
register(name:, presenter: nil, &block)
click to toggle source
# File lib/voom/presenters/app.rb, line 28 def register(name:, presenter: nil, &block) raise Errors::MissingArgument, 'A presenter class, proc, lambda or a block must be provided!' unless block_given? || presenter container.register(sym_to_str(name), Voom::Presenters::ContainerItem.new(ui: block || presenter), {}) end
reset!()
click to toggle source
Calls superclass method
Voom::ContainerMethods#reset!
# File lib/voom/presenters/app.rb, line 41 def reset! super Presenters::Registry.reset! end
Private Class Methods
presenter_paths()
click to toggle source
# File lib/voom/presenters/app.rb, line 48 def presenter_paths Array(Voom::Presenters::Settings.config.presenters.root) end