# Application template recipe for the rails_apps_composer. Check for a newer version here:
# https://github.com/RailsApps/rails_apps_composer/blob/master/recipes/navigation.rb
after_bundler do
say_wizard "Navigation recipe running 'after bundler'"
# Create navigation links
if recipes.include? 'haml'
# There is Haml code in this script. Changing the indentation is perilous between HAMLs.
# We have to use single-quote-style-heredoc to avoid interpolation.
create_file "app/views/shared/_navigation.html.haml" do <<-'HAML'
- if user_signed_in?
%li
Logged in as #{current_user.name}
%li
= link_to('Logout', signout_path)
- else
%li
= link_to('Login', signin_path)
HAML
end
else
create_file "app/views/shared/_navigation.html.erb" do <<-ERB
<% if user_signed_in? %>
Logged in as <%= current_user.name %>
<%= link_to('Logout', signout_path) %>
<% else %>
<%= link_to('Login', signin_path) %>
<% end %>
ERB
end
end
# Add navigation links to the default application layout
if recipes.include? 'html5'
if recipes.include? 'haml'
# There is Haml code in this script. Changing the indentation is perilous between HAMLs.
inject_into_file 'app/views/layouts/application.html.haml', :after => "%header\n" do <<-HAML
%ul.hmenu
= render 'shared/navigation'
HAML
end
else
inject_into_file 'app/views/layouts/application.html.erb', :after => "\n" do
<<-ERB
ERB
end
end
else
if recipes.include? 'haml'
# There is Haml code in this script. Changing the indentation is perilous between HAMLs.
inject_into_file 'app/views/layouts/application.html.haml', :after => "%body\n" do <<-HAML
%ul.hmenu
= render 'shared/navigation'
HAML
end
else
inject_into_file 'app/views/layouts/application.html.erb', :after => "\n" do
<<-ERB
ERB
end
end
end
end
__END__
name: Navigation
description: "Add navigation links."
author: RailsApps
category: other
tags: [utilities, configuration]