Sha256: 9803521f272cc7295810e35f6526cb779ba269f9ecd904a017bbe60f571554bd

Contents?: true

Size: 595 Bytes

Versions: 6

Compression:

Stored size: 595 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
          menu_items << RademadeAdmin::MenuService::MenuItem.new(model_info, collect_children(model_info.model))
        end
      end
      menu_items
    end

  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
rademade_admin-0.2.2 app/services/menu_service.rb
rademade_admin-0.2.1 app/services/menu_service.rb
rademade_admin-0.2.0 app/services/menu_service.rb
rademade_admin-0.1.6 app/services/menu_service.rb
rademade_admin-0.1.5 app/services/menu_service.rb
rademade_admin-0.1.4 app/services/menu_service.rb