Sha256: b5f6d29342ce40e1d5cd29a96f3fa6772a7afa5e23b4c53ae5c03284b833521f

Contents?: true

Size: 793 Bytes

Versions: 3

Compression:

Stored size: 793 Bytes

Contents

module ActiveAdminMenu
  class Item
    attr_reader :resource_name, :parent, :priority
    attr_accessor :is_page

    def initialize(resource_name:, parent:, priority:)
      @resource_name = resource_name
      @parent = parent
      @priority = priority
    end

    def to_options
      { parent: parent_i18n, label: label_i18n, priority: priority }.reject { |_, v| v.nil? }
    end

    private

    def parent_i18n
      return unless parent

      I18n.t([config.i18n_scope_prefix[:parent], parent.downcase].join("."), default: parent)
    end

    def label_i18n
      return unless is_page

      I18n.t([config.i18n_scope_prefix[:label], resource_name.downcase].join("."), default: resource_name)
    end

    def config
      @_config ||= ::ActiveAdminMenu.config
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
active_admin_menu-0.1.3 lib/active_admin_menu/item.rb
active_admin_menu-0.1.2 lib/active_admin_menu/item.rb
active_admin_menu-0.1.1 lib/active_admin_menu/item.rb