class StrongPresenter::Factory

Attributes

presenter_class[R]

Public Class Methods

new(options = {}) click to toggle source

Creates a presenter factory.

@option options [Presenter, CollectionPresenter] :with (nil)

presenter class to use. If nil, it is inferred from the object
passed to {#wrap}.
# File lib/strong_presenter/factory.rb, line 8
def initialize(options = {})
  options.assert_valid_keys(:with)
  @presenter_class = options.delete(:with)
end

Public Instance Methods

wrap(object) { |presenter| ... } click to toggle source

Wraps an object with a presenter, inferring whether to create a singular or collection presenter from the type of object passed.

@param [Object] object

object to present.

@return [Presenter, CollectionPresenter] the presenter.

# File lib/strong_presenter/factory.rb, line 19
def wrap(object)
  return nil if object.nil?
  Worker.new(presenter_class, object).call { |presenter| yield presenter if block_given? }
end