Module: Sinatra::Namespace::SharedMethods

Defined in:
lib/sinatra/named_routes.rb

Instance Method Summary collapse

Instance Method Details

#get_namespacesObject



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/sinatra/named_routes.rb', line 14

def get_namespaces
  patterns = [@pattern]
  next_base = base
  while(next_base)
    next_base, pattern = next_base.class_eval {
      [defined?(base) && base, @pattern]
    }
    patterns << pattern if pattern
  end

  node = router

  patterns.reverse.map do |p|
    node = node.children.find {|c| c.content == p}
    node.name
  end
end

#named(name, pattern = "/#{name}") ⇒ Object



9
10
11
12
# File 'lib/sinatra/named_routes.rb', line 9

def named(name, pattern = "/#{name}")
  router.set(pattern, name, get_namespaces)
  pattern
end