22 lines
605 B
Ruby
22 lines
605 B
Ruby
module NavigationHelpers
|
|
def path_to(page_name)
|
|
case page_name
|
|
when /^the home\s?page$/
|
|
'/'
|
|
when /^the track page for "([^\"]*)"$/
|
|
track_path Track.find_by_name($1)
|
|
else
|
|
begin
|
|
page_name =~ /^the (.*) page$/
|
|
path_components = $1.split(/\s+/)
|
|
self.send(path_components.push('path').join('_').to_sym)
|
|
rescue NoMethodError, ArgumentError
|
|
raise "Can't find mapping from \"#{page_name}\" to a path.\n" +
|
|
"Now, go and add a mapping in #{__FILE__}"
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
World(NavigationHelpers)
|