Module: EpiDecorator::Decoratable::ClassMethods

Defined in:
lib/epi_decorator/decoratable.rb

Instance Method Summary collapse

Instance Method Details

#decorateObject



21
22
23
# File 'lib/epi_decorator/decoratable.rb', line 21

def decorate
  decorator_class.decorate_collection(self.all, with: nil)
end

#decorator_classObject



25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/epi_decorator/decoratable.rb', line 25

def decorator_class
  begin
    prefix = respond_to?(:model_name) ? model_name : name
    decorator_name = "#{prefix}Decorator"
    decorator_name.constantize
  rescue NameError => error
    if superclass.respond_to?(:decorator_class)
      superclass.decorator_class
    else
      raise unless error.missing_name?(decorator_name)
      raise EpiDecorator::UninferrableDecoratorError.new(self)
    end
  end
end