Module: ServiceSkeleton::ConfigVariables

Defined in:
lib/service_skeleton/config_variables.rb

Instance Method Summary collapse

Instance Method Details

#boolean(var_name, default: UNDEFINED, sensitive: false) ⇒ Object



28
29
30
# File 'lib/service_skeleton/config_variables.rb', line 28

def boolean(var_name, default: UNDEFINED, sensitive: false)
  register_variable(var_name, ConfigVariable::Boolean, default: default, sensitive: sensitive)
end

#enum(var_name, values:, default: UNDEFINED, sensitive: false) ⇒ Object



32
33
34
35
36
37
38
39
# File 'lib/service_skeleton/config_variables.rb', line 32

def enum(var_name, values:, default: UNDEFINED, sensitive: false)
  unless values.is_a?(Hash) || values.is_a?(Array)
    raise ArgumentError,
          "values option to enum must be a hash or array"
  end

  register_variable(var_name, ConfigVariable::Enum, default: default, sensitive: sensitive, values: values)
end

#float(var_name, default: UNDEFINED, sensitive: false, range: -Float::INFINITY..Float::INFINITY) ⇒ Object



41
42
43
# File 'lib/service_skeleton/config_variables.rb', line 41

def float(var_name, default: UNDEFINED, sensitive: false, range: -Float::INFINITY..Float::INFINITY)
  register_variable(var_name, ConfigVariable::Float, default: default, sensitive: sensitive, range: range)
end

#integer(var_name, default: UNDEFINED, sensitive: false, range: -Float::INFINITY..Float::INFINITY) ⇒ Object



45
46
47
# File 'lib/service_skeleton/config_variables.rb', line 45

def integer(var_name, default: UNDEFINED, sensitive: false, range: -Float::INFINITY..Float::INFINITY)
  register_variable(var_name, ConfigVariable::Integer, default: default, sensitive: sensitive, range: range)
end

#kv_list(var_name, default: UNDEFINED, sensitive: false, key_pattern: /\A#{var_name}_(.*)\z/) ⇒ Object



49
50
51
# File 'lib/service_skeleton/config_variables.rb', line 49

def kv_list(var_name, default: UNDEFINED, sensitive: false, key_pattern: /\A#{var_name}_(.*)\z/)
  register_variable(var_name, ConfigVariable::KVList, default: default, sensitive: sensitive, key_pattern: key_pattern)
end

#path_list(var_name, default: UNDEFINED, sensitive: false) ⇒ Object



53
54
55
# File 'lib/service_skeleton/config_variables.rb', line 53

def path_list(var_name, default: UNDEFINED, sensitive: false)
  register_variable(var_name, ConfigVariable::PathList, default: default, sensitive: sensitive)
end

#register_variable(name, klass, **opts) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
# File 'lib/service_skeleton/config_variables.rb', line 16

def register_variable(name, klass, **opts)
  if opts[:default] == UNDEFINED
    opts.delete(:default)
  end

  registered_variables << {
    name: name,
    class: klass,
    opts: opts,
  }
end

#registered_variablesObject



12
13
14
# File 'lib/service_skeleton/config_variables.rb', line 12

def registered_variables
  @registered_variables ||= []
end

#string(var_name, default: UNDEFINED, sensitive: false, match: nil) ⇒ Object



57
58
59
# File 'lib/service_skeleton/config_variables.rb', line 57

def string(var_name, default: UNDEFINED, sensitive: false, match: nil)
  register_variable(var_name, ConfigVariable::String, default: default, sensitive: sensitive, match: match)
end

#url(var_name, default: UNDEFINED, sensitive: false) ⇒ Object



61
62
63
# File 'lib/service_skeleton/config_variables.rb', line 61

def url(var_name, default: UNDEFINED, sensitive: false)
  register_variable(var_name, ConfigVariable::URL, default: default, sensitive: sensitive)
end

#yaml_file(var_name, default: UNDEFINED, sensitive: false, klass: nil) ⇒ Object



65
66
67
# File 'lib/service_skeleton/config_variables.rb', line 65

def yaml_file(var_name, default: UNDEFINED, sensitive: false, klass: nil)
  register_variable(var_name, ConfigVariable::YamlFile, default: default, sensitive: sensitive, klass: klass)
end