module NavigationHelpers def path_to(page_name) case page_name when /^the home page$/ root_path when /^its ([\w ]+) page$/ send("#{$1.gsub(/\W+/, '_')}_path", @it) when /^the ([\w ]+) page$/ send("#{$1.gsub(/\W+/, '_')}_path") when /^my edit profile page$/ edit_person_path(@me.person) when /^my acceptance form page$/ accept_user_invitation_path(:invitation_token => @me.invitation_token) when /^the requestor's profile page$/ person_path(@me.reload.pending_requests.first.from) when /^"(\/.*)"/ $1 else raise "Can't find mapping from \"#{page_name}\" to a path." end end end World(NavigationHelpers)