Only take the STATUS configuration from the environment

This allows us to remove the preinitializer-based configuration parsing.
This commit is contained in:
Andy Allan 2019-03-13 17:33:28 +01:00
parent 5eef38a6b6
commit 9af31c2254
4 changed files with 16 additions and 33 deletions

1
config/.gitignore vendored
View file

@ -1,2 +1 @@
application.yml
database.yml database.yml

View file

@ -1,6 +1,21 @@
require_relative "boot" require_relative "boot"
require_relative "preinitializer" # Set the STATUS constant from the environment, if it matches a recognized value
ALLOWED_STATUS = [
:online, # online and operating normally
:api_readonly, # site online but API in read-only mode
:api_offline, # site online but API offline
:database_readonly, # database and site in read-only mode
:database_offline, # database offline with site in emergency mode
:gpx_offline # gpx storage offline
].freeze
status = if ENV["STATUS"] && ALLOWED_STATUS.include?(ENV["STATUS"].to_sym)
ENV["STATUS"].to_sym
else
:online
end
Object.const_set("STATUS", status)
if STATUS == :database_offline if STATUS == :database_offline
require "action_controller/railtie" require "action_controller/railtie"

View file

@ -1,18 +0,0 @@
defaults: &defaults
# Application status - possible values are:
# :online - online and operating normally
# :api_readonly - site online but API in read-only mode
# :api_offline - site online but API offline
# :database_readonly - database and site in read-only mode
# :database_offline - database offline with site in emergency mode
# :gpx_offline - gpx storage offline
status: :online
development:
<<: *defaults
production:
<<: *defaults
test:
<<: *defaults

View file

@ -1,13 +0,0 @@
require "yaml"
env = if defined?(Rake.application) && Rake.application.top_level_tasks.grep(/^(default$|test(:|$))/).any?
"test"
else
ENV["RAILS_ENV"] || "development"
end
config = YAML.load_file(File.expand_path(env == "test" ? "../example.application.yml" : "../application.yml", __FILE__))
config[env].each do |key, value|
Object.const_set(key.upcase, value) unless Object.const_defined?(key.upcase)
end