module Onotole::DefalutScripts

Public Instance Methods

add_custom_formbuilder() click to toggle source
# File lib/onotole/default_scripts.rb, line 212
    def add_custom_formbuilder
      config = <<-DATA

    config.after_initialize do
      ActionView::Base.default_form_builder = FormBuilderExtension
    end

      DATA
      inject_into_class 'config/application.rb', 'Application', config
      File.open('app/helpers/form_builder_extension.rb', 'w') do |f|
        f.write 'class FormBuilderExtension < ActionView::Helpers::FormBuilder'
        f.write "\nend"
      end
    end
add_dotenv_to_startup() click to toggle source
# File lib/onotole/default_scripts.rb, line 198
def add_dotenv_to_startup
  inject_into_file('config/application.rb', "\nDotenv::Railtie.load\n", after: 'Bundler.require(*Rails.groups)')
end
apply_vendorjs_folder() click to toggle source
# File lib/onotole/default_scripts.rb, line 194
def apply_vendorjs_folder
  inject_into_file(AppBuilder.js_file, "//= require_tree ../../../vendor/assets/javascripts/.\n", before: '//= require_tree .')
end
configure_background_jobs_for_rspec() click to toggle source
# File lib/onotole/default_scripts.rb, line 85
def configure_background_jobs_for_rspec
  rails_generator 'delayed_job:active_record'
end
configure_i18n_for_missing_translations() click to toggle source
# File lib/onotole/default_scripts.rb, line 96
def configure_i18n_for_missing_translations
  raise_on_missing_translations_in('development')
  raise_on_missing_translations_in('test')
end
configure_rack_timeout() click to toggle source
# File lib/onotole/default_scripts.rb, line 101
def configure_rack_timeout
  rack_timeout_config = 'Rack::Timeout.timeout = (ENV["RACK_TIMEOUT"] || 10).to_i'
  append_file 'config/environments/production.rb', rack_timeout_config
end
configure_support_path() click to toggle source
# File lib/onotole/default_scripts.rb, line 186
def configure_support_path
  mkdir_and_touch 'app/support'
  copy_file 'support.rb', 'config/initializers/support.rb'

  config = "\n    config.autoload_paths << Rails.root.join('app/support')\n"
  inject_into_class 'config/application.rb', 'Application', config
end
configure_time_formats() click to toggle source

copy ru_locale here also. Update in future

# File lib/onotole/default_scripts.rb, line 90
def configure_time_formats
  remove_file 'config/locales/en.yml'
  template 'config_locales_en.yml.erb', 'config/locales/en.yml'
  template 'config_locales_ru.yml.erb', 'config/locales/ru.yml'
end
copy_application_record() click to toggle source
# File lib/onotole/default_scripts.rb, line 227
def copy_application_record
  copy_file 'application_record.rb', 'app/models/application_record.rb', force: true
end
copy_dotfiles() click to toggle source
# File lib/onotole/default_scripts.rb, line 111
def copy_dotfiles
  directory 'dotfiles', '.', force: true
  template 'dotenv.erb', '.env'
  template 'dotenv_production.erb', '.env.production'
end
copy_miscellaneous_files() click to toggle source
# File lib/onotole/default_scripts.rb, line 158
def copy_miscellaneous_files
  copy_file 'browserslist', 'browserslist'
  copy_file 'errors.rb', 'config/initializers/errors.rb'
  copy_file 'json_encoding.rb', 'config/initializers/json_encoding.rb'
end
create_database() click to toggle source
# File lib/onotole/default_scripts.rb, line 72
def create_database
  bundle_command 'exec rake db:drop db:create db:migrate db:seed'
end
disallow_wrapping_parameters() click to toggle source
# File lib/onotole/default_scripts.rb, line 61
def disallow_wrapping_parameters
  remove_file 'config/initializers/wrap_parameters.rb'
end
enable_rack_canonical_host() click to toggle source
# File lib/onotole/default_scripts.rb, line 164
    def enable_rack_canonical_host
      config = <<-RUBY

  if ENV.fetch("HEROKU_APP_NAME", "").include?("staging-pr-")
    ENV["#{app_name.upcase}_APPLICATION_HOST"] = ENV["HEROKU_APP_NAME"] + ".herokuapp.com"
  end

  # Ensure requests are only served from one, canonical host name
  config.middleware.use Rack::CanonicalHost, ENV.fetch("#{app_name.upcase}_APPLICATION_HOST")
      RUBY

      inject_into_file(
        'config/environments/production.rb',
        config,
        after: 'Rails.application.configure do'
      )
    end
