Class: SimpleNavigation::Adapters::Sinatra

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

Direct Known Subclasses

Padrino

Instance Attribute Summary

Attributes inherited from Base

#context, #request

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(context) ⇒ Sinatra

Returns a new instance of Sinatra.



12
13
14
15
# File 'lib/simple_navigation/adapters/sinatra.rb', line 12

def initialize(context)
  @context = context
  @request = context.request
end

Class Method Details

.registerObject



7
8
9
10
# File 'lib/simple_navigation/adapters/sinatra.rb', line 7

def self.register
  SimpleNavigation.set_env(sinatra_root, sinatra_environment)
  ::Sinatra::Application.send(:helpers, SimpleNavigation::Helpers)
end

Instance Method Details

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



48
49
50
# File 'lib/simple_navigation/adapters/sinatra.rb', line 48

def (type, content, options={})
  "<#{type} #{to_attributes(options)}>#{content}</#{type}>"
end

#context_for_evalObject



17
18
19
20
# File 'lib/simple_navigation/adapters/sinatra.rb', line 17

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

#current_page?(url) ⇒ Boolean

Returns:

  • (Boolean)


30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/simple_navigation/adapters/sinatra.rb', line 30

def current_page?(url)
  url_string = CGI.unescape(url)
  if url_string.index("?")
    uri = request_uri
  else
    uri = request_uri.split('?').first
  end
  if url_string =~ /^\w+:\/\//
    url_string == "#{request.protocol}#{request.host_with_port}#{uri}"
  else
    url_string == uri
  end        
end


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

def link_to(name, url, options={})
  "<a href='#{url}' #{to_attributes(options)}>#{name}</a>"
end

#request_pathObject



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

def request_path
  request.path
end

#request_uriObject



22
23
24
# File 'lib/simple_navigation/adapters/sinatra.rb', line 22

def request_uri
  request.fullpath
end