Module: Mongoid::Config::Environment
Overview
Encapsulates logic for getting environment information.
Instance Method Summary collapse
-
#env_name ⇒ String
Get the name of the environment that Mongoid is running under.
-
#load_yaml(path, environment = nil) ⇒ Hash
private
Load the yaml from the provided path and return the settings for the specified environment, or for the current Mongoid environment.
Instance Method Details
#env_name ⇒ String
Get the name of the environment that Mongoid is running under.
Uses the following sources in order:
-
If
::Rails
is defined,Rails.env
. -
If
::Sinatra
is defined,Sinatra::Base.environment
. -
RACK_ENV
-
+MONGOID_ENV*
27 28 29 30 31 32 33 34 35 |
# File 'lib/mongoid/config/environment.rb', line 27 def env_name if defined?(::Rails) return ::Rails.env end if defined?(::Sinatra) return ::Sinatra::Base.environment.to_s end ENV["RACK_ENV"] || ENV["MONGOID_ENV"] or raise Errors::NoEnvironment end |
#load_yaml(path, environment = nil) ⇒ Hash
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Load the yaml from the provided path and return the settings for the specified environment, or for the current Mongoid environment.
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/mongoid/config/environment.rb', line 50 def load_yaml(path, environment = nil) env = environment ? environment.to_s : env_name contents = File.read(path) if contents.empty? raise Mongoid::Errors::EmptyConfigFile.new(path) end # These are the classes that can be used in a Mongoid # configuration file in addition to standard YAML types. permitted_classes = [ # Symbols occur as values for read preference, for example. Symbol, # BSON::Binary occur as keyId values for FLE (more precisely, # the keyIds are UUIDs). BSON::Binary, ] result = ERB.new(contents).result data = YAML.safe_load(result, permitted_classes: permitted_classes, aliases: true) unless data.is_a?(Hash) raise Mongoid::Errors::InvalidConfigFile.new(path) end data[env] end |