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 15
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 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

Protected Class Methods

gte_rails3?() click to toggle source
# File lib/simple_navigation/adapters/rails.rb, line 59
def self.gte_rails3?
  ::Rails::VERSION::MAJOR >= 3
end
rails_env() click to toggle source
# File lib/simple_navigation/adapters/rails.rb, line 55
def self.rails_env
  gte_rails3? ? ::Rails.env : ::RAILS_ENV
end
rails_root() click to toggle source
# File lib/simple_navigation/adapters/rails.rb, line 51
def self.rails_root
  gte_rails3? ? ::Rails.root : ::RAILS_ROOT
end

Public Instance Methods

content_tag(type, content, options={}) click to toggle source
# 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
context_for_eval() click to toggle source
# 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
current_page?(url) click to toggle source
# File lib/simple_navigation/adapters/rails.rb, line 37
def current_page?(url)
  template.current_page?(url) if template
end
request_path() click to toggle source
# File lib/simple_navigation/adapters/rails.rb, line 27
def request_path
  return '' unless request
  request.path
end
request_uri() click to toggle source
# 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

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 74
def extract_controller_from(context)
  context.respond_to?(:controller) ?
    context.controller || context :
    context
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 69
def html_safe(input)
  input.respond_to?(:html_safe) ? input.html_safe : input
end
template_from(controller) click to toggle source
# 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