class WonderNavigation::MenuManager
Public Class Methods
fetch(menu_id)
click to toggle source
# File lib/wonder_navigation/menu_manager.rb, line 5 def fetch(menu_id) menus[menu_id] end
get(menu_id)
click to toggle source
# File lib/wonder_navigation/menu_manager.rb, line 9 def get(menu_id) load_menus fetch(menu_id) end
set(menu_id, menu_instance)
click to toggle source
# File lib/wonder_navigation/menu_manager.rb, line 14 def set(menu_id, menu_instance) menus[menu_id] = menu_instance end
Private Class Methods
files_modified?()
click to toggle source
# File lib/wonder_navigation/menu_manager.rb, line 61 def files_modified? Rails.env.development? && get_file_mtimes != @loaded_file_mtimes end
get_file_mtimes()
click to toggle source
# File lib/wonder_navigation/menu_manager.rb, line 65 def get_file_mtimes (yml_files + register_files).flatten.collect { |file| File.mtime(file) } end
load_register_files()
click to toggle source
# File lib/wonder_navigation/menu_manager.rb, line 36 def load_register_files register_files.each do |file| Rails.logger.info("Reloading menu on file #{file}") instance_eval open(file).read, file end end
need_reload?()
click to toggle source
# File lib/wonder_navigation/menu_manager.rb, line 57 def need_reload? !@loaded_file_mtimes || files_modified? end
register_files()
click to toggle source
# File lib/wonder_navigation/menu_manager.rb, line 47 def register_files yml_files.flat_map do |file| YAML.load(File.new(file)).flat_map do |folder, files| files.collect do |menu_file| File.join(Rails.root.join("config", "navigation", folder, "#{menu_file}.rb")) end end end end
reset()
click to toggle source
# File lib/wonder_navigation/menu_manager.rb, line 24 def reset @menus = nil end
yml_files()
click to toggle source
# File lib/wonder_navigation/menu_manager.rb, line 43 def yml_files Dir[Rails.root.join("config", "navigation", "*.yml")] end