class SoapyBing::ParamGuard

Attributes

env_namespace[R]
local_options[R]

Public Class Methods

new(local_options, env_namespace: '') click to toggle source
# File lib/soapy_bing/param_guard.rb, line 7
def initialize(local_options, env_namespace: '')
  @local_options = local_options
  @env_namespace = env_namespace
end

Public Instance Methods

require!(name) click to toggle source
# File lib/soapy_bing/param_guard.rb, line 12
def require!(name)
  local_options.fetch(name, ENV[env_var_name(name)]) || raise(ParamRequiredError, err_msg(name))
end

Private Instance Methods

env_var_name(name) click to toggle source
# File lib/soapy_bing/param_guard.rb, line 24
def env_var_name(name)
  (env_namespace.empty? ? name : "#{env_namespace}_#{name}").upcase.tr('-', '_')
end
err_msg(name) click to toggle source
# File lib/soapy_bing/param_guard.rb, line 20
def err_msg(name)
  "#{name} have to be passed explicitly or via ENV['#{env_var_name(name)}']"
end