Sha256: bdbd20a6392ace86718a3db83b700b8ba3746d112a045cb7ebafe3b91eb39e96
Contents?: true
Size: 658 Bytes
Versions: 4
Compression:
Stored size: 658 Bytes
Contents
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)]) || fail(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
4 entries across 4 versions & 1 rubygems