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