class Goldencobra::Generators::InstallGenerator

Public Class Methods

source_root() click to toggle source
# File lib/generators/goldencobra/install_generator.rb, line 92
def self.source_root
  File.expand_path("../templates", __FILE__)
end

Public Instance Methods

copy_initializer() click to toggle source
# File lib/generators/goldencobra/install_generator.rb, line 68
def copy_initializer
  @underscored_user_name = "user".underscore
  template "../templates/active_admin.rb.erb", "config/initializers/active_admin.rb"
end
create_admin_user_password() click to toggle source
# File lib/generators/goldencobra/install_generator.rb, line 120
def create_admin_user_password
  @admin_email = ask("Please enter a email for your admin account (default: admin@goldencobra.de):")
  @admin_email = "admin@goldencobra.de" if @admin_email.blank?

  @admin_password = ask("Please enter a new password for admin account (user: #{@admin_email}):")
  template "../templates/seeds.rb.erb", "db/seeds.rb"
  if yes?("Would you like to create your local db?")
    system("bundle install")
    rake("db:create")
  end
  rake("goldencobra:install:migrations")
  if yes?("Would you like to migrate your local db?")
    rake("db:migrate")
  end
  if yes?("Would you like to seed your local db?")
    rake("db:seed")
  end
end
install_assets() click to toggle source
# File lib/generators/goldencobra/install_generator.rb, line 73
def install_assets
  require "rails"
  require "active_admin"
  remove_file "app/assets/stylesheets/application.css"
  directory "../templates/assets", "app/assets"
  directory "../templates/views", "app/views"
  template "../templates/extend_goldencobra_articles_controller.rb",
           "app/controllers/extend_goldencobra_articles_controller.rb"
  remove_file "public/index.html"
  copy_file "../templates/robots.txt", "public/robots.txt"
end
install_capistrano() click to toggle source
# File lib/generators/goldencobra/install_generator.rb, line 139
def install_capistrano
  if yes?("Would you like to configure git?")
    @git_url = ask("What is your git url? (bsp: ssh://git@git.ikusei.de:7999/KLIMA/website.git)")
    git :init
    git remote: "add origin #{@git_url}"
    git add: "."
    git commit: "-m 'First commit'"
    git push: "origin master"
  end
  if yes?("Would you like to configure capistrano? (a git repository is required)")
    @ip_address = ask("To which IP do you want to deploy? (bsp: Taurus 178.23.121.27)")
    if @git_url.blank?
      @git_url = ask("What is your git url? (bsp: ssh://git@git.ikusei.de:7999/KLIMA/website.git)")
    end
    @app_name = Rails.application.class.parent_name.parameterize.underscore
    capify!
    remove_file "config/deploy.rb"
    template "../templates/deploy.rb.erb", "config/deploy.rb"

    #Add Changes to git
    git add: "."
    git commit: "-m 'Deploy files added'"
    git push: "origin master"
  end
  if yes?("Would you like to configure your server and deploy to it?")
    copy_file '../templates/create_database.mysql.erb', 'config/templates/create_database.mysql.erb'
    copy_file '../templates/database.yml.erb', 'config/templates/database.yml.erb'
    template '../templates/apache.tmpl.erb', "config/templates/#{@app_name}"
    system("bundle install")

    #Add Changes to git
    git add: "."
    git commit: "-m 'Server configuration files added'"
    git push: "origin master"

    system("cap deploy:create_gemset")
    system("cap deploy:setup")
    if yes?("Would you like to create remote database?")
      system("cap deploy:db:setup")
    end
    system("cap deploy")
    if yes?("Would you like to seed your remote db?")
      system("cap deploy:seed")
    end
    if yes?("Would you like to configure apache on your server?")
      system("cap deploy:apache_setup")
    end
  end
