Class: ShouldaRouting::Routes::Stack

Inherits:
Object
  • Object
show all
Includes:
Helpers
Defined in:
lib/shoulda_routing/routes/stack.rb

Instance Method Summary collapse

Methods included from Helpers

#params, #permutations

Instance Method Details

#namespacesObject



10
11
12
# File 'lib/shoulda_routing/routes/stack.rb', line 10

def namespaces
  @namespaces ||= []
end

#resourcesObject



6
7
8
# File 'lib/shoulda_routing/routes/stack.rb', line 6

def resources
  @resources ||= []
end

#routesObject



14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/shoulda_routing/routes/stack.rb', line 14

def routes
  permutations(stack).map do |segments|
    namespaces = segments[0...self.namespaces.count]
    resources  = segments[self.namespaces.count...segments.count]

    options = {}
    options[:segments]    = segments
    options[:url]         = "/#{namespaces.join("/")}/#{resources.join("/1/")}"
    options[:params]      = params(resources[0...-1])
    options[:controller]  = (namespaces + [segments.last]).join("/")
    options
  end
end