Class: GitlabInternalEventsCli::SchemaResolver
- Inherits:
-
Object
- Object
- GitlabInternalEventsCli::SchemaResolver
- Defined in:
- lib/gitlab_internal_events_cli/schema_resolver.rb
Instance Method Summary collapse
- #call(uri) ⇒ Object
-
#initialize(base_uri) ⇒ SchemaResolver
constructor
A new instance of SchemaResolver.
Constructor Details
#initialize(base_uri) ⇒ SchemaResolver
Returns a new instance of SchemaResolver.
5 6 7 |
# File 'lib/gitlab_internal_events_cli/schema_resolver.rb', line 5 def initialize(base_uri) @base_uri = base_uri end |
Instance Method Details
#call(uri) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/gitlab_internal_events_cli/schema_resolver.rb', line 9 def call(uri) full_url = uri.to_s.sub('json-schemer://', 'https://') unless full_url.start_with?('http') ref_path = uri.respond_to?(:path) ? uri.path.sub(%r{^/}, '') : uri.to_s full_url = URI.join(@base_uri, ref_path).to_s end schema_content = HttpCache.get(full_url) return nil unless schema_content JSON.parse(schema_content) rescue StandardError nil end |