Module: GitlabInternalEventsCli::Helpers::SchemaLoader

Defined in:
lib/gitlab_internal_events_cli/helpers/schema_loader.rb

Overview

Helper module for loading JSON schemas with caching and reference resolution

Class Method Summary collapse

Class Method Details

.load(schema_url, schema_type) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/gitlab_internal_events_cli/helpers/schema_loader.rb', line 7

def self.load(schema_url, schema_type)
  schema_json = HttpCache.get(schema_url)
  return nil unless schema_json

  base_uri = "#{File.dirname(schema_url)}/"

  resolver = SchemaResolver.new(base_uri)
  JSONSchemer.schema(
    JSON.parse(schema_json),
    base_uri: URI(base_uri),
    ref_resolver: resolver
  )
rescue StandardError => e
  warn "Failed to load #{schema_type} schema: #{e.message}"
  nil
end