Class: AppBridge::ConnectionConfigValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/app_bridge/connection_config_validator.rb

Overview

Validates connection-config JSON against the bundled JSON Schema.

Constant Summary collapse

SCHEMA_PATH =
File.expand_path(
  "../../ext/app_bridge/docs/connection-config-schema.json",
  __dir__
)

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.schemaObject



23
24
25
# File 'lib/app_bridge/connection_config_validator.rb', line 23

def schema
  @schema ||= JSON.parse(File.read(SCHEMA_PATH))
end

.schemerObject



27
28
29
# File 'lib/app_bridge/connection_config_validator.rb', line 27

def schemer
  @schemer ||= JSONSchemer.schema(schema)
end

.validate(data) ⇒ Object



19
20
21
# File 'lib/app_bridge/connection_config_validator.rb', line 19

def validate(data)
  new.validate(data)
end

.validate!(data) ⇒ Object



15
16
17
# File 'lib/app_bridge/connection_config_validator.rb', line 15

def validate!(data)
  new.validate!(data)
end

Instance Method Details

#validate(data) ⇒ Object



39
40
41
42
# File 'lib/app_bridge/connection_config_validator.rb', line 39

def validate(data)
  parsed = parse_data(data)
  self.class.schemer.validate(parsed).to_a
end

#validate!(data) ⇒ Object



32
33
34
35
36
37
# File 'lib/app_bridge/connection_config_validator.rb', line 32

def validate!(data)
  errors = validate(data)
  return if errors.empty?

  raise AppBridge::ConnectionConfigError, format_errors(errors)
end