Only take the STATUS configuration from the environment
authorAndy Allan <git@gravitystorm.co.uk>
Wed, 13 Mar 2019 16:33:28 +0000 (17:33 +0100)
committerAndy Allan <git@gravitystorm.co.uk>
Wed, 13 Mar 2019 17:06:23 +0000 (18:06 +0100)
This allows us to remove the preinitializer-based configuration parsing.

config/.gitignore
config/application.rb
config/example.application.yml [deleted file]
config/preinitializer.rb [deleted file]

index f8580b4..b5649dd 100644 (file)
@@ -1,2 +1 @@
-application.yml
 database.yml
index f05c6fa..2a0547a 100644 (file)
@@ -1,6 +1,21 @@
 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
   require "action_controller/railtie"
diff --git a/config/example.application.yml b/config/example.application.yml
deleted file mode 100644 (file)
index 0b23680..0000000
+++ /dev/null
@@ -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
diff --git a/config/preinitializer.rb b/config/preinitializer.rb
deleted file mode 100644 (file)
index 253f586..0000000
+++ /dev/null
@@ -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