Class: Philiprehberger::EnvValidator::Schema

Inherits:
Object
  • Object
show all
Defined in:
lib/philiprehberger/env_validator/schema.rb

Overview

Defines the schema for environment variable validation.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeSchema

Returns a new instance of Schema.



9
10
11
# File 'lib/philiprehberger/env_validator/schema.rb', line 9

def initialize
  @definitions = {}
end

Instance Attribute Details

#definitionsObject (readonly)

Returns the value of attribute definitions.



7
8
9
# File 'lib/philiprehberger/env_validator/schema.rb', line 7

def definitions
  @definitions
end

Instance Method Details

#array(name, item_type: :string, separator: ',', required: false, default: nil) ⇒ void

This method returns an undefined value.

Define an array variable parsed from a delimited string.

The ENV value is split on ‘separator`, each element is stripped of surrounding whitespace, and each element is cast to `item_type` using the same type caster the other schema methods use.

Parameters:

  • name (Symbol, String)

    the ENV variable name

  • item_type (Symbol) (defaults to: :string)

    element type (:string, :integer, :float, :boolean)

  • separator (String) (defaults to: ',')

    delimiter between elements (default: ‘,’)

  • required (Boolean) (defaults to: false)

    whether the variable is required

  • default (Array, nil) (defaults to: nil)

    default value if not set



68
69
70
71
72
73
74
75
76
77
# File 'lib/philiprehberger/env_validator/schema.rb', line 68

def array(name, item_type: :string, separator: ',', required: false, default: nil)
  @definitions[name.to_s] = {
    type: :array,
    item_type: item_type,
    separator: separator,
    required: required,
    default: default,
    choices: nil
  }
end

#boolean(name, required: false, default: nil, choices: nil) ⇒ void

This method returns an undefined value.

Define a boolean variable.

Parameters:

  • name (Symbol, String)

    the ENV variable name

  • required (Boolean) (defaults to: false)

    whether the variable is required

  • default (Boolean, nil) (defaults to: nil)

    default value if not set

  • choices (Array, nil) (defaults to: nil)

    allowed values



52
53
54
# File 'lib/philiprehberger/env_validator/schema.rb', line 52

def boolean(name, required: false, default: nil, choices: nil)
  @definitions[name.to_s] = { type: :boolean, required: required, default: default, choices: choices }
end

#float(name, required: false, default: nil, choices: nil) ⇒ void

This method returns an undefined value.

Define a float variable.

Parameters:

  • name (Symbol, String)

    the ENV variable name

  • required (Boolean) (defaults to: false)

    whether the variable is required

  • default (Float, nil) (defaults to: nil)

    default value if not set

  • choices (Array, nil) (defaults to: nil)

    allowed values



41
42
43
# File 'lib/philiprehberger/env_validator/schema.rb', line 41

def float(name, required: false, default: nil, choices: nil)
  @definitions[name.to_s] = { type: :float, required: required, default: default, choices: choices }
end

#integer(name, required: false, default: nil, choices: nil) ⇒ void

This method returns an undefined value.

Define an integer variable.

Parameters:

  • name (Symbol, String)

    the ENV variable name

  • required (Boolean) (defaults to: false)

    whether the variable is required

  • default (Integer, nil) (defaults to: nil)

    default value if not set

  • choices (Array, nil) (defaults to: nil)

    allowed values



30
31
32
# File 'lib/philiprehberger/env_validator/schema.rb', line 30

def integer(name, required: false, default: nil, choices: nil)
  @definitions[name.to_s] = { type: :integer, required: required, default: default, choices: choices }
end

#string(name, required: false, default: nil, choices: nil) ⇒ void

This method returns an undefined value.

Define a string variable.

Parameters:

  • name (Symbol, String)

    the ENV variable name

  • required (Boolean) (defaults to: false)

    whether the variable is required

  • default (String, nil) (defaults to: nil)

    default value if not set



19
20
21
# File 'lib/philiprehberger/env_validator/schema.rb', line 19

def string(name, required: false, default: nil, choices: nil)
  @definitions[name.to_s] = { type: :string, required: required, default: default, choices: choices }
end