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