# File lib/simple_navigation/adapters/rails.rb, line 15 def initialize(context) @controller = extract_controller_from context @template = template_from @controller @request = @template.request if @template end
# File lib/simple_navigation/adapters/rails.rb, line 7 def self.register SimpleNavigation.set_env(rails_root, rails_env) ActionController::Base.send(:include, SimpleNavigation::Helpers) SimpleNavigation::Helpers.instance_methods.each do |m| ActionController::Base.send(:helper_method, m.to_sym) end end
# File lib/simple_navigation/adapters/rails.rb, line 59 def self.rails3? ::Rails::VERSION::MAJOR == 3 end
# File lib/simple_navigation/adapters/rails.rb, line 55 def self.rails_env rails3? ? ::Rails.env : ::RAILS_ENV end
# File lib/simple_navigation/adapters/rails.rb, line 51 def self.rails_root rails3? ? ::Rails.root : ::RAILS_ROOT end
# File lib/simple_navigation/adapters/rails.rb, line 45 def content_tag(type, content, options={}) template.content_tag(type, html_safe(content), options) if template end
# File lib/simple_navigation/adapters/rails.rb, line 32 def context_for_eval raise 'no context set for evaluation the config file' unless template || controller template || controller end
# File lib/simple_navigation/adapters/rails.rb, line 37 def current_page?(url) template.current_page?(url) if template end
# File lib/simple_navigation/adapters/rails.rb, line 41 def link_to(name, url, options={}) template.link_to(html_safe(name), url, options) if template end
# File lib/simple_navigation/adapters/rails.rb, line 27 def request_path return '' unless request request.path end
# File lib/simple_navigation/adapters/rails.rb, line 21 def request_uri return '' unless request return request.fullpath if request.respond_to?(:fullpath) request.request_uri end
Extracts a controller from the context.
# File lib/simple_navigation/adapters/rails.rb, line 74 def extract_controller_from(context) if context.respond_to? :controller context.controller else context end end
Marks the specified input as #html_safe (for Rails3). Does nothing if #html_safe is not defined on input.
# File lib/simple_navigation/adapters/rails.rb, line 69 def html_safe(input) input.respond_to?(:html_safe) ? input.html_safe : input end
# File lib/simple_navigation/adapters/rails.rb, line 63 def template_from(controller) controller.respond_to?(:view_context) ? controller.view_context : controller.instance_variable_get(:@template) end