end
install_errbit() click to toggle source
# File lib/generators/goldencobra/install_generator.rb, line 96
def install_errbit
    gem("airbrake")
    system("bundle install")
    @api_key = ask("What is your Errbit API key? (default: 1eacfe13fb5d9eca2dee5401a9b93ddb)")
    @api_key = "1eacfe13fb5d9eca2dee5401a9b93ddb" if @api_key.blank?

    @host = ask("What is your Errbit Host? (default: errors.ikusei.de)")
    @host = "errors.ikusei.de" if @host.blank?

    @port = ask("What is your Errbit Port? (bsp: 80 default | 443 secure )")
    @port = "80" if @port.blank?
    template "../templates/errbit.rb.erb", "config/initializers/errbit.rb"
end
install_local_rvm() click to toggle source
# File lib/generators/goldencobra/install_generator.rb, line 11
def install_local_rvm
  if yes?("Would you like to configure a .rvmrc file?")
    @ruby_version = ask("What is your current ruby version (default: 1.9.3-p194)")
    @ruby_version = "1.9.3-p194" if @ruby_version.blank?
    template "../templates/rvmrc.erb", ".rvmrc"
    system("/bin/bash -ce '[[ -s \"$HOME/.rvm/scripts/rvm\" ]] && source \"$HOME/.rvm/scripts/rvm\" && rvm use #{@ruby_version}@#{Rails.application.class.parent_name} --create'")
  end
end
install_newrelic() click to toggle source
# File lib/generators/goldencobra/install_generator.rb, line 110
def install_newrelic
  if yes?("Would you like to install NewRelic? (www.newrelic.com)")
    gem("newrelic_rpm", "3.18.1.330")
    system("bundle install")
    @license_key = ask("What is your NewRelic license key? (default: b199ad3e4e0d728b1aac69aec4870af7ef9478bb)")
    @license_key = "b199ad3e4e0d728b1aac69aec4870af7ef9478bb" if @license_key.blank?
    template "../templates/newrelic.yml.erb", "config/newrelic.yml"
  end
end
install_test_env() click to toggle source
# File lib/generators/goldencobra/install_generator.rb, line 20
def install_test_env
  if yes?("Would you like to install a test Environment")
    gem("rspec-rails", '~> 2.12.2', group: "test")
    gem("annotate", group: "test")
    gem("ruby-graphviz", group: "test")
    gem("mysql2", group: "test")
    gem("cucumber", group: "test")
    gem("cucumber-rails", group: "test", require: false)
    gem("factory_girl", group: "test")
    gem("factory_girl_rails", group: "test")
    gem("database_cleaner", group: "test")
    gem("capybara", group: "test")
    gem("capybara-webkit", group: "test")
    gem("guard", group: "test")
    gem("guard-rspec", group: "test")
    gem("guard-cucumber", group: "test")
    gem("guard-livereload", group: "test")
    gem("rb-fsevent", '~> 0.9.1', group: "test")
    gem("growl", group: "test")
    gem("launchy", group: "test")
    gem("faker", group: "test")
    gem("email_spec", group: "test")
    gem("shoulda-matchers", group: "test")
    system("bundle install")
  end
end
modify_application_rb() click to toggle source
# File lib/generators/goldencobra/install_generator.rb, line 54
def modify_application_rb
  line = "config.active_record.whitelist_attributes = true"
  gsub_file 'config/application.rb', /(#{Regexp.escape(line)})/mi do |match|
    "config.active_record.whitelist_attributes = false"
  end

  line = "class Application < Rails::Application"
  gsub_file "config/environments/production.rb", /(#{Regexp.escape(line)})/mi do |match|
    "class Application < Rails::Application"
    "  require 'pdfkit'"
    "  config.middleware.use PDFKit::Middleware, print_media_type: true"
  end
end
modify_production_env() click to toggle source
# File lib/generators/goldencobra/install_generator.rb, line 47
def modify_production_env
  line = "config.assets.compile = false"
  gsub_file "config/environments/production.rb", /(#{Regexp.escape(line)})/mi do |match|
    "config.assets.compile = true"
  end
end
setup_routes() click to toggle source
# File lib/generators/goldencobra/install_generator.rb, line 85
def setup_routes
  route "mount Goldencobra::Engine => '/'"
  route "devise_for :users, ActiveAdmin::Devise.config"
  route "devise_for :visitors"
  route "ActiveAdmin.routes(self)"
end