module NavigationHelpers
Public Instance Methods
path_to(page_name)
click to toggle source
# File lib/generators/katapult/basics/templates/features/support/paths.rb, line 3 def path_to(page_name) case page_name when 'the homepage' root_path when /^the list of (.*?)$/ models_prose = $1 route = "#{model_prose_to_route_segment(models_prose)}_path" send(route) when /^the (page|form) for the (.*?) above$/ action_prose, model_prose = $1, $2 route = "#{action_prose == 'form' ? 'edit_' : ''}#{model_prose_to_route_segment(model_prose)}_path" model = model_prose_to_class(model_prose) send(route, model.reorder(:id).last!) when /^the (page|form) for the (.*?) "(.*?)"$/ action_prose, model_prose, identifier = $1, $2, $3 path_to_show_or_edit(action_prose, model_prose, identifier) when /^the (.*?) (page|form) for "(.*?)"$/ model_prose, action_prose, identifier = $1, $2, $3 path_to_show_or_edit(action_prose, model_prose, identifier) when /^the (.*?) form$/ model_prose = $1 route = "new_#{model_prose_to_route_segment(model_prose)}_path" send(route) when /"(.+?)"$/ $1 end end
Private Instance Methods
model_prose_to_class(model_prose)
click to toggle source
# File lib/generators/katapult/basics/templates/features/support/paths.rb, line 47 def model_prose_to_class(model_prose) model_prose.gsub(' ', '_').classify.constantize end
model_prose_to_route_segment(model_prose)
click to toggle source
# File lib/generators/katapult/basics/templates/features/support/paths.rb, line 51 def model_prose_to_route_segment(model_prose) model_prose = model_prose.downcase model_prose.gsub(/[\ \/]/, '_') end
path_to_show_or_edit(action_prose, model_prose, identifier)
click to toggle source
# File lib/generators/katapult/basics/templates/features/support/paths.rb, line 41 def path_to_show_or_edit(action_prose, model_prose, identifier) model = model_prose_to_class(model_prose) route = "#{action_prose == 'form' ? 'edit_' : ''}#{model_prose_to_route_segment(model_prose)}_path" send(route, model.find_by_anything!(identifier)) end