enable_rack_deflater() click to toggle source
# File lib/onotole/default_scripts.rb, line 18
    def enable_rack_deflater
      config = <<-RUBY

  # Enable deflate / gzip compression of controller-generated responses
  # more info https://robots.thoughtbot.com/content-compression-with-rack-deflater
  # rack-mini-profiler does not work with this option
  config.middleware.use Rack::Deflater

      RUBY

      inject_into_file(
        'config/environments/production.rb',
        config,
        after: serve_static_files_line
      )
    end
fix_i18n_deprecation_warning() click to toggle source
# File lib/onotole/default_scripts.rb, line 106
def fix_i18n_deprecation_warning
  config = '    config.i18n.enforce_available_locales = true'
  inject_into_class 'config/application.rb', 'Application', config
end
provide_dev_prime_task() click to toggle source
# File lib/onotole/default_scripts.rb, line 14
def provide_dev_prime_task
  copy_file 'dev.rake', 'lib/tasks/dev.rake'
end
provide_kill_postgres_connections_task() click to toggle source
# File lib/onotole/default_scripts.rb, line 202
def provide_kill_postgres_connections_task
  copy_file 'kill_postgress_conections.rake', 'lib/tasks/kill_postgress_conections.rake'
end
provide_setup_script() click to toggle source
# File lib/onotole/default_scripts.rb, line 9
def provide_setup_script
  template 'bin_setup', 'bin/setup', force: true
  run 'chmod a+x bin/setup'
end
raise_on_unpermitted_parameters() click to toggle source
# File lib/onotole/default_scripts.rb, line 4
def raise_on_unpermitted_parameters
  config = "\n    config.action_controller.action_on_unpermitted_parameters = :raise\n"
  inject_into_class 'config/application.rb', 'Application', config
end
readme() click to toggle source
# File lib/onotole/default_scripts.rb, line 182
def readme
  template 'README.md.erb', 'README.md'
end
remove_config_comment_lines() click to toggle source
# File lib/onotole/default_scripts.rb, line 122
def remove_config_comment_lines
  config_files = [
    'application.rb',
    'environment.rb',
    'environments/development.rb',
    'environments/production.rb',
    'environments/test.rb'
  ]

  config_files.each do |config_file|
    cleanup_comments File.join(destination_root, "config/#{config_file}")
  end
end
remove_routes_comment_lines() click to toggle source
# File lib/onotole/default_scripts.rb, line 136
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/onotole/default_scripts.rb, line 76
def replace_gemfile
  remove_file 'Gemfile'
  template 'Gemfile.erb', 'Gemfile'
end
seeds_organisation() click to toggle source
# File lib/onotole/default_scripts.rb, line 206
def seeds_organisation
  remove_file 'db/seeds.rb'
  copy_file 'seeds.rb', 'db/seeds.rb'
  mkdir_and_touch 'db/seeds'
end
set_ruby_to_version_being_used() click to toggle source
# File lib/onotole/default_scripts.rb, line 81
def set_ruby_to_version_being_used
  create_file '.ruby-version', "#{Onotole::RUBY_VERSION}\n"
end
set_up_forego() click to toggle source
# File lib/onotole/default_scripts.rb, line 35
def set_up_forego
  template 'Procfile.erb', 'Procfile', force: true
end
setup_default_rake_task() click to toggle source
# File lib/onotole/default_scripts.rb, line 142
    def setup_default_rake_task
      append_file 'Rakefile' do
        <<-EOS
task(:default).clear
task default: [:spec]

if defined? RSpec
  task(:spec).clear
  RSpec::Core::RakeTask.new(:spec) do |t|
    t.verbose = false
  end
end
        EOS
      end
    end
setup_secret_token() click to toggle source
# File lib/onotole/default_scripts.rb, line 53
def setup_secret_token
  copy_file 'secrets.yml', 'config/secrets.yml', force: true
  # strange bug with ERB in ERB. solved this way
  replace_in_file 'config/secrets.yml',
                  "<%= ENV['SECRET_KEY_BASE'] %>",
                  "<%= ENV['#{app_name.upcase}_SECRET_KEY_BASE'] %>"
end
setup_spring() click to toggle source
# File lib/onotole/default_scripts.rb, line 117
def setup_spring
  bundle_command 'exec spring binstub --all'
  bundle_command 'exec spring stop'
end
setup_staging_environment() click to toggle source
# File lib/onotole/default_scripts.rb, line 39
    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
use_postgres_config_template() click to toggle source
# File lib/onotole/default_scripts.rb, line 65
def use_postgres_config_template
  template 'postgresql_database.yml.erb', 'config/database.yml',
           force: true
  template 'postgresql_database.yml.erb', 'config/database.yml.sample',
           force: true
end