lib/simple_navigation.rb in simple-navigation-2.2.3 vs lib/simple_navigation.rb in simple-navigation-2.4.0

- old
+ new

@@ -6,29 +6,40 @@ require 'simple_navigation/item' require 'simple_navigation/item_container' require 'simple_navigation/items_provider' require 'simple_navigation/renderer/base' require 'simple_navigation/renderer/list' +require 'simple_navigation/initializer' +require 'simple_navigation/railtie' if Rails::VERSION::MAJOR == 3 # A plugin for generating a simple navigation. See README for resources on usage instructions. module SimpleNavigation - mattr_accessor :config_files, :config_file_path, :controller, :template, :explicit_current_navigation + mattr_accessor :config_files, :config_file_path, :controller, :template, :explicit_current_navigation, :rails_env, :rails_root self.config_files = {} class << self + + def init_rails + SimpleNavigation.config_file_path = SimpleNavigation.default_config_file_path unless SimpleNavigation.config_file_path + ActionController::Base.send(:include, SimpleNavigation::ControllerMethods) + end + def default_config_file_path + File.join(SimpleNavigation.rails_root, 'config') + end + def config_file?(navigation_context=nil) File.exists?(config_file_name(navigation_context)) end # Reads the config_file for the specified navigation_context and stores it for later evaluation. def load_config(navigation_context = :default) raise "config_file_path is not set!" unless self.config_file_path raise "Config file '#{config_file_name(navigation_context)}' does not exists!" unless config_file?(navigation_context) - if ::RAILS_ENV == 'production' + if SimpleNavigation.rails_env == 'production' self.config_files[navigation_context] ||= IO.read(config_file_name(navigation_context)) else self.config_files[navigation_context] = IO.read(config_file_name(navigation_context)) end end @@ -144,9 +155,10 @@ end end # TODOs for the next releases: +# 0) make sn_set_navigation private in controllers # 1) add ability to specify explicit highlighting in the config-file itself (directly with the item) # - item.highlight_on :controller => 'users', :action => 'show' ...^ # --> with that we can get rid of the controller_methods... # # 2) ability to turn off autohighlighting for a single item... \ No newline at end of file