class Startblock::AppBuilder

Public Instance Methods

configure_action_mailer() click to toggle source
# File lib/startblock/app_builder.rb, line 97
def configure_action_mailer
  config = "config.action_mailer.delivery_method = :letter_opener"
  configure_environment("development", config)
  action_mailer_host "test", %{"www.example.com"}
end
configuring_test_helper() click to toggle source
# File lib/startblock/app_builder.rb, line 56
def configuring_test_helper
  remove_file "test/test_helper.rb"
  template "test_helper.erb", "test/test_helper.rb"
end
copy_puma_config() click to toggle source
# File lib/startblock/app_builder.rb, line 130
def copy_puma_config
  copy_file 'puma.rb', 'config/puma.rb'
end
create_application_layout() click to toggle source
# File lib/startblock/app_builder.rb, line 91
def create_application_layout
  template 'startblock_layout.html.erb.erb',
    'app/views/layouts/application.html.erb',
    force: true
end
create_database() click to toggle source
# File lib/startblock/app_builder.rb, line 23
def create_database
  bundle_command 'exec rake db:create db:migrate'
end
create_partials_directory() click to toggle source
# File lib/startblock/app_builder.rb, line 79
def create_partials_directory
  empty_directory 'app/views/application'
end
create_shared_flashes() click to toggle source
# File lib/startblock/app_builder.rb, line 83
def create_shared_flashes
  copy_file '_flashes.html.erb', 'app/views/application/_flashes.html.erb'
end
create_shared_javascripts() click to toggle source
# File lib/startblock/app_builder.rb, line 87
def create_shared_javascripts
  copy_file '_javascript.html.erb', 'app/views/application/_javascript.html.erb'
end
disable_helper_generation() click to toggle source
# File lib/startblock/app_builder.rb, line 40
    def disable_helper_generation
      config = <<-RUBY
    config.generators.stylesheets = false
    config.generators.javascripts = false
    config.generators.helper = false
      RUBY

      inject_into_class "config/application.rb", "Application", config
    end
gitignore_files() click to toggle source
# File lib/startblock/app_builder.rb, line 125
def gitignore_files
  remove_file '.gitignore'
  copy_file 'startblock_gitignore', '.gitignore'
end
init_git() click to toggle source
# File lib/startblock/app_builder.rb, line 134
def init_git
  run 'git init'
end
provide_setup_script() click to toggle source
# File lib/startblock/app_builder.rb, line 50
def provide_setup_script
  remove_file "bin/setup"
  template "bin_setup.erb", "bin/setup"
  run "chmod a+x bin/setup"
end
raise_on_delivery_errors() click to toggle source
# File lib/startblock/app_builder.rb, line 27
def raise_on_delivery_errors
  replace_in_file 'config/environments/development.rb',
    'raise_delivery_errors = false', 'raise_delivery_errors = true'
end
raise_on_unpermitted_parameters() click to toggle source
# File lib/startblock/app_builder.rb, line 32
    def raise_on_unpermitted_parameters
      config = <<-RUBY
    config.action_controller.action_on_unpermitted_parameters = :raise
      RUBY

      inject_into_class "config/application.rb", "Application", config
    end
readme() click to toggle source
# File lib/startblock/app_builder.rb, line 5
def readme
  template 'README.md.erb', 'README.md'
end
remove_routes_comment_lines() click to toggle source
# File lib/startblock/app_builder.rb, line 119
def remove_routes_comment_lines
  replace_in_file 'config/routes.rb',
    /Rails\.application\.routes\.draw do.*end/m,
    "Rails.application.routes.draw do\nend"
end
replace_gemfile() click to toggle source
# File lib/startblock/app_builder.rb, line 9
def replace_gemfile
  remove_file 'Gemfile'
  template 'Gemfile.erb', 'Gemfile'
end
set_ruby_to_version_being_used() click to toggle source
# File lib/startblock/app_builder.rb, line 14
def set_ruby_to_version_being_used
  create_file '.ruby-version', "#{Startblock::RUBY_VERSION}\n"
end
setup_foreman() click to toggle source
# File lib/startblock/app_builder.rb, line 103
def setup_foreman
  copy_file 'sample.env', '.sample.env'
  copy_file 'Procfile', 'Procfile'
end
setup_javascripts() click to toggle source
# File lib/startblock/app_builder.rb, line 114
def setup_javascripts
  remove_file "app/assets/javascripts/application.js"
  copy_file "application.js", "app/assets/javascripts/application.js"
end
setup_mixpanel() click to toggle source
# File lib/startblock/app_builder.rb, line 138
def setup_mixpanel
  copy_file '_mixpanel.html.erb',
    'app/views/application/_mixpanel.html.erb'
end
setup_rubocop() click to toggle source
# File lib/startblock/app_builder.rb, line 143
def setup_rubocop
  copy_file "rubocop.yml", ".rubocop.yml"
end
setup_secret_token() click to toggle source
# File lib/startblock/app_builder.rb, line 75
def setup_secret_token
  template 'secrets.yml', 'config/secrets.yml', force: true
end
setup_staging_environment() click to toggle source
# File lib/startblock/app_builder.rb, line 61
    def setup_staging_environment
      staging_file = 'config/environments/staging.rb'
      copy_file 'staging.rb', staging_file

      config = <<-RUBY

Rails.application.configure do
  # ...
end
      RUBY

      append_file staging_file, config
    end
setup_stylesheets() click to toggle source
# File lib/startblock/app_builder.rb, line 108
def setup_stylesheets
  remove_file 'app/assets/stylesheets/application.css'
  copy_file 'application.scss',
    'app/assets/stylesheets/application.scss'
end
use_postgres_config_template() click to toggle source
# File lib/startblock/app_builder.rb, line 18
def use_postgres_config_template
  template 'postgresql_database.yml.erb', 'config/database.yml',
    force: true
end