class ShoppingCart::InstallGenerator

Public Instance Methods

add_dependency() click to toggle source
# File lib/generators/shopping_cart/install/install_generator.rb, line 5
def add_dependency
  inject_into_file 'config/application.rb', after: "require 'rails/all'" do
    "\nrequire 'shopping_cart'"
  end
end
create_initializer() click to toggle source
# File lib/generators/shopping_cart/install/install_generator.rb, line 11
def create_initializer
  unless File.exist? initializer
    copy_file 'shopping_cart.rb', initializer
  end
end
install_migrations() click to toggle source
# File lib/generators/shopping_cart/install/install_generator.rb, line 48
def install_migrations
  rake 'shopping_cart:install:migrations'
end
run_migrations() click to toggle source
# File lib/generators/shopping_cart/install/install_generator.rb, line 52
def run_migrations
  if yes? 'Do you want to run ShoppingCart migrations now?'
    rake "db:migrate SCOPE=shopping_cart"
  end
end
set_checkout_steps() click to toggle source
# File lib/generators/shopping_cart/install/install_generator.rb, line 27
def set_checkout_steps
  unless File.readlines(initializer).grep(/config.checkout_steps/).any?
    steps = ask(steps_question)
            .split(/\W+/).map(&:downcase).map(&:to_sym)
            .concat [:confirm, :complete]
    inject_into_file initializer, after: '#Define checkout steps' do
      "\n  config.checkout_steps = #{steps}"
    end
  end
end
set_routes() click to toggle source
# File lib/generators/shopping_cart/install/install_generator.rb, line 38
def set_routes
  unless File.readlines(router).grep(/ShoppingCart::Engine/).any?
    cart_path = ask "Cart path (leave blank for '/cart'):"
    cart_path = '/cart' if cart_path.blank?
    inject_into_file router, after: "Rails.application.routes.draw do" do
      "\n  mount ShoppingCart::Engine, at: '#{cart_path}'"
    end
  end
end
set_user_class() click to toggle source
# File lib/generators/shopping_cart/install/install_generator.rb, line 17
def set_user_class
  unless File.readlines(initializer).grep(/config.user_class/).any?
    class_name = ask("User model (leave blank for 'User'):")
    class_name = 'User' if class_name.blank?
    inject_into_file initializer, after: "# Define 'Customer' class" do
      "\n  config.user_class = '#{class_name.capitalize}'"
    end
  end
end

Private Instance Methods

initializer() click to toggle source
# File lib/generators/shopping_cart/install/install_generator.rb, line 60
def initializer
  'config/initializers/shopping_cart.rb'
end
router() click to toggle source
# File lib/generators/shopping_cart/install/install_generator.rb, line 64
def router
  'config/routes.rb'
end
steps_question() click to toggle source
# File lib/generators/shopping_cart/install/install_generator.rb, line 68
def steps_question
  "Checkout steps (leave blank for confirmation only):"
end