Module: PowerTypes::Presentable

Defined in:
lib/power_types/patterns/presenter/presentable.rb

Instance Method Summary collapse

Instance Method Details

#present_with(presenter_name, data = {}) ⇒ Object



3
4
5
# File 'lib/power_types/patterns/presenter/presentable.rb', line 3

def present_with(presenter_name, data = {})
  presenter_class_by_name(presenter_name).new(view_context, data)
end

#presenter_class_by_name(presenter_name) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/power_types/patterns/presenter/presentable.rb', line 7

def presenter_class_by_name(presenter_name)
  class_name = presenter_name.to_s.classify
  class_constant = class_name.safe_constantize

  if class_constant.blank?
    raise PowerTypes::PresenterError.new(
      "missing #{class_name} presenter class"
    )
  end

  class_constant
end