Module: Mongoid::Config::Environment
Relationships & Source Files | |
Defined in: | lib/mongoid/config/environment.rb |
Overview
Encapsulates logic for getting environment information.
Instance Method Summary
-
#env_name ⇒ String
Get the name of the environment that
::Mongoid
is running under. -
#load_yaml(path, environment = nil) ⇒ Hash
Internal use only
Internal use only
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
# 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 for internal use only.
Load the yaml from the provided path and return the settings for the specified environment, or for the current ::Mongoid
environment.
# 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