Module: HeapScope::Schema
- Defined in:
- lib/heapscope/schema.rb
Overview
Validates versioned report JSON payloads.
Constant Summary collapse
- REQUIRED_ROOT =
%i[schema_version heapscope_version].freeze
Class Method Summary collapse
Class Method Details
.valid?(data) ⇒ Boolean
21 22 23 24 25 26 |
# File 'lib/heapscope/schema.rb', line 21 def valid?(data) validate!(data) true rescue InvalidReportError false end |
.validate!(data) ⇒ Object
10 11 12 13 14 15 16 17 18 19 |
# File 'lib/heapscope/schema.rb', line 10 def validate!(data) data = data.transform_keys(&:to_sym) if data.respond_to?(:transform_keys) missing = REQUIRED_ROOT.reject { |k| data.key?(k) } raise InvalidReportError, "Missing keys: #{missing.join(', ')}" unless missing.empty? version = data[:schema_version].to_i raise InvalidReportError, "Unsupported schema_version=#{version}" if version < 1 || version > SCHEMA_VERSION true end |