app/controllers/administrate/application_controller.rb in administrate-0.0.9 vs app/controllers/administrate/application_controller.rb in administrate-0.0.10

- old
+ new

@@ -1,30 +1,32 @@ module Administrate class ApplicationController < ActionController::Base def index - @resources = resource_class.all + @resources = resolver.resource_class.all @page = Administrate::Page::Table.new(dashboard) end def show set_resource @page = Administrate::Page::Show.new(dashboard, resource) end def new - @page = Administrate::Page::Form.new(dashboard, resource_class.new) + @page = Administrate::Page::Form.new( + dashboard, resolver.resource_class.new + ) end def edit set_resource @page = Administrate::Page::Form.new(dashboard, resource) end def create - set_resource(resource_class.new(resource_params)) + set_resource(resolver.resource_class.new(resource_params)) if resource.save redirect_to( [Administrate::NAMESPACE, resource], notice: translate("create.success"), @@ -59,52 +61,57 @@ private helper_method :nav_link_state def nav_link_state(resource) - if resource_name.to_s.pluralize == resource.to_s + if resolver.resource_name.to_s.pluralize == resource.to_s :active else :inactive end end def dashboard - @dashboard ||= resource_resolver.dashboard_class.new + @dashboard ||= resolver.dashboard_class.new end def set_resource(resource = nil) - resource ||= resource_class.find(params[:id]) + resource ||= find_resource(params[:id]) instance_variable_set(instance_variable, resource) end + def find_resource(param) + resolver.resource_class.find(param) + end + def resource instance_variable_get(instance_variable) end def resource_params - params.require(resource_name).permit(*permitted_attributes) + params.require(resolver.resource_name).permit(*permitted_attributes) end def permitted_attributes dashboard.permitted_attributes end def instance_variable - "@#{resource_name}" + "@#{resolver.resource_name}" end - delegate :resource_class, :resource_name, to: :resource_resolver + def resolver + @resolver ||= Administrate::ResourceResolver.new(resource_class) + end - def resource_resolver - @resource_resolver ||= - Administrate::ResourceResolver.new(controller_path) + def resource_class + params.fetch(:resource_class, controller_path).to_s end def translate(key) t( "administrate.controller.#{key}", - resource: resource_resolver.resource_title, + resource: resolver.resource_title, ) end end end