module PowerTypes::Presentable

Public Instance Methods

present_with(presenter_name, data = {}) click to toggle source
# 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) click to toggle source
# 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