Sha256: a0616ce322bdebc63f1a38c168d0227226075219397cccf9a1f4b3d291379d80
Contents?: true
Size: 901 Bytes
Versions: 2
Compression:
Stored size: 901 Bytes
Contents
module Tramway::Admin::Navbar def navbar_structure(*links) @navbar_structure ||= links end def navbar_items_for(project, role:) @singleton_models_for ||= singleton_models_for(project, role: role) @available_models_for ||= available_models_for(project, role: role) @navbar_structure ||= {} @navbar_structure.map do |item| if item.is_a? Class should_be_in_navbar_as item elsif item.is_a? Hash sub_items = item.values.first.map do |sub_item| should_be_in_navbar_as sub_item end.compact { item.keys.first => sub_items } if sub_items.any? end end.compact end private def should_be_in_navbar_as(item) if @singleton_models_for.include?(item) { item => :singleton } elsif @available_models_for.include?(item) { item => :record } elsif item.is_a? Symbol :divider end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
tramway-admin-1.26.1 | lib/tramway/admin/navbar.rb |
tramway-admin-1.26 | lib/tramway/admin/navbar.rb |