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' 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 begin I18n.t!("active_admin.sidebars.#{name.to_s}") rescue I18n::MissingTranslationData name.to_s.titlecase end end # If a block is not passed in, the name of the partial to render def partial_name options[:partial] || "#{name.to_s.downcase.gsub(' ', '_')}_sidebar" end end end