Sha256: 994bf91ec5c899c5b5f58743f8e5916500c86a49f5920e4dc2914dadf04f3e2b

Contents?: true

Size: 626 Bytes

Versions: 3

Compression:

Stored size: 626 Bytes

Contents

# -*- encoding : utf-8 -*-
module RademadeAdmin
  class MenuService
    include Singleton

    def main_menu
      @main_menu ||= collect_children
    end

    private

    def initialize
      @model_infos = RademadeAdmin::Model::Graph.instance.root_models
    end

    def collect_children(parent_model = nil)
      menu_items = []
      @model_infos.each do |model_info|
        if model_info.parent_model == parent_model && model_info.display_in_menu?
          menu_items << RademadeAdmin::MenuService::MenuItem.new(model_info, collect_children(model_info.model))
        end
      end
      menu_items
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rademade_admin-0.1.3 app/services/menu_service.rb
rademade_admin-0.1.2 app/services/menu_service.rb
rademade_admin-0.1.1 app/services/menu_service.rb