Sha256: da5457530b5d8a9d09b9d4e130ff46b820175e6f53a5e586cd115b985252fcfb
Contents?: true
Size: 690 Bytes
Versions: 3
Compression:
Stored size: 690 Bytes
Contents
# frozen_string_literal: true module SoapyBing class ParamGuard class ParamRequiredError < StandardError; end def initialize(local_options, env_namespace: '') @local_options = local_options @env_namespace = env_namespace end def require!(name) local_options.fetch(name, ENV[env_var_name(name)]) || raise(ParamRequiredError, err_msg(name)) end private attr_reader :local_options, :env_namespace def err_msg(name) "#{name} have to be passed explicitly or via ENV['#{env_var_name(name)}']" end def env_var_name(name) (env_namespace.empty? ? name : "#{env_namespace}_#{name}").upcase.tr('-', '_') end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
soapy_bing-1.0.1 | lib/soapy_bing/param_guard.rb |
soapy_bing-1.0.0 | lib/soapy_bing/param_guard.rb |
soapy_bing-0.4.0 | lib/soapy_bing/param_guard.rb |