lib/adiwg/mdtranslator/readers/mdJson/mdJson_reader.rb in adiwg-mdtranslator-2.0.0rc11 vs lib/adiwg/mdtranslator/readers/mdJson/mdJson_reader.rb in adiwg-mdtranslator-2.0.0rc13
- old
+ new
@@ -1,22 +1,22 @@
# mdJson reader - process and direct mdJson ingest to internal data structure
# History:
-# Stan Smith 2016-11-12 refactor for mdTranslator 2.0
-# Stan Smith 2016-10-09 modify 'findContact' to also return contact index and type
-# Stan Smith 2016-10-07 refactored 'readerModule' to remove mdJson version checking
-# Stan Smith 2015-07-14 added support for mdJson version numbers
-# Stan Smith 2015-07-14 refactored to remove global namespace constants
-# Stan Smith 2015-06-22 replace global ($response) with passed in object (hResponseObj)
-# Stan Smith 2015-06-12 added method to lookup contact in contact array
-# Stan Smith 2014-12-11 refactored to handle namespacing readers and writers
-# Stan Smith 2014-12-03 changed class name to MdJsonReader from AdiwgJsonReader
-# Stan Smith 2014-12-01 add data dictionary
-# Stan Smith 2014-08-18 add json name/version to internal object
-# Stan Smith 2014-07-08 moved json schema version testing to 'adiwg_1_get_version'
-# Stan Smith 2014-07-03 resolve require statements using Mdtranslator.reader_module
-# Stan Smith 2014-06-05 capture an test json version
+# Stan Smith 2016-11-12 refactor for mdTranslator 2.0
+# Stan Smith 2016-10-09 modify 'findContact' to also return contact index and type
+# Stan Smith 2016-10-07 refactored 'readerModule' to remove mdJson version checking
+# Stan Smith 2015-07-14 added support for mdJson version numbers
+# Stan Smith 2015-07-14 refactored to remove global namespace constants
+# Stan Smith 2015-06-22 replace global ($response) with passed in object (hResponseObj)
+# Stan Smith 2015-06-12 added method to lookup contact in contact array
+# Stan Smith 2014-12-11 refactored to handle namespacing readers and writers
+# Stan Smith 2014-12-03 changed class name to MdJsonReader from AdiwgJsonReader
+# Stan Smith 2014-12-01 add data dictionary
+# Stan Smith 2014-08-18 add json name/version to internal object
+# Stan Smith 2014-07-08 moved json schema version testing to 'adiwg_1_get_version'
+# Stan Smith 2014-07-03 resolve require statements using Mdtranslator.reader_module
+# Stan Smith 2014-06-05 capture an test json version
# Stan Smith 2014-04-23 add json schema version to internal object
# Stan Smith 2013-08-23 split out metadata to module_metadata
# Stan Smith 2013-08-19 split out contacts to module_contacts
# Stan Smith 2013-08-09 original script
@@ -24,99 +24,99 @@
require_relative 'mdJson_validator'
require_relative 'version'
require_relative 'modules/module_mdJson'
module ADIWG
- module Mdtranslator
- module Readers
- module MdJson
+ module Mdtranslator
+ module Readers
+ module MdJson
- def self.readFile(file, hResponseObj)
+ def self.readFile(file, hResponseObj)
- # parse mdJson file
- begin
- hMdJson = JSON.parse(file)
- rescue JSON::JSONError => err
- hResponseObj[:readerStructureMessages] << 'Parsing mdJson Failed - see following message(s):\n'
- hResponseObj[:readerStructureMessages] << err.to_s.slice(0,300)
- hResponseObj[:readerStructurePass] = false
- return {}
- end
+ # parse mdJson file
+ begin
+ hMdJson = JSON.parse(file)
+ rescue JSON::JSONError => err
+ hResponseObj[:readerStructureMessages] << 'Parsing mdJson Failed - see following message(s):\n'
+ hResponseObj[:readerStructureMessages] << err.to_s.slice(0, 300)
+ hResponseObj[:readerStructurePass] = false
+ return {}
+ end
- # file must contain an mdJson object
- if hMdJson.empty?
- hResponseObj[:readerStructureMessages] << 'mdJson object is empty'
- hResponseObj[:readerStructurePass] = false
- return {}
- end
+ # file must contain an mdJson object
+ if hMdJson.empty?
+ hResponseObj[:readerStructureMessages] << 'mdJson object is empty'
+ hResponseObj[:readerStructurePass] = false
+ return {}
+ end
- # schema - (required)
- unless hMdJson.has_key?('schema')
- hResponseObj[:readerStructureMessages] << 'mdJson is missing schema object'
- hResponseObj[:readerStructurePass] = false
- return {}
- end
+ # schema - (required)
+ unless hMdJson.has_key?('schema')
+ hResponseObj[:readerStructureMessages] << 'mdJson is missing schema object'
+ hResponseObj[:readerStructurePass] = false
+ return {}
+ end
- # schema - name (required) (must = 'mdJson')
- unless hMdJson['schema'].has_key?('name')
- hResponseObj[:readerStructureMessages] << 'mdJson schema:name attribute is missing'
- hResponseObj[:readerStructurePass] = false
- return {}
- end
- schemaName = hMdJson['schema']['name']
- if schemaName.nil? || schemaName == ''
- hResponseObj[:readerStructureMessages] << 'mdJson schema name is missing'
- hResponseObj[:readerStructurePass] = false
- return {}
- end
- unless schemaName.downcase == 'mdjson'
- hResponseObj[:readerStructureMessages] << "mdJson schema name is '#{schemaName}', should be mdJson"
- hResponseObj[:readerStructurePass] = false
- return {}
- end
+ # schema - name (required) (must = 'mdJson')
+ unless hMdJson['schema'].has_key?('name')
+ hResponseObj[:readerStructureMessages] << 'mdJson schema:name attribute is missing'
+ hResponseObj[:readerStructurePass] = false
+ return {}
+ end
+ schemaName = hMdJson['schema']['name']
+ if schemaName.nil? || schemaName == ''
+ hResponseObj[:readerStructureMessages] << 'mdJson schema name is missing'
+ hResponseObj[:readerStructurePass] = false
+ return {}
+ end
+ unless schemaName.downcase == 'mdjson'
+ hResponseObj[:readerStructureMessages] << "mdJson schema name is '#{schemaName}', should be mdJson"
+ hResponseObj[:readerStructurePass] = false
+ return {}
+ end
- # schema - version (required)
- unless hMdJson['schema'].has_key?('version')
- hResponseObj[:readerStructureMessages] << 'mdJson schema:version attribute is missing'
- hResponseObj[:readerStructurePass] = false
- return {}
- end
- requestedVersion = hMdJson['schema']['version']
- if requestedVersion.nil? || requestedVersion == ''
- hResponseObj[:readerStructureMessages] << 'mdJson schema version is missing'
- hResponseObj[:readerStructurePass] = false
- return {}
- end
+ # schema - version (required)
+ unless hMdJson['schema'].has_key?('version')
+ hResponseObj[:readerStructureMessages] << 'mdJson schema:version attribute is missing'
+ hResponseObj[:readerStructurePass] = false
+ return {}
+ end
+ requestedVersion = hMdJson['schema']['version']
+ if requestedVersion.nil? || requestedVersion == ''
+ hResponseObj[:readerStructureMessages] << 'mdJson schema version is missing'
+ hResponseObj[:readerStructurePass] = false
+ return {}
+ end
- # schema - 2.0.0 =< requested version =< current version
- currentVersion = ADIWG::Mdtranslator::Readers::MdJson::VERSION
- hResponseObj[:readerVersionRequested] = requestedVersion
- hResponseObj[:readerVersionUsed] = currentVersion
- aCurVersion = currentVersion.split('.')
- aReqVersion = requestedVersion.split('.')
- approved = false
- if aReqVersion[0] == aCurVersion[0]
- if aReqVersion[1] <= aCurVersion[1]
- approved = true
- end
- end
- unless approved
- hResponseObj[:readerStructureMessages] << "mdJson schema version '#{requestedVersion}' is not supported"
- hResponseObj[:readerStructurePass] = false
- return {}
- end
+ # schema - 2.0.0 =< requested version =< current version
+ currentVersion = ADIWG::Mdtranslator::Readers::MdJson::VERSION
+ hResponseObj[:readerVersionRequested] = requestedVersion
+ hResponseObj[:readerVersionUsed] = currentVersion
+ aCurVersion = currentVersion.split('.')
+ aReqVersion = requestedVersion.split('.')
+ approved = false
+ if aReqVersion[0] == aCurVersion[0]
+ if aReqVersion[1] <= aCurVersion[1]
+ approved = true
+ end
+ end
+ unless approved
+ hResponseObj[:readerStructureMessages] << "mdJson schema version '#{requestedVersion}' is not supported"
+ hResponseObj[:readerStructurePass] = false
+ return {}
+ end
- # validate file against mdJson schema definition
- validate(hMdJson, hResponseObj)
- unless hResponseObj[:readerValidationPass]
- return {}
- end
+ # validate file against mdJson schema definition
+ validate(hMdJson, hResponseObj)
+ unless hResponseObj[:readerValidationPass]
+ return {}
+ end
- # unpack the mdJson into the internal object
- return MdJson.unpack(hMdJson, hResponseObj)
+ # unpack the mdJson into the internal object
+ return MdJson.unpack(hMdJson, hResponseObj)
- end
-
end
- end
- end
+
+ end
+ end
+ end
end