Sha256: 98bb91c18fd625b0cfa52b30a19a250ade1e3fcb14d7ff3684475fdb668ab3b3

Contents?: true

Size: 805 Bytes

Versions: 17

Compression:

Stored size: 805 Bytes

Contents

# frozen_string_literal: true

require "dry/core/constants"

module Hanami
  class Settings
    # The default store for {Hanami::Settings}, loading setting values from `ENV`.
    #
    # If your app loads the dotenv gem, then `ENV` will also be populated from various `.env` files when
    # you subclass `Hanami::App`.
    #
    # @since 2.0.0
    # @api private
    class EnvStore
      NO_ARG = Object.new.freeze

      attr_reader :store, :hanami_env

      def initialize(store: ENV, hanami_env: Hanami.env)
        @store = store
        @hanami_env = hanami_env
      end

      def fetch(name, default_value = NO_ARG, &block)
        name = name.to_s.upcase
        args = default_value.eql?(NO_ARG) ? [name] : [name, default_value]

        store.fetch(*args, &block)
      end
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
hanami-2.2.1 lib/hanami/settings/env_store.rb
hanami-2.2.0 lib/hanami/settings/env_store.rb
hanami-2.2.0.rc1 lib/hanami/settings/env_store.rb
hanami-2.2.0.beta2 lib/hanami/settings/env_store.rb
hanami-2.2.0.beta1 lib/hanami/settings/env_store.rb
hanami-2.1.0 lib/hanami/settings/env_store.rb
hanami-2.1.0.rc3 lib/hanami/settings/env_store.rb
hanami-2.1.0.rc2 lib/hanami/settings/env_store.rb
hanami-2.1.0.rc1 lib/hanami/settings/env_store.rb
hanami-2.1.0.beta2.1 lib/hanami/settings/env_store.rb
hanami-2.1.0.beta2 lib/hanami/settings/env_store.rb
hanami-2.1.0.beta1 lib/hanami/settings/env_store.rb
hanami-2.0.3 lib/hanami/settings/env_store.rb
hanami-2.0.2 lib/hanami/settings/env_store.rb
hanami-2.0.1 lib/hanami/settings/env_store.rb
hanami-2.0.0 lib/hanami/settings/env_store.rb
hanami-2.0.0.rc1 lib/hanami/settings/env_store.rb