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 one or more required keys."
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 =
[:required_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_FORMAT =
"{:keys => {}, :custom_errors => {}}"
OPTIONS_JSON_HASH_FORMAT =
"{:schema => \"avro shcema\", :custom_errors => {}}"
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



119
120
121
# File 'lib/vert.rb', line 119

def get_error_keys
  pp ERROR_KEY_ENUM
end

#validate(hash, options = nil) ⇒ Object



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

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

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

Returns:

  • (Boolean)


95
96
97
98
99
100
# File 'lib/vert.rb', line 95

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



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

def validate_json(json, options = nil)
  unless options.nil?
    check_options_format(options, OPTIONS_JSON_HASH_FORMAT)
    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)


102
103
104
105
106
107
# File 'lib/vert.rb', line 102

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