/usr/lib/ruby/vendor_ruby/simple_navigation/adapters/rails.rb is in ruby-simple-navigation 4.0.3-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | module SimpleNavigation
module Adapters
class Rails < Base
attr_reader :controller, :template
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
def initialize(context)
@controller = extract_controller_from context
@template = template_from @controller
@request = @template.request if @template
end
def request_uri
return '' unless request
if request.respond_to?(:fullpath)
request.fullpath
else
request.request_uri
end
end
def request_path
request ? request.path : ''
end
def context_for_eval
template ||
controller ||
fail('no context set for evaluation the config file')
end
def current_page?(url)
template && template.current_page?(url)
end
def link_to(name, url, options = {})
template && template.link_to(link_title(name), url, options)
end
def content_tag(type, content, options = {})
template && template.content_tag(type, html_safe(content), options)
end
protected
def template_from(controller)
if controller.respond_to?(:view_context)
controller.view_context
else
controller.instance_variable_get(:@template)
end
end
# Marks the specified input as html_safe (for Rails3).
# Does nothing if html_safe is not defined on input.
#
def html_safe(input)
input.respond_to?(:html_safe) ? input.html_safe : input
end
# Extracts a controller from the context.
def extract_controller_from(context)
if context.respond_to?(:controller)
context.controller || context
else
context
end
end
def link_title(name)
if SimpleNavigation.config.consider_item_names_as_safe
html_safe(name)
else
name
end
end
end
end
end
|