class StrongPresenter::Factory::Worker
@private
Attributes
object[R]
presenter_class[R]
Public Class Methods
new(presenter_class, object)
click to toggle source
# File lib/strong_presenter/factory.rb, line 30 def initialize(presenter_class, object) @presenter_class = presenter_class @object = object @presenter_class = presenter_class::Collection if collection? && !presenter_class.nil? && (presenter_class < StrongPresenter::Presenter) end
Public Instance Methods
call() { |presenter| ... }
click to toggle source
# File lib/strong_presenter/factory.rb, line 36 def call presenter.new(object) { |presenter| yield presenter if block_given? } end
presenter()
click to toggle source
# File lib/strong_presenter/factory.rb, line 40 def presenter return presenter_class if presenter_class return object_presenter if object_presenter return StrongPresenter::CollectionPresenter if collection? raise StrongPresenter::UninferrablePresenterError.new(object.class) end
Private Instance Methods
collection?()
click to toggle source
# File lib/strong_presenter/factory.rb, line 61 def collection? object.is_a?(Enumerable) or is_a?("ActiveRecord::Associations::CollectionProxy") # or any other wrappers end
get_object_presenter()
click to toggle source
# File lib/strong_presenter/factory.rb, line 55 def get_object_presenter StrongPresenter::Presenter.inferred_presenter(object) rescue NameError => error false end
is_a?(klass)
click to toggle source
Checks if object is an instance of klass, false in case klass does not exist.
# File lib/strong_presenter/factory.rb, line 66 def is_a? klass object.is_a? klass.constantize rescue NameError false end
object_presenter()
click to toggle source
# File lib/strong_presenter/factory.rb, line 51 def object_presenter @object_presenter = @object_presenter.nil? ? get_object_presenter : @object_presenter end