Module: ApplicationHelper

Defined in:
lib/application_helper.rb

Instance Method Summary collapse

Instance Method Details

#present(object_or_class, klass = nil, &block) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/application_helper.rb', line 2

def present(object_or_class, klass = nil, &block)
  presenter = nil

  if object_or_class.methods.include?(:new)
    klass ||= "#{object_or_class}Presenter".constantize
    presenter = klass
    presenter.initialize(object_or_class, self)
  else
    klass ||= "#{object_or_class.class}Presenter".constantize
    presenter = klass.new(object_or_class, self)
  end

  if block_given?
    block.arity > 0 ? yield(presenter) : presenter.instance_eval(&block)
  end

  return presenter
end