class HappySeed::Generators::BaseGenerator
Public Class Methods
fingerprint()
click to toggle source
# File lib/generators/happy_seed/base/base_generator.rb, line 8 def self.fingerprint File.exists?( "docs/README.00.base.rdoc" ) end
Public Instance Methods
install_seed_base()
click to toggle source
# File lib/generators/happy_seed/base/base_generator.rb, line 12 def install_seed_base return if already_installed puts "Installing happy_seed:base environment" # We only want SQLITE in development not everywhere gsub_file 'Gemfile', /.*sqlite3.*/, "" gem 'puma' gem 'rails_12factor' gem 'haml-rails' gem_group :development, :test do gem 'sqlite3' gem 'rspec', '~> 3.5.0' gem 'rspec-rails', '~> 3.5.0' gem 'factory_girl_rails' gem 'capybara' gem 'cucumber-rails', branch: 'rails-5', require: false gem 'guard-rspec', '~> 4.6.4', require: false gem 'guard-cucumber' gem 'database_cleaner' gem 'spring-commands-rspec' gem 'spring-commands-cucumber' gem 'launchy' gem 'vcr' gem 'faker' gem 'dotenv-rails' gem 'rdiscount' gem 'rails-controller-testing' gem 'better_errors' gem 'binding_of_caller' end gem_group :test do gem 'webmock' gem 'fakeredis', require: 'fakeredis/rspec' end gem_group :production do gem 'pg' gem 'lograge' end Bundler.with_clean_env do run "bundle install --without production" end gsub_file "app/assets/javascripts/application.js", /= require turbolinks/, "require turbolinks" # Install rspec generate "rspec:install" gsub_file ".rspec", "--warnings\n", "" append_to_file ".rspec", "--format documentation\n" # Install cucumber generate "cucumber:install" append_to_file "features/support/env.rb", "\nWorld(FactoryGirl::Syntax::Methods)\n" # Install Guard run "guard init" # Use the spring version and also run everything on startup gsub_file "Guardfile", 'cmd: "bundle exec rspec"', 'cmd: "bin/rspec", all_on_start: true' # gsub_file "Guardfile", 'guard "cucumber"', 'guard "cucumber", cli: "--color --strict"' directory '.' append_to_file '.gitignore', ".env\n" remove_file "application_controller.rb" remove_file "test" inject_into_file 'app/controllers/application_controller.rb', File.read( find_in_source_paths('application_controller.rb') ), after: /protect_from_forgery.*\n/ inject_into_class 'config/application.rb', :Application, " config.assets.paths << Rails.root.join('vendor', 'assets', 'bower_components')" inject_into_file 'config/environments/test.rb', " config.log_level = :error\n", before: "end\n" inject_into_file 'config/environments/development.rb', " config.assets.quiet = true\n", before: "end\n" inject_into_file 'config/environments/production.rb', " config.lograge.enabled = true\n config.assets.quiet = true\n", before: "end\n" begin inject_into_file 'spec/rails_helper.rb', "require 'webmock/rspec'\n", after: "'rspec/rails'\n" rescue say_status :spec, "Unable to add webmock to rails_helper.rb", :red end begin inject_into_file 'spec/rails_helper.rb', "\n config.include FactoryGirl::Syntax::Methods\n", :before => "\nend\n" inject_into_file 'spec/rails_helper.rb', "\n [:controller, :view, :request].each do |type|\n config.include ::Rails::Controller::Testing::TestProcess, :type => type\n config.include ::Rails::Controller::Testing::TemplateAssertions, :type => type\n config.include ::Rails::Controller::Testing::Integration, :type => type\n end", :before => "\nend\n" append_to_file 'spec/rails_helper.rb', "\nVCR.configure do |c|\n c.cassette_library_dir = Rails.root.join('spec', 'vcr')\n c.hook_into :webmock\nend\n" rescue say_status :spec, "Unable to add factory girl and VCR to rails_helper.rb", :red end begin inject_into_file 'Rakefile', "module TempFixForRakeLastComment\n def last_comment\n last_description\n end\nend\nRake::Application.send :include, TempFixForRakeLastComment\n", before: "Rails.application.load_tasks" rescue say_status :spec, "Unable to add Rake workaround for last_comment" end route "get '/setup' => 'setup#index'" route "root 'setup#index'" end