def puts_red(heredoc); puts set_color heredoc, :red; end def puts_green(heredoc); puts set_color heredoc, :green; end puts_red "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" puts_red "@@ @@@@@@@@ @@@@@@@@37@@@" puts_red "@ @@@@@ @@@@@@@@@@@@@" puts_red "@ @@@@@ @@@@ @@@@" puts_red "@ @@@@@ @@@@ @@" puts_red "@ @@@@ @@@@@@ @" puts_red "@ @@@@@@@ @@@@@@ @" puts_red "@ @@ @@@@@@ @@@@@@ @" puts_red "@ @@@@ @@@@ @@" puts_red "@@ @@@@@ @@@@@ @@@@" puts_red "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" puts_red "@@@@@@@@ https://www.rubidium.io @@@@@@@@@" puts_red "@@@@@@@@@@@@@@ 85.4678 @@@@@@@@@@@@@@@@@@" puts_red "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" puts "" puts "" # Checks for unstagged commits return_message = "There are unstaged commits. Do you want to continue?" return if !run("git diff --no-patch --exit-code") && no?(return_message) # TEMPLATE START def ask_with_default(prompt, default) value = ask("#{prompt} [#{default}]") value.blank? ? default : value end gem 'friendly_id' run 'bundle install' while yes?("Do you want to use Friendly ID with a model?") do model_name = ask_with_default("Model Name:", "user") attribute_name = ask_with_default("Attribute Name:", "name") if model_name && attribute_name generate(:migration, "AddSlugTo#{model_name.titleize.pluralize}", "slug:uniq") string = <<~RUBY extend FriendlyId friendly_id :#{attribute_name}, use: :slugged RUBY inject_into_file "app/models/#{model_name}.rb", string, after: "class #{model_name.titleize} < ApplicationRecord\n" else puts "Model name and attribute required" end end generate(:friendly_id) puts "Change references. I.e., User.find() to User.friendly.find()" # TEMPLATE END puts "" puts "" puts_green "Template Name: Friendly Id" puts_green "By: Dave Kimura (https://www.rubidium.io/profiles/dave-kimura)" puts_green "https://www.rubidium.io/templates/friendly-id"