class Comable::InstallGenerator

Public Class Methods

source_paths() click to toggle source
# File lib/generators/comable/install/install_generator.rb, line 14
def source_paths
  paths = superclass.source_paths
  paths << File.expand_path('../templates', __FILE__)
  paths.flatten
end

Public Instance Methods

add_files() click to toggle source
# File lib/generators/comable/install/install_generator.rb, line 27
def add_files
  template 'config/initializers/comable.rb', 'config/initializers/comable.rb'
end
append_seeds() click to toggle source
# File lib/generators/comable/install/install_generator.rb, line 43
    def append_seeds
      append_file 'db/seeds.rb', <<-SEEDS
# Seed data for Comable
Comable::Core::Engine.load_seed if defined?(Comable::Core)
      SEEDS
    end
complete() click to toggle source
# File lib/generators/comable/install/install_generator.rb, line 102
def complete
  message_for_complete unless options[:quiet]
end
configure_application() click to toggle source
# File lib/generators/comable/install/install_generator.rb, line 31
    def configure_application
      application <<-APP
    config.to_prepare do
      # Overriding Models and Controllers
      # refs: http://edgeguides.rubyonrails.org/engines.html#overriding-models-and-controllers
      Dir.glob(Rails.root.join('app/**/*_decorator*.rb')).each do |c|
        Rails.configuration.cache_classes ? require_dependency(c) : load(c)
      end
    end
      APP
    end
create_database() click to toggle source
# File lib/generators/comable/install/install_generator.rb, line 55
def create_database
  say_status :creating, 'database'
  quietly { rake 'db:create' }
end
insert_routes() click to toggle source
# File lib/generators/comable/install/install_generator.rb, line 87
    def insert_routes
      insert_into_file File.join('config', 'routes.rb'), after: "Rails.application.routes.draw do\n" do
        <<-ROUTES
  # This line mounts Comable's routes at the root of your application.
  # This means, any requests to URLs such as /products, will go to Comable::ProductsController.
  # If you would like to change where this engine is mounted, simply change the :at option to something different.
  #
  # We ask that you don't use the :as option here, as Comable relies on it being the default of "comable"
  mount Comable::Core::Engine, at: '/'
        ROUTES
      end

      message_for_insert_routes unless options[:quiet]
    end
install_migrations() click to toggle source
# File lib/generators/comable/install/install_generator.rb, line 50
def install_migrations
  say_status :copying, 'migrations'
  quietly { rake 'comable:install:migrations' }
end
load_sample_data() click to toggle source
# File lib/generators/comable/install/install_generator.rb, line 78
def load_sample_data
  if @sample_flag
    say_status :loading, 'sample data'
    quietly { rake 'comable:sample' }
  else
    say_status :skipping, 'sample data (you can always run rake comable:sample)'
  end
end
load_seed_data() click to toggle source
# File lib/generators/comable/install/install_generator.rb, line 69
def load_seed_data
  if @seed_flag
    say_status :loading, 'seed data'
    rake_seed
  else
    say_status :skipping, 'seed data (you can always run rake db:seed)'
  end
end
prepare_options() click to toggle source
# File lib/generators/comable/install/install_generator.rb, line 21
def prepare_options
  @migrate_flag = options[:migrate]
  @seed_flag = @migrate_flag ? options[:seed] : false
  @sample_flag = @migrate_flag ? options[:sample] : false
end
run_migrations() click to toggle source
# File lib/generators/comable/install/install_generator.rb, line 60
def run_migrations
  if @migrate_flag
    say_status :running, 'migrations'
    quietly { rake 'db:migrate' }
  else
    say_status :skipping, "migrations (don't forget to run rake db:migrate)"
  end
end

Private Instance Methods

message_for_complete() click to toggle source
# File lib/generators/comable/install/install_generator.rb, line 126
def message_for_complete
  puts '*' * 50
  puts "Comable has been installed successfully. You're all ready to go!"
  puts ' '
  puts 'Enjoy!'
end
message_for_insert_routes() click to toggle source
# File lib/generators/comable/install/install_generator.rb, line 119
def message_for_insert_routes
  puts '*' * 50
  puts "We added the following line to your application's config/routes.rb file:"
  puts ' '
  puts "    mount Comable::Core::Engine, at: '/'"
end
rake_seed() click to toggle source
# File lib/generators/comable/install/install_generator.rb, line 108
def rake_seed
  rake("db:seed #{rake_seed_arguments.join(' ')}")
end
rake_seed_arguments() click to toggle source
# File lib/generators/comable/install/install_generator.rb, line 112
def rake_seed_arguments
  arguments = []
  arguments << "ADMIN_EMAIL=#{options[:admin_email]}" if options[:admin_email]
  arguments << "ADMIN_PASSWORD=#{options[:admin_password]}" if options[:admin_password]
  arguments
end