Sha256: 9ae452f08f55f785a01781f6e286f79556d4469c5923c6453bd945e8606c5c37
Contents?: true
Size: 1.54 KB
Versions: 4
Compression:
Stored size: 1.54 KB
Contents
# frozen_string_literal: true module Maquina module Navbar # == Navbar main Menu # # Renders main navbar Menu. It can render menu for desktop o mobile versions. # # Requires a Rails Helper method to get access to menu options. `menu_options` example: # # def menu_options # { # home: root_path, # users: users_path # accounts: accounts_path # } # end # # `Menu` uses I18n to translate menu options. Translation example: # # menu: # main: # home: Inicio # users: Usuarios # accounts: Cuentas # # `Menu` is initialized by default to render links for desktop. To render mobile links # initialize `Menu` as follow: # # Views::Navbar::Menu.new(desktop: false) # class Menu < Phlex::HTML include Maquina::ApplicationView delegate :menu_options, to: :helpers def initialize(desktop: true) @desktop = desktop end def view_template div class: "#{link_type}-menu" do secure_menu_options.each_pair do |option, path| render(Maquina::Navbar::MenuItemLink.new(option, path, desktop: @desktop)) end end end private def secure_menu_options menu_options rescue NoMethodError => ex Rails.logger.error "[#{self.class}] Please implement helper method :menu_options :: #{ex.message}" {} end def link_type @desktop ? "desktop" : "mobile" end end end end
Version data entries
4 entries across 4 versions & 1 rubygems