Module: Chic::Presentable

Defined in:
lib/chic/presentable.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.presenter_for(object) ⇒ Object



15
16
17
18
19
20
21
22
23
24
# File 'lib/chic/presentable.rb', line 15

def presenter_for(object)
  if object.respond_to?(:presenter_class)
    object.presenter_class
  else
    "#{object&.model_name || object.class.name}Presenter".constantize
  end
rescue NameError, LoadError
  Chic.configuration.logger&.debug "Couldn't find a presenter for '#{object.class.name}'"
  nil
end

Instance Method Details

#presenter(context = nil) ⇒ Object



5
6
7
# File 'lib/chic/presentable.rb', line 5

def presenter(context = nil)
  @presenter ||= presenter_class.new(self, context)
end

#presenter_classObject



9
10
11
# File 'lib/chic/presentable.rb', line 9

def presenter_class
  "#{respond_to?(:model_name) ? send(:model_name) : self.class.name}Presenter".constantize
end