lib/adiwg/mdtranslator/readers/mdJson/mdJson_validator.rb in adiwg-mdtranslator-1.4.0 vs lib/adiwg/mdtranslator/readers/mdJson/mdJson_validator.rb in adiwg-mdtranslator-2.0.0rc2

- old
+ new

@@ -1,56 +1,55 @@ -# Get minor version of ADIwg JSON V1 +# Get minor version of ADIwg mdJson 2.x # History: -# Stan Smith 2014-07-09 original script -# Stan Smith 2014-07-21 added json structure validation method -# Stan Smith 2014-08-21 parsed json-schema validation message to readable text -# Stan Smith 2014-09-26 added processing of minor release numbers -# Stan Smith 2014-12-01 changed adiwgJson to mdJson in version name check -# Stan Smith 2014-12-03 changed class name to MdJsonValidation from AdiwgJsonValidation -# Stan Smith 2014-12-11 added namespace +# Stan Smith 2017-02-22 refactor for mdJson/mdTranslator 2.0 # Stan Smith 2015-06-22 replace global ($response) with passed in object (responseObj) +# Stan Smith 2014-12-11 added namespace +# Stan Smith 2014-12-03 changed class name to MdJsonValidation from AdiwgJsonValidation +# Stan Smith 2014-12-01 changed adiwgJson to mdJson in version name check +# Stan Smith 2014-09-26 added processing of minor release numbers +# Stan Smith 2014-08-21 parsed json-schema validation message to readable text +# Stan Smith 2014-07-21 added json structure validation method +# Stan Smith 2014-07-09 original script require 'json' require 'json-schema' require 'adiwg-mdjson_schemas' -# temporary json-schema patch -# waiting for rubygem json-schema patch -require 'adiwg/mdtranslator/readers/mdJson/validator.rb' module ADIWG module Mdtranslator module Readers module MdJson # validate json against the adiwg-json_schemas - # only one schema version is supported at this time + # only a single schema version is supported at this time def self.validate(file, responseObj) + bStrict = false + if responseObj[:readerValidationLevel] == 'strict' + bStrict = true + end + ADIWG::MdjsonSchemas::Utils.load_schemas(false) + begin - schema = ADIWG::MdjsonSchemas::Utils.schema_path - aValErrs = Array.new - if responseObj[:readerValidationLevel] == 'strict' - aValErrs = JSON::Validator.fully_validate(schema, file, :strict => true, :errors_as_objects => true) - elsif responseObj[:readerValidationLevel] == 'normal' - aValErrs = JSON::Validator.fully_validate(schema, file, :errors_as_objects => true) - end + aErrors = [] + aErrors = JSON::Validator.fully_validate('schema.json', file, :strict=>bStrict) - if aValErrs.length > 0 + if aErrors.length > 0 responseObj[:readerValidationPass] = false responseObj[:readerValidationMessages] << 'mdJson schema validation Failed - see following message(s):\n' - responseObj[:readerValidationMessages] << aValErrs + responseObj[:readerValidationMessages] << aErrors return end + rescue JSON::Schema::ValidationError responseObj[:readerValidationPass] = false responseObj[:readerValidationMessages] << 'mdJson schema validation Failed - see following message(s):\n' responseObj[:readerValidationMessages] << $!.message return end - responseObj[:readerValidationPass] = true end end end end