module ActiveAdmin::ResourceController::Decorators

Protected Class Methods

undecorate(resource) click to toggle source
# File lib/active_admin/resource_controller/decorators.rb, line 19
def self.undecorate(resource)
  if resource.respond_to?(:decorated?) && resource.decorated?
    resource.model
  else
    resource
  end
end

Protected Instance Methods

apply_collection_decorator(collection) click to toggle source
# File lib/active_admin/resource_controller/decorators.rb, line 11
def apply_collection_decorator(collection)
  if decorate?
    collection_decorator.decorate collection, with: decorator_class
  else
    collection
  end
end
apply_decorator(resource) click to toggle source
# File lib/active_admin/resource_controller/decorators.rb, line 7
def apply_decorator(resource)
  decorate? ? decorator_class.new(resource) : resource
end

Private Instance Methods

collection_decorator() click to toggle source

When using Draper, we wrap the collection draper in a new class that correctly delegates methods that Active Admin depends on.

# File lib/active_admin/resource_controller/decorators.rb, line 45
def collection_decorator
  if decorator_class
    Wrapper.wrap decorator_class
  end
end
decorate?() click to toggle source
# File lib/active_admin/resource_controller/decorators.rb, line 29
def decorate?
  case action_name
  when 'new', 'edit', 'create', 'update'
    form = active_admin_config.get_page_presenter :form
    form && form.options[:decorate] && decorator_class.present?
  else
    decorator_class.present?
  end
end
decorator_class() click to toggle source
# File lib/active_admin/resource_controller/decorators.rb, line 39
def decorator_class
  active_admin_config.decorator_class
end