module ActiveAdmin class SidebarSection include ActiveAdmin::OptionalDisplay attr_accessor :name, :options, :block def initialize(name, options = {}, &block) @name, @options, @block = name, options, block normalize_display_options! end # The id gets used for the div in the view def id "#{name.to_s.downcase.underscore}_sidebar_section".parameterize end def icon? !!options[:icon] end def icon options[:icon] if icon? end # The title gets displayed within the section in the view def title I18n.t("active_admin.sidebars.#{name.to_s}", default: name.to_s.titlecase) end # If a block is not passed in, the name of the partial to render def partial_name options[:partial] || "#{name.to_s.downcase.tr(' ', '_')}_sidebar" end def custom_class options[:class] end def priority options[:priority] || 10 end end end