class SimpleNavigation::Adapters::Rails
Attributes
controller[R]
template[R]
Public Class Methods
new(context)
click to toggle source
# File lib/simple_navigation/adapters/rails.rb, line 14 def initialize(context) @controller = extract_controller_from context @template = template_from @controller @request = @template.request if @template end
register()
click to toggle source
# File lib/simple_navigation/adapters/rails.rb, line 6 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
Public Instance Methods
content_tag(type, content, options = {})
click to toggle source
# File lib/simple_navigation/adapters/rails.rb, line 48 def content_tag(type, content, options = {}) template && template.content_tag(type, html_safe(content), options) end
context_for_eval()
click to toggle source
# File lib/simple_navigation/adapters/rails.rb, line 34 def context_for_eval template || controller || fail('no context set for evaluation the config file') end
current_page?(url)
click to toggle source
# File lib/simple_navigation/adapters/rails.rb, line 40 def current_page?(url) template && template.current_page?(url) end
link_to(name, url, options = {})
click to toggle source
# File lib/simple_navigation/adapters/rails.rb, line 44 def link_to(name, url, options = {}) template && template.link_to(link_title(name), url, options) end
request_path()
click to toggle source
# File lib/simple_navigation/adapters/rails.rb, line 30 def request_path request ? request.path : '' end
request_uri()
click to toggle source
# File lib/simple_navigation/adapters/rails.rb, line 20 def request_uri return '' unless request if request.respond_to?(:fullpath) request.fullpath else request.request_uri end end
Protected Instance Methods
extract_controller_from(context)
click to toggle source
Extracts a controller from the context.
# File lib/simple_navigation/adapters/rails.rb, line 70 def extract_controller_from(context) if context.respond_to?(:controller) context.controller || context else context end end
html_safe(input)
click to toggle source
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 65 def html_safe(input) input.respond_to?(:html_safe) ? input.html_safe : input end
link_title(name)
click to toggle source
# File lib/simple_navigation/adapters/rails.rb, line 78 def link_title(name) if SimpleNavigation.config.consider_item_names_as_safe html_safe(name) else name end end
template_from(controller)
click to toggle source
# File lib/simple_navigation/adapters/rails.rb, line 54 def template_from(controller) if controller.respond_to?(:view_context) controller.view_context else controller.instance_variable_get(:@template) end end