Sha256: bbdc80766780bced5ef10511715c22c5d510b9ed1482ecc16df5f96c874e122e

Contents?: true

Size: 1.75 KB

Versions: 22

Compression:

Stored size: 1.75 KB

Contents

# frozen_string_literal: true
# encoding: utf-8

module Mongoid
  module Config

    # Encapsulates logic for getting environment information.
    module Environment
      extend self

      # 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*
      #
      # @example Get the env name.
      #   Environment.env_name
      #
      # @raise [ Errors::NoEnvironment ] If environment name cannot be
      #   determined because none of the sources was set.
      #
      # @return [ String ] The name of the current environment.
      #
      # @since 2.3.0
      # @api public
      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 the yaml from the provided path and return the settings for the
      # specified environment, or for the current Mongoid environment.
      #
      # @example Load the yaml.
      #   Environment.load_yaml("/work/mongoid.yml")
      #
      # @param [ String ] path The location of the file.
      # @param [ String | Symbol ] environment Optional environment name to
      #   override the current Mongoid environment.
      #
      # @return [ Hash ] The settings.
      #
      # @since 2.3.0
      # @api private
      def load_yaml(path, environment = nil)
        env = environment ? environment.to_s : env_name
        YAML.load(ERB.new(File.new(path).read).result)[env]
      end
    end
  end
end

Version data entries

22 entries across 22 versions & 2 rubygems

Version Path
mongoid-7.3.2 lib/mongoid/config/environment.rb
mongoid-7.2.5 lib/mongoid/config/environment.rb
mongoid-7.1.10 lib/mongoid/config/environment.rb
mongoid-7.1.9 lib/mongoid/config/environment.rb
mongoid-7.2.4 lib/mongoid/config/environment.rb
mongoid-7.3.1 lib/mongoid/config/environment.rb
tdiary-5.1.6 vendor/bundle/ruby/2.7.0/gems/mongoid-7.1.7/lib/mongoid/config/environment.rb
mongoid-7.3.0 lib/mongoid/config/environment.rb
mongoid-7.2.3 lib/mongoid/config/environment.rb
mongoid-7.1.8 lib/mongoid/config/environment.rb
mongoid-7.2.2 lib/mongoid/config/environment.rb
mongoid-7.2.1 lib/mongoid/config/environment.rb
mongoid-7.1.7 lib/mongoid/config/environment.rb
mongoid-7.2.0 lib/mongoid/config/environment.rb
mongoid-7.1.6 lib/mongoid/config/environment.rb
mongoid-7.1.5 lib/mongoid/config/environment.rb
mongoid-7.2.0.rc1 lib/mongoid/config/environment.rb
mongoid-7.1.4 lib/mongoid/config/environment.rb
mongoid-7.1.2 lib/mongoid/config/environment.rb
mongoid-7.1.1 lib/mongoid/config/environment.rb