Sha256: eb429fe7da36e92ad847843c76c00292e25776f16809d49fa5b828e3a8b1edae

Contents?: true

Size: 1.09 KB

Versions: 13

Compression:

Stored size: 1.09 KB

Contents

# typed: ignore
# frozen_string_literal: true

module EML
  class Config
    extend T::Sig

    sig { returns(EML::Environment.class) }
    def environment
      EML::Environment
    end

    sig { params(value: Symbol).void }
    def environment=(value)
      EML::Environment.set(value)
    end

    sig { params(param: Symbol).returns(String) }
    def require(param)
      value = public_send(param)
      return value unless value.nil? || value.empty?

      require_error(param)
    end

    sig { params(param: Symbol).returns(String) }
    def require_parameter(param)
      require(param)
    rescue ArgumentError => e
      message = e.message + "\n" \
        "Alternatively, you can pass dynamic values with your request " \
        "parameters"
      raise ArgumentError, message
    end

    private

    sig { params(param: Symbol).void }
    def require_error(param)
      raise(
        ArgumentError,
        "#{param} is required but hasn't been set.\n" \
          "EML::Config.configuration do |config|\n" +
          %(  config.#{param} = "value") + "\n" \
          "end"
      )
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
eml-3.0.0 lib/eml/config.rb
eml-2.2.0 lib/eml/config.rb
eml-2.1.8 lib/eml/config.rb
eml-2.1.7 lib/eml/config.rb
eml-2.1.6 lib/eml/config.rb
eml-2.1.5 lib/eml/config.rb
eml-2.1.4 lib/eml/config.rb
eml-2.1.3 lib/eml/config.rb
eml-2.1.2 lib/eml/config.rb
eml-2.1.1 lib/eml/config.rb
eml-2.1.0 lib/eml/config.rb
eml-2.0.0 lib/eml/config.rb
eml-1.0.0 lib/eml/config.rb