Sha256: afe28a9462661375f3fb63430f5fdafe6906c0f2f2c6d716f5a0899264af832a

Contents?: true

Size: 613 Bytes

Versions: 2

Compression:

Stored size: 613 Bytes

Contents

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_schema = File.join(File.dirname(File.expand_path(__FILE__)), '../../resources/draft-03.json')
      JSON::Validator.validate!(@base_schema, @schema)
      @engine = engine
    end

    def validate(definition)
      errors = engine.fully_validate(schema, definition, :version => :draft3)
      unless errors.empty?
        fail InvalidContract, errors
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pacto-0.3.1 lib/pacto/meta_schema.rb
pacto-0.3.0 lib/pacto/meta_schema.rb