Skip to content

Commit 7b887aa

Browse files
committed
Exec 'rails app:update' and inherit a few settings
1 parent 56abb00 commit 7b887aa

18 files changed

+200
-74
lines changed

bin/rails

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,4 @@
11
#!/usr/bin/env ruby
2-
begin
3-
load File.expand_path('../spring', __FILE__)
4-
rescue LoadError => e
5-
raise unless e.message.include?('spring')
6-
end
7-
APP_PATH = File.expand_path('../../config/application', __FILE__)
2+
APP_PATH = File.expand_path('../config/application', __dir__)
83
require_relative '../config/boot'
94
require 'rails/commands'

bin/rake

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,4 @@
11
#!/usr/bin/env ruby
2-
begin
3-
load File.expand_path('../spring', __FILE__)
4-
rescue LoadError => e
5-
raise unless e.message.include?('spring')
6-
end
72
require_relative '../config/boot'
83
require 'rake'
94
Rake.application.run

bin/setup

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,34 @@
11
#!/usr/bin/env ruby
22
require 'pathname'
3+
require 'fileutils'
4+
include FileUtils
35

46
# path to your application root.
5-
APP_ROOT = Pathname.new File.expand_path('../../', __FILE__)
7+
APP_ROOT = Pathname.new File.expand_path('../../', __FILE__)
68

7-
Dir.chdir APP_ROOT do
9+
def system!(*args)
10+
system(*args) || abort("\n== Command #{args} failed ==")
11+
end
12+
13+
chdir APP_ROOT do
814
# This script is a starting point to setup your application.
9-
# Add necessary setup steps to this file:
15+
# Add necessary setup steps to this file.
1016

11-
puts "== Installing dependencies =="
12-
system "gem install bundler --conservative"
13-
system "bundle check || bundle install"
17+
puts '== Installing dependencies =='
18+
system! 'gem install bundler --conservative'
19+
system('bundle check') || system!('bundle install')
1420

1521
# puts "\n== Copying sample files =="
16-
# unless File.exist?("config/database.yml")
17-
# system "cp config/database.yml.sample config/database.yml"
22+
# unless File.exist?('config/database.yml')
23+
# cp 'config/database.yml.sample', 'config/database.yml'
1824
# end
1925

2026
puts "\n== Preparing database =="
21-
system "bin/rake db:setup"
27+
system! 'bin/rails db:setup'
2228

2329
puts "\n== Removing old logs and tempfiles =="
24-
system "rm -f log/*"
25-
system "rm -rf tmp/cache"
30+
system! 'bin/rails log:clear tmp:clear'
2631

2732
puts "\n== Restarting application server =="
28-
system "touch tmp/restart.txt"
33+
system! 'bin/rails restart'
2934
end

bin/update

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#!/usr/bin/env ruby
2+
require 'pathname'
3+
require 'fileutils'
4+
include FileUtils
5+
6+
# path to your application root.
7+
APP_ROOT = Pathname.new File.expand_path('../../', __FILE__)
8+
9+
def system!(*args)
10+
system(*args) || abort("\n== Command #{args} failed ==")
11+
end
12+
13+
chdir APP_ROOT do
14+
# This script is a way to update your development environment automatically.
15+
# Add necessary update steps to this file.
16+
17+
puts '== Installing dependencies =='
18+
system! 'gem install bundler --conservative'
19+
system('bundle check') || system!('bundle install')
20+
21+
puts "\n== Updating database =="
22+
system! 'bin/rails db:migrate'
23+
24+
puts "\n== Removing old logs and tempfiles =="
25+
system! 'bin/rails log:clear tmp:clear'
26+
27+
puts "\n== Restarting application server =="
28+
system! 'bin/rails restart'
29+
end

config/application.rb

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
require File.expand_path('../boot', __FILE__)
1+
require_relative 'boot'
22

33
require 'rails/all'
44

@@ -11,16 +11,5 @@ class Application < Rails::Application
1111
# Settings in config/environments/* take precedence over those specified here.
1212
# Application configuration should go into files in config/initializers
1313
# -- all .rb files in that directory are automatically loaded.
14-
15-
# Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
16-
# Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
17-
# config.time_zone = 'Central Time (US & Canada)'
18-
19-
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
20-
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
21-
# config.i18n.default_locale = :de
22-
23-
# Do not swallow errors in after_commit/after_rollback callbacks.
24-
config.active_record.raise_in_transactional_callbacks = true
2514
end
2615
end

config/boot.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
1+
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
22

