/usr/lib/ruby/vendor_ruby/simple_navigation/adapters/rails.rb is in ruby-simple-navigation 3.11.0-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 88 89 90 91 92 93 | 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
return request.fullpath if request.respond_to?(:fullpath)
request.request_uri
end
def request_path
return '' unless request
request.path
end
def context_for_eval
raise 'no context set for evaluation the config file' unless template || controller
template || controller
end
def current_page?(url)
template.current_page?(url) if template
end
def link_to(name, url, options={})
template.link_to(html_safe(name), url, options) if template
end
def content_tag(type, content, options={})
template.content_tag(type, html_safe(content), options) if template
end
protected
def self.rails_root
gte_rails3? ? ::Rails.root : ::RAILS_ROOT
end
def self.rails_env
gte_rails3? ? ::Rails.env : ::RAILS_ENV
end
def self.gte_rails3?
::Rails::VERSION::MAJOR >= 3
end
def template_from(controller)
controller.respond_to?(:view_context) ? controller.view_context : controller.instance_variable_get(:@template)
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)
context.respond_to?(:controller) ?
context.controller || context :
context
end
end
end
end
# Initializer for Rails3
if defined?(Rails) && SimpleNavigation::Adapters::Rails.gte_rails3?
module SimpleNavigation
class Railtie < Rails::Railtie
initializer "simple_navigation.register" do |app|
SimpleNavigation.register
end
end
end
end
|