class Kazan::AppBuilder
Public Instance Methods
assets_config()
click to toggle source
# File lib/kazan/app_builder.rb, line 67 def assets_config copy_file 'errors.rb', 'config/initializers/errors.rb' copy_file 'json_encoding.rb', 'config/initializers/json_encoding.rb' end
bullet_config()
click to toggle source
# File lib/kazan/app_builder.rb, line 109 def bullet_config template 'bullet.rb', 'config/initializers/bullet.rb' end
bundler_audit_config()
click to toggle source
# File lib/kazan/app_builder.rb, line 186 def bundler_audit_config copy_file 'bundler_audit.rake', 'lib/tasks/bundler_audit.rake' append_file 'Rakefile', %{\ntask default: 'bundler:audit'\n} end
database_tables()
click to toggle source
# File lib/kazan/app_builder.rb, line 42 def database_tables bundle_command 'exec rake db:create db:migrate' end
dotenvs()
click to toggle source
# File lib/kazan/app_builder.rb, line 72 def dotenvs directory 'envs', '.' end
empty_directories()
click to toggle source
# File lib/kazan/app_builder.rb, line 270 def empty_directories [ 'app/assets/fonts', 'app/controllers/api', 'app/controllers/web', 'app/services', 'app/policies', 'app/validations', 'app/views/shared', 'spec/controllers', 'spec/factories', 'spec/helpers', 'spec/models', 'spec/mailers', 'spec/requests', 'spec/routing', ].each do |dir| empty_directory_with_keep_file dir end end
exception_on_delivery_errors()
click to toggle source
# File lib/kazan/app_builder.rb, line 80 def exception_on_delivery_errors replace_in_file 'config/environments/development.rb', 'raise_delivery_errors = false', 'raise_delivery_errors = true' end
exception_on_missing_assets_in_test()
click to toggle source
# File lib/kazan/app_builder.rb, line 191 def exception_on_missing_assets_in_test configure_environment 'test', 'config.assets.raise_runtime_errors = true' end
exception_on_missing_translations()
click to toggle source
# File lib/kazan/app_builder.rb, line 94 def exception_on_missing_translations exception_on_missing_translations_in 'development' exception_on_missing_translations_in 'test' end
exception_on_unpermitted_parameters()
click to toggle source
# File lib/kazan/app_builder.rb, line 85 def exception_on_unpermitted_parameters config = <<-RUBY config.action_controller.action_on_unpermitted_parameters = :raise RUBY inject_into_class 'config/application.rb', 'Application', config end
foreman_config()
click to toggle source
# File lib/kazan/app_builder.rb, line 122 def foreman_config template 'Procfile.erb', 'Procfile' end
gemfile()
click to toggle source
# File lib/kazan/app_builder.rb, line 13 def gemfile template 'Gemfile.erb', 'Gemfile' end
gemfile_api()
click to toggle source
# File lib/kazan/app_builder.rb, line 17 def gemfile_api template 'Gemfile.api.erb', 'Gemfile', force: true end
gitignore()
click to toggle source
# File lib/kazan/app_builder.rb, line 9 def gitignore copy_file 'project_gitignore', '.gitignore', force: true end
init_commit()
click to toggle source
# File lib/kazan/app_builder.rb, line 291 def init_commit run 'git init' run 'git add .' run 'git commit -m "Init commit"' end
letter_opener_config()
click to toggle source
# File lib/kazan/app_builder.rb, line 99 def letter_opener_config letter_opener_settings = <<-RUBY # Letter opener settings config.action_mailer.default_url_options = { host: 'localhost', port: 3000 } config.action_mailer.delivery_method = :letter_opener RUBY configure_environment 'development', letter_opener_settings end
postgres_config()
click to toggle source
# File lib/kazan/app_builder.rb, line 37 def postgres_config template 'database.yml.erb', 'config/database.yml', force: true template 'database.yml.erb', 'config/database.yml.example' end
puma_config()
click to toggle source
# File lib/kazan/app_builder.rb, line 33 def puma_config copy_file 'puma.rb', 'config/puma.rb', force: true end
quiet_assets_config()
click to toggle source
# File lib/kazan/app_builder.rb, line 113 def quiet_assets_config config = <<-RUBY config.assets.quiet = true RUBY inject_into_class 'config/application.rb', 'Application', config end
rack_canonical_host_config()
click to toggle source
# File lib/kazan/app_builder.rb, line 249 def rack_canonical_host_config config = <<-RUBY config.middleware.use Rack::CanonicalHost, ENV.fetch("APPLICATION_HOST") RUBY inject_into_file "config/environments/production.rb", config, after: "Rails.application.configure do" end
rack_deflater_config()
click to toggle source
# File lib/kazan/app_builder.rb, line 258 def rack_deflater_config configure_environment "production", "config.middleware.use Rack::Deflater" end
rack_mini_profiler_config()
click to toggle source
# File lib/kazan/app_builder.rb, line 29 def rack_mini_profiler_config copy_file 'rack_mini_profiler.rb', 'config/initializers/rack_mini_profiler.rb' end
rack_timeout_config()
click to toggle source
# File lib/kazan/app_builder.rb, line 240 def rack_timeout_config rack_timeout_config = <<-RUBY Rack::Timeout.timeout = (ENV["RACK_TIMEOUT"] || 10).to_i RUBY append_file 'config/environments/production.rb', rack_timeout_config end
rails_generators_config()
click to toggle source
# File lib/kazan/app_builder.rb, line 126 def rails_generators_config config = <<-RUBY config.generators do |generate| generate.helper false generate.javascript_engine false generate.request_specs false generate.routing_specs false generate.stylesheets false generate.test_framework :rspec generate.view_specs false end RUBY inject_into_class 'config/application.rb', 'Application', config end
readme()
click to toggle source
# File lib/kazan/app_builder.rb, line 5 def readme template 'README.md.erb', 'README.md' end
remove_turbolinks()
click to toggle source
# File lib/kazan/app_builder.rb, line 143 def remove_turbolinks replace_in_file( "app/assets/javascripts/application.js", "//= require turbolinks", "") end
rollbar_config()
click to toggle source
# File lib/kazan/app_builder.rb, line 262 def rollbar_config copy_file 'rollbar.rb', 'config/initializers/rollbar.rb' end
rspec_config()
click to toggle source
# File lib/kazan/app_builder.rb, line 215 def rspec_config generate 'rspec:install' end
rspec_replace_config()
click to toggle source
# File lib/kazan/app_builder.rb, line 219 def rspec_replace_config copy_file 'rails_helper.rb', 'spec/rails_helper.rb', force: true copy_file 'spec_helper.rb', 'spec/spec_helper.rb', force: true end
ruby_version()
click to toggle source
# File lib/kazan/app_builder.rb, line 21 def ruby_version create_file '.ruby-version', "#{Kazan::RUBY_PROJECT_VERSION}\n" end
settings()
click to toggle source
# File lib/kazan/app_builder.rb, line 76 def settings template 'settings.yml.erb', 'config/settings.yml' end
setup_locales()
click to toggle source
# File lib/kazan/app_builder.rb, line 181 def setup_locales copy_file 'i18n-tasks.yml', 'config/i18n-tasks.yml' copy_file 'i18n_spec.rb', 'spec/i18n_spec.rb' end
simple_form_config()
click to toggle source
# File lib/kazan/app_builder.rb, line 25 def simple_form_config bundle_command 'exec rails generate simple_form:install' end
smtp_config()
click to toggle source
# File lib/kazan/app_builder.rb, line 224 def smtp_config copy_file 'smtp.rb', 'config/smtp.rb' prepend_file 'config/environments/production.rb', %{require Rails.root.join("config/smtp")\n} config = <<-RUBY config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = SMTP_SETTINGS RUBY inject_into_file 'config/environments/production.rb', config, after: "config.action_mailer.raise_delivery_errors = false" end
spec_action_mailer_config()
click to toggle source
# File lib/kazan/app_builder.rb, line 199 def spec_action_mailer_config copy_file 'action_mailer.rb', 'spec/support/action_mailer.rb' end
spec_database_cleaner_config()
click to toggle source
# File lib/kazan/app_builder.rb, line 203 def spec_database_cleaner_config copy_file 'database_cleaner.rb', 'spec/support/database_cleaner.rb' end
spec_factory_bot_config()
click to toggle source
# File lib/kazan/app_builder.rb, line 211 def spec_factory_bot_config copy_file 'factory_bot.rb', 'spec/support/factory_bot.rb' end
spec_shoulda_matchers_config()
click to toggle source
# File lib/kazan/app_builder.rb, line 207 def spec_shoulda_matchers_config copy_file 'shoulda_matchers.rb', 'spec/support/shoulda_matchers.rb' end
spec_translations_config()
click to toggle source
# File lib/kazan/app_builder.rb, line 195 def spec_translations_config copy_file 'i18n.rb', 'spec/support/i18n.rb' end
spring()
click to toggle source
# File lib/kazan/app_builder.rb, line 266 def spring bundle_command 'exec spring binstub --all' end
static_pages()
click to toggle source
# File lib/kazan/app_builder.rb, line 168 def static_pages meta_tags = <<-EOS <meta charset="utf-8" /> <meta name="ROBOTS" content="NOODP" /> <meta name="viewport" content="initial-scale=1" /> EOS %w(500 404 422).each do |page| inject_into_file "public/#{page}.html", meta_tags, after: "<head>\n" replace_in_file "public/#{page}.html", /<!--.+-->\n/, '' end end
stylesheets_gems()
click to toggle source
# File lib/kazan/app_builder.rb, line 150 def stylesheets_gems gems = <<-RUBY RUBY inject_into_file 'Gemfile', gems, after: "gem 'sass-rails', '~> 5.0'\n" Bundler.with_clean_env { run 'bundle install' } end
stylesheets_manifest()
click to toggle source
# File lib/kazan/app_builder.rb, line 160 def stylesheets_manifest remove_file 'app/assets/stylesheets/application.css' copy_file( 'application.scss', 'app/assets/stylesheets/application.scss', force: true) end
Private Instance Methods
exception_on_missing_translations_in(environment)
click to toggle source
# File lib/kazan/app_builder.rb, line 299 def exception_on_missing_translations_in(environment) config = 'config.action_view.raise_on_missing_translations = true' uncomment_lines("config/environments/#{environment}.rb", config) end