Module: Vert

Extended by:
Vert
Included in:
Vert
Defined in:
lib/vert.rb

Constant Summary collapse

InputError =
Class.new(StandardError)
ValidationError =
Class.new(StandardError)
NOT_A_HASH_ERROR =

error messages for hash validation

"Not a hash."
NOT_A_HASH_ERROR_KEY =
:not_a_hash
EMPTY_ERROR =
"The hash is empty."
EMPTY_ERROR_KEY =
:empty
ABSENT_KEY_ERROR =
"The data does not contain the following key/s"
ABSENT_KEY_ERROR_KEY =
:absent_key
ARRAY_TYPE_ERROR =
"The following key/s do not have Array type values."
ARRAY_TYPE_ERROR_KEY =
:array_type
HASH_TYPE_ERROR =
"The following key/s do not have Hash type values."
HASH_TYPE_ERROR_KEY =
:hash_type
ARRAY_EMPTY_ERROR =
"The following array key/s are empty."
ARRAY_EMPTY_ERROR_KEY =
:array_empty
HASH_EMPTY_ERROR =
"The following hash key/s are empty."
HASH_EMPTY_ERROR_KEY =
:hash_empty
NOT_A_STRING_ERROR =

error messages for json validation

"Not a JSON string."
NOT_A_STRING_ERROR_KEY =
:not_a_string
EMPTY_JSON_ERROR =
"The JSON string is empty."
EMPTY_JSON_ERROR_KEY =
:empty_json
EMPTY_JSON_OBJECT_ERROR =
"The JSON object is empty."
EMPTY_JSON_OBJECT_ERROR_KEY =
:empty_json_object
MALFORMED_JSON_ERROR =
"The JSON string is malformed."
MALFORMED_JSON_ERROR_KEY =
:malformed_json
INVALID_AVRO_SCHEMA_ERROR =

error messages for avro verification

"The avro schema is invalid."
INVALID_AVRO_SCHEMA_ERROR_KEY =
:invalid_avro_schema
INVALID_AVRO_DATUM_ERROR =
"The JSON provided is not an instance of the schema:"
INVALID_AVRO_DATUM_ERROR_KEY =
:invalid_avro_datum
TYPE_ENUM =

Enums

{array_keys: Array, hash_keys: Hash}
OPTIONS_HASH_ENUM =
[:keys, :custom_errors]
OPTIONS_JSON_HASH_ENUM =
[:schema, :custom_errors]
KEYS_ENUM =
[:value_keys, :array_keys, :hash_keys]
ERROR_KEY_ENUM =
{
  NOT_A_HASH_ERROR_KEY => NOT_A_HASH_ERROR,
  EMPTY_ERROR_KEY => EMPTY_ERROR,
  ABSENT_KEY_ERROR_KEY =>  ABSENT_KEY_ERROR,
  ARRAY_TYPE_ERROR_KEY =>  ARRAY_TYPE_ERROR,
  HASH_TYPE_ERROR_KEY => HASH_TYPE_ERROR,
  ARRAY_EMPTY_ERROR_KEY => ARRAY_EMPTY_ERROR,
  HASH_EMPTY_ERROR_KEY => HASH_EMPTY_ERROR,
  NOT_A_STRING_ERROR_KEY => NOT_A_STRING_ERROR,
  EMPTY_JSON_ERROR_KEY => EMPTY_JSON_ERROR,
  EMPTY_JSON_OBJECT_ERROR_KEY => EMPTY_JSON_OBJECT_ERROR,
  MALFORMED_JSON_ERROR_KEY => MALFORMED_JSON_ERROR,
  INVALID_AVRO_SCHEMA_ERROR_KEY => INVALID_AVRO_SCHEMA_ERROR,
  INVALID_AVRO_DATUM_ERROR_KEY => INVALID_AVRO_DATUM_ERROR
}
OPTIONS_HASH_EMPTY =

input validation

"The options hash must contain keys"
OPTIONS_NOT_A_HASH =
"The options parameter must be a hash"
OPTIONS_HASH_MISSING_VALID_KEYS =
"The options hash contains no valid keys. The valid symbol keys are - "
KEYS_HASH_MISSING_VALID_KEYS =
"The options hash contains no valid keys for the :keys hash. The valid symbol keys are - "
CUSTOM_ERRORS_HASH_MISSING_VALID_KEYS =
"The options hash contains no valid keys for the :custom_errors hash. The valid symbol keys are - "
SCHEMA_NOT_A_STRING =
"The options hash contains a :schema value which is not a string."
SCHEMA_NOT_JSON =
"The options hash contains a :schema value which is not a JSON string"

Instance Method Summary collapse

Instance Method Details

#get_error_keysObject



117
118
119
# File 'lib/vert.rb', line 117

def get_error_keys
  pp ERROR_KEY_ENUM
end

#validate(hash, options = nil) ⇒ Object



83
84
85
86
87
88
89
90
91
# File 'lib/vert.rb', line 83

def validate(hash, options = nil) 
  unless options.nil?
    check_options_format(options)
    check_options(options)
  end
  test_validations(hash, options)
rescue InputError => exception
  build_error_output(exception) 
end

#validate?(hash, options = nil) ⇒ Boolean

Returns:

  • (Boolean)


93
94
95
96
97
98
# File 'lib/vert.rb', line 93

def validate?(hash, options = nil)
  check_options(options) unless options.nil?
  test_validations(hash, options).nil? ? true : false 
rescue InputError => exception
  false
end

#validate_json(json, options = nil) ⇒ Object



107
108
109
110
111
112
113
114
115
# File 'lib/vert.rb', line 107

def validate_json(json, options = nil)
  unless options.nil?
    check_options_format(options)
    check_json_options(options) 
  end
  test_validations_json(json, options)
rescue InputError => exception
  build_error_output(exception)
end

#validate_json?(json, options = nil) ⇒ Boolean

Returns:

  • (Boolean)


100
101
102
103
104
105
# File 'lib/vert.rb', line 100

def validate_json?(json, options = nil)
  check_json_options(options) unless options.nil?
  validate_json(json, options).nil? ? true : false 
rescue InputError => exception
  false
end