The purpose of the lib folder is to have code that doesn't necessary belong in the application but can be shared with other applications. However, we don't have other applications and, if we did, the way to share code between them would be using a gem or even a git submodule. So having both the `app/` and the `lib/` folders is confusing IMHO, and it causes unnecessary problems with autoloading. So we're moving the `lib/` folder to `app/lib/`. Originally, some of these files were in the `app/services/` folder and then they were moved to the `lib/` folder. We're using `app/lib/` instead of `app/services/` so the upgrade is less confusing. There's an exception, though. The `OmniAuth::Strategies::Wordpress` class needs to be available in the Devise initializer. Since this is an initializer and trying to autoload a class here will be problematic when switching to Zeitwerk, we'll keep the `require` clause on top of the Devise initializer in order to load the file and so it will be loaded even if it isn't in the autoload paths anymore.
134 lines
5.8 KiB
Ruby
134 lines
5.8 KiB
Ruby
require "active_support/core_ext/integer/time"
|
|
|
|
Rails.application.configure do
|
|
# Settings specified here will take precedence over those in config/application.rb.
|
|
|
|
# Code is not reloaded between requests.
|
|
config.cache_classes = true
|
|
|
|
# Eager load code on boot. This eager loads most of Rails and
|
|
# your application in memory, allowing both threaded web servers
|
|
# and those relying on copy on write to perform better.
|
|
# Rake tasks automatically ignore this option for performance.
|
|
config.eager_load = true
|
|
|
|
# Full error reports are disabled and caching is turned on.
|
|
config.consider_all_requests_local = false
|
|
config.action_controller.perform_caching = true
|
|
|
|
# Ensures that a master key has been made available in either ENV["RAILS_MASTER_KEY"]
|
|
# or in config/master.key. This key is used to decrypt credentials (and other encrypted files).
|
|
# config.require_master_key = true
|
|
|
|
# Disable serving static files from the `/public` folder by default since
|
|
# Apache or NGINX already handles this.
|
|
config.public_file_server.enabled = ENV["RAILS_SERVE_STATIC_FILES"].present?
|
|
|
|
# Compress JavaScripts and CSS.
|
|
config.assets.js_compressor = Uglifier.new(harmony: true)
|
|
# config.assets.css_compressor = :sass
|
|
|
|
# Do not fallback to assets pipeline if a precompiled asset is missed.
|
|
config.assets.compile = false
|
|
|
|
# Enable serving of images, stylesheets, and JavaScripts from an asset server.
|
|
# config.asset_host = "http://assets.example.com"
|
|
|
|
# Specifies the header that your server uses for sending files.
|
|
# config.action_dispatch.x_sendfile_header = "X-Sendfile" # for Apache
|
|
# config.action_dispatch.x_sendfile_header = "X-Accel-Redirect" # for NGINX
|
|
|
|
# Mount Action Cable outside main process or domain.
|
|
# config.action_cable.mount_path = nil
|
|
# config.action_cable.url = "wss://example.com/cable"
|
|
# config.action_cable.allowed_request_origins = [ "http://example.com", /http:\/\/example.*/ ]
|
|
|
|
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
|
|
# Configure force_ssl in secrets.yml
|
|
config.force_ssl = Rails.application.secrets.force_ssl
|
|
|
|
# Include generic and useful information about system operation, but avoid logging too much
|
|
# information to avoid inadvertent exposure of personally identifiable information (PII).
|
|
config.log_level = :warn
|
|
|
|
# Prepend all log lines with the following tags.
|
|
config.log_tags = [:request_id]
|
|
|
|
# Use a different cache store in production.
|
|
config.cache_store = :mem_cache_store, { namespace: proc { Tenant.current_schema }}
|
|
|
|
# Use a real queuing backend for Active Job (and separate queues per environment).
|
|
# config.active_job.queue_adapter = :resque
|
|
# config.active_job.queue_name_prefix = "consul_#{Rails.env}"
|
|
|
|
config.action_mailer.perform_caching = false
|
|
|
|
# Ignore bad email addresses and do not raise email delivery errors.
|
|
# Set this to true and configure the email server for immediate delivery to raise delivery errors.
|
|
config.action_mailer.raise_delivery_errors = true
|
|
config.action_mailer.default_url_options = { host: Rails.application.secrets.server_name }
|
|
|
|
# Configure your SMTP service credentials in secrets.yml
|
|
if Rails.application.secrets.smtp_settings
|
|
config.action_mailer.delivery_method = Rails.application.secrets.mailer_delivery_method || :smtp
|
|
config.action_mailer.smtp_settings = Rails.application.secrets.smtp_settings
|
|
end
|
|
|
|
# Disable locale fallbacks for I18n
|
|
# (prevents using fallback locales set in application.rb).
|
|
# config.i18n.fallbacks = false
|
|
|
|
# Send deprecation notices to registered listeners.
|
|
config.active_support.deprecation = :notify
|
|
|
|
# Log disallowed deprecations.
|
|
config.active_support.disallowed_deprecation = :log
|
|
|
|
# Tell Active Support which deprecation messages to disallow.
|
|
config.active_support.disallowed_deprecation_warnings = []
|
|
|
|
# Use default logging formatter so that PID and timestamp are not suppressed.
|
|
config.log_formatter = ::Logger::Formatter.new
|
|
|
|
# Rotate logger
|
|
logger = ActiveSupport::Logger.new(config.default_log_file, "daily")
|
|
logger.formatter = config.log_formatter
|
|
config.logger = ActiveSupport::TaggedLogging.new(logger)
|
|
|
|
# Use a different logger for distributed setups.
|
|
# require "syslog/logger"
|
|
# config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new "app-name")
|
|
|
|
if ENV["RAILS_LOG_TO_STDOUT"].present?
|
|
logger = ActiveSupport::Logger.new(STDOUT)
|
|
logger.formatter = config.log_formatter
|
|
config.logger = ActiveSupport::TaggedLogging.new(logger)
|
|
end
|
|
|
|
# Do not dump schema after migrations.
|
|
config.active_record.dump_schema_after_migration = false
|
|
|
|
# Inserts middleware to perform automatic connection switching.
|
|
# The `database_selector` hash is used to pass options to the DatabaseSelector
|
|
# middleware. The `delay` is used to determine how long to wait after a write
|
|
# to send a subsequent read to the primary.
|
|
#
|
|
# The `database_resolver` class is used by the middleware to determine which
|
|
# database is appropriate to use based on the time delay.
|
|
#
|
|
# The `database_resolver_context` class is used by the middleware to set
|
|
# timestamps for the last write to the primary. The resolver uses the context
|
|
# class timestamps to determine how long to wait before reading from the
|
|
# replica.
|
|
#
|
|
# By default Rails will store a last write timestamp in the session. The
|
|
# DatabaseSelector middleware is designed as such you can define your own
|
|
# strategy for connection switching and pass that into the middleware through
|
|
# these configuration options.
|
|
# config.active_record.database_selector = { delay: 2.seconds }
|
|
# config.active_record.database_resolver = ActiveRecord::Middleware::DatabaseSelector::Resolver
|
|
# config.active_record.database_resolver_context = ActiveRecord::Middleware::DatabaseSelector::Resolver::Session
|
|
end
|
|
|
|
require Rails.root.join("config", "environments", "custom", "production")
|