33
require 'bundler/setup' # Set up gems listed in the Gemfile.

config/cable.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
development:
2+
adapter: async
3+
4+
test:
5+
adapter: async
6+
7+
production:
8+
adapter: redis
9+
url: redis://localhost:6379/1

config/environment.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Load the Rails application.
2-
require File.expand_path('../application', __FILE__)
2+
require_relative 'application'
33

44
# Initialize the Rails application.
55
Rails.application.initialize!

config/environments/development.rb

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,28 @@
99
# Do not eager load code on boot.
1010
config.eager_load = false
1111

12-
# Show full error reports and disable caching.
13-
config.consider_all_requests_local = true
14-
config.action_controller.perform_caching = false
12+
# Show full error reports.
13+
config.consider_all_requests_local = true
14+
15+
# Enable/disable caching. By default caching is disabled.
16+
if Rails.root.join('tmp/caching-dev.txt').exist?
17+
config.action_controller.perform_caching = true
18+
19+
config.cache_store = :memory_store
20+
config.public_file_server.headers = {
21+
'Cache-Control' => 'public, max-age=172800'
22+
}
23+
else
24+
config.action_controller.perform_caching = false
25+
26+
config.cache_store = :null_store
27+
end
1528

1629
# Don't care if the mailer can't send.
1730
config.action_mailer.raise_delivery_errors = false
1831

32+
config.action_mailer.perform_caching = false
33+
1934
# Print deprecation notices to the Rails logger.
2035
config.active_support.deprecation = :log
2136

@@ -27,15 +42,13 @@
2742
# number of complex assets.
2843
config.assets.debug = true
2944

30-
# Asset digests allow you to set far-future HTTP expiration dates on all assets,
31-
# yet still be able to expire them through the digest params.
32-
config.assets.digest = true
33-
34-
# Adds additional error checking when serving assets at runtime.
35-
# Checks for improperly declared sprockets dependencies.
36-
# Raises helpful error messages.
37-
config.assets.raise_runtime_errors = true
45+
# Suppress logger output for asset requests.
46+
config.assets.quiet = true
3847

3948
# Raises error for missing translations
4049
# config.action_view.raise_on_missing_translations = true
50+
51+
# Use an evented file watcher to asynchronously detect changes in source code,
52+
# routes, locales, etc. This feature depends on the listen gem.
53+
# config.file_watcher = ActiveSupport::EventedFileUpdateChecker
4154
end

config/environments/production.rb

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,9 @@
1414
config.consider_all_requests_local = false
1515
config.action_controller.perform_caching = true
1616

17-
# Enable Rack::Cache to put a simple HTTP cache in front of your application
18-
# Add `rack-cache` to your Gemfile before enabling this.
19-
# For large-scale production use, consider using a caching reverse proxy like
20-
# NGINX, varnish or squid.
21-
# config.action_dispatch.rack_cache = true
22-
2317
# Disable serving static files from the `/public` folder by default since
2418
# Apache or NGINX already handles this.
25-
config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present?
19+
config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?
2620

2721
# Compress JavaScripts and CSS.
2822
config.assets.js_compressor = :uglifier
@@ -31,16 +25,20 @@
3125
# Do not fallback to assets pipeline if a precompiled asset is missed.
3226
config.assets.compile = false
3327

34-
# Asset digests allow you to set far-future HTTP expiration dates on all assets,
35-
# yet still be able to expire them through the digest params.
36-
config.assets.digest = true
37-
3828
# `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb
3929

30+
# Enable serving of images, stylesheets, and JavaScripts from an asset server.
31+
# config.action_controller.asset_host = 'http://assets.example.com'
32+
4033
# Specifies the header that your server uses for sending files.
4134
# config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache
4235
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX
4336

37+
# Mount Action Cable outside main process or domain
38+
# config.action_cable.mount_path = nil
39+
# config.action_cable.url = 'wss://example.com/cable'
40+
# config.action_cable.allowed_request_origins = [ 'http://example.com', /http:\/\/example.*/ ]
41+
4442
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
4543
config.force_ssl = true
4644

@@ -49,16 +47,15 @@
4947
config.log_level = :debug
5048

5149
# Prepend all log lines with the following tags.
52-
# config.log_tags = [ :subdomain, :uuid ]
53-
54-
# Use a different logger for distributed setups.
55-
# config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)
50+
config.log_tags = [ :request_id ]
5651

5752
# Use a different cache store in production.
5853
# config.cache_store = :mem_cache_store
5954

