Sha256: 5c9112d2582340e3e155b4218f84b74722c565bc4bef75d5d8ae7ca710869b8c
Contents?: true
Size: 989 Bytes
Versions: 3
Compression:
Stored size: 989 Bytes
Contents
# -*- encoding : utf-8 -*- module Pacto class MetaSchema attr_accessor :schema, :engine def initialize(engine = JSON::Validator) @schema = File.join(File.dirname(File.expand_path(__FILE__)), '../../resources/contract_schema.json') base_schemas = ['../../resources/draft-03.json', '../../resources/draft-04.json'] validatable = false base_schemas.each do |base_schema| base_schema_file = File.join(File.dirname(File.expand_path(__FILE__)), base_schema) # This has a side-effect of caching local schemas, so we don't # look up json-schemas over HTTP. validatable ||= JSON::Validator.validate(base_schema_file, @schema) end fail 'Could not validate metaschema against any known version of json-schema' unless validatable @engine = engine end def validate(definition) errors = engine.fully_validate(schema, definition) fail InvalidContract, errors unless errors.empty? end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
pacto-0.4.0.rc3 | lib/pacto/meta_schema.rb |
pacto-0.4.0.rc2 | lib/pacto/meta_schema.rb |
pacto-0.4.0.rc1 | lib/pacto/meta_schema.rb |