5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# File 'lib/decoro/helpers.rb', line 5
def decorate(model, decorator_class = nil)
array = nil
klass = decorator_class
if model.is_a? Array
array = model
model = model.first
klass ||= "#{model.class}Decorator".constantize
elsif model.is_a? ActiveRecord::Relation
klass ||= "#{model.name.pluralize}Decorator".constantize
else
klass ||= "#{model.class}Decorator".constantize
end
decorator = array ? array.map { |m| klass.new(m) } : klass.new(model)
yield(decorator) if block_given?
end
|