60-
# Enable serving of images, stylesheets, and JavaScripts from an asset server.
61-
# config.action_controller.asset_host = 'http://assets.example.com'
55+
# Use a real queuing backend for Active Job (and separate queues per environment)
56+
# config.active_job.queue_adapter = :resque
57+
# config.active_job.queue_name_prefix = "coderdojo_jp_#{Rails.env}"
58+
config.action_mailer.perform_caching = false
6259

6360
# Ignore bad email addresses and do not raise email delivery errors.
6461
# Set this to true and configure the email server for immediate delivery to raise delivery errors.
@@ -74,6 +71,16 @@
7471
# Use default logging formatter so that PID and timestamp are not suppressed.
7572
config.log_formatter = ::Logger::Formatter.new
7673

74+
# Use a different logger for distributed setups.
75+
# require 'syslog/logger'
76+
# config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name')
77+
78+
if ENV["RAILS_LOG_TO_STDOUT"].present?
79+
logger = ActiveSupport::Logger.new(STDOUT)
80+
logger.formatter = config.log_formatter
81+
config.logger = ActiveSupport::TaggedLogging.new(logger)
82+
end
83+
7784
# Do not dump schema after migrations.
7885
config.active_record.dump_schema_after_migration = false
7986
end

config/environments/test.rb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,11 @@
1212
# preloads Rails for running tests, you may have to set it to true.
1313
config.eager_load = false
1414

15-
# Configure static file server for tests with Cache-Control for performance.
16-
config.serve_static_files = true
17-
config.static_cache_control = 'public, max-age=3600'
15+
# Configure public file server for tests with Cache-Control for performance.
16+
config.public_file_server.enabled = true
17+
config.public_file_server.headers = {
18+
'Cache-Control' => 'public, max-age=3600'
19+
}
1820

1921
# Show full error reports and disable caching.
2022
config.consider_all_requests_local = true
@@ -25,15 +27,13 @@
2527

2628
# Disable request forgery protection in test environment.
2729
config.action_controller.allow_forgery_protection = false
30+
config.action_mailer.perform_caching = false
2831

2932
# Tell Action Mailer not to deliver emails to the real world.
3033
# The :test delivery method accumulates sent emails in the
3134
# ActionMailer::Base.deliveries array.
3235
config.action_mailer.delivery_method = :test
3336

34-
# Randomize the order test cases are executed.
35-
config.active_support.test_order = :random
36-
3737
# Print deprecation notices to the stderr.
3838
config.active_support.deprecation = :stderr
3939

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Be sure to restart your server when you modify this file.
2+
3+
# ApplicationController.renderer.defaults.merge!(
4+
# http_host: 'example.org',
5+
# https: false
6+
# )
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
# Be sure to restart your server when you modify this file.
22

3+
# Specify a serializer for the signed and encrypted cookie jars.
4+
# Valid options are :json, :marshal, and :hybrid.
35
Rails.application.config.action_dispatch.cookies_serializer = :json
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Be sure to restart your server when you modify this file.
2+
#
3+
# This file contains migration options to ease your Rails 5.0 upgrade.
4+
#
5+
# Once upgraded flip defaults one by one to migrate to the new default.
6+
#
7+
# Read the Guide for Upgrading Ruby on Rails for more info on each option.
8+
9+
# Enable per-form CSRF tokens. Previous versions had false.
10+
Rails.application.config.action_controller.per_form_csrf_tokens = false
11+
12+
# Enable origin-checking CSRF mitigation. Previous versions had false.
13+
Rails.application.config.action_controller.forgery_protection_origin_check = false
14+
15+
# Make Ruby 2.4 preserve the timezone of the receiver when calling `to_time`.
16+
# Previous versions had false.
17+
ActiveSupport.to_time_preserves_timezone = false
18+
19+
# Require `belongs_to` associations by default. Previous versions had false.
20+
Rails.application.config.active_record.belongs_to_required_by_default = false
21+
22+
# Do not halt callback chains when a callback returns false. Previous versions had true.
23+
ActiveSupport.halt_callback_chains_on_return_false = true

config/initializers/wrap_parameters.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55

66
# Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
77
ActiveSupport.on_load(:action_controller) do
8-
wrap_parameters format: [:json] if respond_to?(:wrap_parameters)
8+
wrap_parameters format: [:json]
99
end
1010

1111
# To enable root element in JSON for ActiveRecord objects.
1212
# ActiveSupport.on_load(:active_record) do
13-
# self.include_root_in_json = true
13+
# self.include_root_in_json = true
1414
# end

0 commit comments

Comments
 (0)