class PowerTypes::BasePresenter

Attributes

h[R]

Public Class Methods

new(view, params = {}) click to toggle source
# File lib/power_types/patterns/presenter/base_presenter.rb, line 3
def initialize(view, params = {})
  @h = view

  params.each_pair do |attribute, value|
    if respond_to?(attribute, true)
      raise PowerTypes::PresenterError.new(
        "attribute #{attribute} already defined in presenter"
      )
    end

    singleton_class.send(:attr_accessor, attribute)
    instance_variable_set("@#{attribute}", decorated_value(value))
  end
end

Private Instance Methods

decorated_value(value) click to toggle source
# File lib/power_types/patterns/presenter/base_presenter.rb, line 22
def decorated_value(value)
  return value unless value.respond_to?(:decorate)

  value.decorate
end