Class: SimpleNavigation::Adapters::Rails

Inherits:
Base
  • Object
show all
Defined in:
lib/simple_navigation/adapters/rails.rb

Instance Attribute Summary collapse

Attributes inherited from Base

#context, #request

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(context) ⇒ Rails

Returns a new instance of Rails.



14
15
16
17
18
# 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

Instance Attribute Details

#controllerObject (readonly)

Returns the value of attribute controller.



5
6
7
# File 'lib/simple_navigation/adapters/rails.rb', line 5

def controller
  @controller
end

#templateObject (readonly)

Returns the value of attribute template.



5
6
7
# File 'lib/simple_navigation/adapters/rails.rb', line 5

def template
  @template
end

Class Method Details

.registerObject



7
8
9
10
11
12
# 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)
  ActionController::Base.send(:helper_method, :render_navigation)
  ActionController::Base.send(:helper_method, :active_navigation_item_name)
end

Instance Method Details

#content_tag(type, content, options = {}) ⇒ Object



44
45
46
# File 'lib/simple_navigation/adapters/rails.rb', line 44

def (type, content, options={})
  template.(type, html_safe(content), options) if template
end

#context_for_evalObject



31
32
33
34
# File 'lib/simple_navigation/adapters/rails.rb', line 31

def context_for_eval
  raise 'no context set for evaluation the config file' unless template || controller
  template || controller
end

#current_page?(url) ⇒ Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/simple_navigation/adapters/rails.rb', line 36

def current_page?(url)
  template.current_page?(url) if template
end


40
41
42
# File 'lib/simple_navigation/adapters/rails.rb', line 40

def link_to(name, url, options={})
  template.link_to(html_safe(name), url, options) if template
end

#request_pathObject



26
27
28
29
# File 'lib/simple_navigation/adapters/rails.rb', line 26

def request_path
  return '' unless request
  request.path
end

#request_uriObject



20
21
22
23
24
# File 'lib/simple_navigation/adapters/rails.rb', line 20

def request_uri
  return '' unless request
  return request.fullpath if request.respond_to?(:fullpath)
  request.request_uri
end