adiwg-mdtranslator 1.4.0 → 2.0.0rc2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitmodules +1 -3
- data/.travis.yml +4 -3
- data/README.md +1 -3
- data/Rakefile +5 -1
- data/adiwg-mdtranslator.gemspec +5 -5
- data/bin/mdtranslator +3 -205
- data/lib/adiwg/mdtranslator/internal/internal_metadata_obj.rb +600 -316
- data/lib/adiwg/mdtranslator/internal/module_coordinates.rb +123 -7
- data/lib/adiwg/mdtranslator/internal/module_dateTimeFun.rb +45 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/mdJson_reader.rb +83 -178
- data/lib/adiwg/mdtranslator/readers/mdJson/mdJson_validator.rb +21 -22
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_additionalDocumentation.rb +77 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_address.rb +101 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_allocation.rb +84 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_associatedResource.rb +111 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_attribute.rb +224 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_attributeGroup.rb +63 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_boundingBox.rb +95 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_citation.rb +164 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_constraint.rb +163 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_contact.rb +172 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_coverageDescription.rb +96 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_dataDictionary.rb +151 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_date.rb +74 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/{modules_v1 → modules}/module_dateTime.rb +19 -5
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_dimension.rb +87 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_distribution.rb +56 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_distributor.rb +78 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_domain.rb +95 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_domainItem.rb +70 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_duration.rb +112 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_entity.rb +135 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_entityAttribute.rb +130 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_entityForeignKey.rb +78 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_entityIndex.rb +72 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_extent.rb +83 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_featureCollection.rb +87 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_format.rb +68 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_funding.rb +67 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geoJson.rb +70 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geographicExtent.rb +98 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geometryCollection.rb +87 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geometryFeature.rb +112 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geometryObject.rb +70 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geometryProperties.rb +79 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_georectifiedRepresentation.rb +113 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_georeferenceableRepresentation.rb +99 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_gmlIdentifier.rb +55 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_graphic.rb +96 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_gridRepresentation.rb +79 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_identifier.rb +87 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_imageDescription.rb +120 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_keyword.rb +83 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_keywordObject.rb +55 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_legalConstraint.rb +77 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_lineage.rb +104 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_locale.rb +66 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_maintenance.rb +93 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_mdJson.rb +136 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_measure.rb +75 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_medium.rb +105 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_metadata.rb +131 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_metadataInfo.rb +157 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_metadataRepository.rb +53 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_onlineResource.rb +82 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_orderProcess.rb +68 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_party.rb +79 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_phone.rb +68 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_processStep.rb +113 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_releasability.rb +71 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_resourceInfo.rb +364 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_resourceType.rb +55 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_resourceUsage.rb +117 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_responsibleParty.rb +91 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_schema.rb +56 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_scope.rb +72 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_scopeDescription.rb +73 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_securityConstraint.rb +72 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_series.rb +57 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_source.rb +123 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_spatialReference.rb +65 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_spatialRepresentation.rb +96 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_spatialResolution.rb +77 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_taxonomicClassification.rb +87 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_taxonomicSystem.rb +60 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_taxonomy.rb +138 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_temporalExtent.rb +70 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_timeInstant.rb +87 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_timeInterval.rb +69 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_timePeriod.rb +120 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_transferOption.rb +95 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_vectorObject.rb +55 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_vectorRepresentation.rb +55 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_verticalExtent.rb +81 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_voucher.rb +64 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/readme.md +3 -9
- data/lib/adiwg/mdtranslator/readers/mdJson/version.rb +14 -0
- data/lib/adiwg/mdtranslator/readers/mdReaders.rb +36 -30
- data/lib/adiwg/mdtranslator/readers/sbJson/sbJson_reader.rb +39 -40
- data/lib/adiwg/mdtranslator/version.rb +38 -29
- data/lib/adiwg/mdtranslator/writers/html/html_writer.rb +28 -25
- data/lib/adiwg/mdtranslator/writers/html/readme.md +3 -9
- data/lib/adiwg/mdtranslator/writers/html/sections/html_additionalDocumentation.rb +35 -34
- data/lib/adiwg/mdtranslator/writers/html/sections/html_allocation.rb +71 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_associatedResource.rb +51 -51
- data/lib/adiwg/mdtranslator/writers/html/sections/html_attribute.rb +189 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_attributeGroup.rb +51 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_body.rb +275 -259
- data/lib/adiwg/mdtranslator/writers/html/sections/html_bodyScript.js +275 -150
- data/lib/adiwg/mdtranslator/writers/html/sections/html_boundingBox.rb +51 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_citation.rb +142 -82
- data/lib/adiwg/mdtranslator/writers/html/sections/html_constraint.rb +118 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_contact.rb +166 -94
- data/lib/adiwg/mdtranslator/writers/html/sections/html_coverageInfo.rb +57 -64
- data/lib/adiwg/mdtranslator/writers/html/sections/html_dataDictionary.rb +102 -96
- data/lib/adiwg/mdtranslator/writers/html/sections/html_date.rb +42 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_datetime.rb +42 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_dimension.rb +50 -52
- data/lib/adiwg/mdtranslator/writers/html/sections/html_distribution.rb +49 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_distributor.rb +48 -44
- data/lib/adiwg/mdtranslator/writers/html/sections/html_document.rb +63 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_domain.rb +53 -62
- data/lib/adiwg/mdtranslator/writers/html/sections/html_domainItem.rb +49 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_duration.rb +68 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_entity.rb +99 -122
- data/lib/adiwg/mdtranslator/writers/html/sections/html_entityAttribute.rb +94 -100
- data/lib/adiwg/mdtranslator/writers/html/sections/html_entityForeignKey.rb +55 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_entityIndex.rb +39 -39
- data/lib/adiwg/mdtranslator/writers/html/sections/html_extent.rb +53 -86
- data/lib/adiwg/mdtranslator/writers/html/sections/html_feature.rb +97 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_featureCollection.rb +82 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_featureProperties.rb +71 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_format.rb +46 -34
- data/lib/adiwg/mdtranslator/writers/html/sections/html_funding.rb +51 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_geographicElement.rb +61 -194
- data/lib/adiwg/mdtranslator/writers/html/sections/html_geographicExtent.rb +112 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_geometryCollection.rb +78 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_geometryObject.rb +46 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_georectifiedRepresentation.rb +93 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_georeferenceableRepresentation.rb +78 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_graphic.rb +75 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_gridRepresentation.rb +61 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_head.rb +47 -60
- data/lib/adiwg/mdtranslator/writers/html/sections/html_identifier.rb +73 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_imageInfo.rb +92 -110
- data/lib/adiwg/mdtranslator/writers/html/sections/html_inlineCss.css +16 -8
- data/lib/adiwg/mdtranslator/writers/html/sections/html_keyword.rb +47 -45
- data/lib/adiwg/mdtranslator/writers/html/sections/html_legalConstraint.rb +41 -48
- data/lib/adiwg/mdtranslator/writers/html/sections/html_lineage.rb +87 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_locale.rb +47 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_maintenance.rb +96 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_measure.rb +47 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_medium.rb +74 -52
- data/lib/adiwg/mdtranslator/writers/html/sections/html_metadataInfo.rb +162 -131
- data/lib/adiwg/mdtranslator/writers/html/sections/html_metadataRepository.rb +40 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_onlineResource.rb +52 -55
- data/lib/adiwg/mdtranslator/writers/html/sections/html_orderProcess.rb +53 -55
- data/lib/adiwg/mdtranslator/writers/html/sections/html_processStep.rb +89 -57
- data/lib/adiwg/mdtranslator/writers/html/sections/html_releasability.rb +63 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_resolution.rb +46 -38
- data/lib/adiwg/mdtranslator/writers/html/sections/html_resourceInfo.rb +402 -291
- data/lib/adiwg/mdtranslator/writers/html/sections/html_resourceType.rb +31 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_responsibility.rb +81 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_scope.rb +60 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_scopeDescription.rb +54 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_securityConstraint.rb +46 -47
- data/lib/adiwg/mdtranslator/writers/html/sections/html_source.rb +123 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_spatialReference.rb +43 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_spatialRepresentation.rb +77 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_taxonomy.rb +138 -90
- data/lib/adiwg/mdtranslator/writers/html/sections/html_taxonomyClass.rb +63 -50
- data/lib/adiwg/mdtranslator/writers/html/sections/html_temporalExtent.rb +66 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_timeInstant.rb +60 -42
- data/lib/adiwg/mdtranslator/writers/html/sections/html_timeInterval.rb +40 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_timePeriod.rb +88 -43
- data/lib/adiwg/mdtranslator/writers/html/sections/html_transferOption.rb +68 -50
- data/lib/adiwg/mdtranslator/writers/html/sections/html_usage.rb +118 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_vectorObject.rb +40 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_vectorRepresentation.rb +46 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_verticalExtent.rb +62 -0
- data/lib/adiwg/mdtranslator/writers/html/version.rb +12 -11
- data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_address.rb +70 -75
- data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_baseUnit.rb +3 -3
- data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_codelist.rb +14 -13
- data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_contact.rb +50 -34
- data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_conventionalUnit.rb +3 -3
- data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_definitionUnit.rb +3 -3
- data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_derivedUnit.rb +3 -3
- data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_fcFeatureCatalogue.rb +205 -0
- data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_featureAttribute.rb +39 -38
- data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_featureConstraint.rb +9 -10
- data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_featureType.rb +48 -40
- data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_listedValue.rb +22 -20
- data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_locale.rb +69 -0
- data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_multiplicity.rb +24 -17
- data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_onlineResource.rb +33 -29
- data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_phone.rb +83 -0
- data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_responsibleParty.rb +77 -64
- data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_unitsOfMeasure.rb +20 -20
- data/lib/adiwg/mdtranslator/writers/iso19110/iso19110_writer.rb +21 -32
- data/lib/adiwg/mdtranslator/writers/iso19110/readme.md +3 -8
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_address.rb +70 -74
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_aggregateInformation.rb +30 -32
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_attributeGroup.rb +70 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_baseUnit.rb +5 -5
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_boundingBox.rb +77 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_browseGraphic.rb +26 -24
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_citation.rb +111 -100
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_codelist.rb +14 -13
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_contact.rb +50 -34
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_conventionalUnit.rb +5 -5
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_coverageDescription.rb +99 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_dataIdentification.rb +195 -270
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_dataQuality.rb +26 -35
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_date.rb +31 -38
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_definitionUnit.rb +5 -5
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_derivedUnit.rb +5 -5
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_dimension.rb +26 -23
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_distribution.rb +19 -16
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_distributor.rb +51 -66
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_enumerationList.rb +12 -12
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/{class_metadataExtension.rb → class_extension.rb} +94 -67
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_extent.rb +43 -59
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_feature.rb +67 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_featureCollection.rb +56 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_featureProperties.rb +65 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_format.rb +48 -27
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_fraction.rb +40 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_gcoDateTime.rb +48 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_geographicElement.rb +55 -26
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_geographicExtent.rb +82 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_geometricObjects.rb +56 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_geometryCollection.rb +88 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_georectified.rb +121 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_georeferenceable.rb +86 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_gmlIdentifier.rb +32 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_grid.rb +73 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_gridRepresentation.rb +36 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_hierarchy.rb +58 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_image.rb +144 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_keyword.rb +41 -35
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_legalConstraints.rb +46 -37
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_lineString.rb +45 -51
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_lineage.rb +29 -31
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_locale.rb +21 -17
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_maintenance.rb +119 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_mdBand.rb +121 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/{class_identifier.rb → class_mdIdentifier.rb} +25 -27
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_measure.rb +48 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_medium.rb +66 -42
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_miBand.rb +91 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_miMetadata.rb +352 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_multiLine.rb +82 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_multiPoint.rb +82 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_multiPolygon.rb +82 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_onlineResource.rb +33 -29
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/{class_standardOrderProcess.rb → class_orderProcess.rb} +33 -35
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_phone.rb +83 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_point.rb +46 -51
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_polygon.rb +54 -61
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_processStep.rb +46 -34
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_rangeDimension.rb +73 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_referenceSystem.rb +24 -25
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_resolution.rb +32 -31
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_responsibleParty.rb +75 -65
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_rsIdentifier.rb +86 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_scope.rb +71 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_scopeDescription.rb +54 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_securityConstraints.rb +47 -32
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_series.rb +63 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_source.rb +58 -28
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_spatialRepresentation.rb +64 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/{class_taxonClassification.rb → class_taxonomicClassification.rb} +35 -38
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_taxonomicSystem.rb +49 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_taxonomy.rb +144 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_temporalExtent.rb +15 -28
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_timeInstant.rb +42 -19
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_timePeriod.rb +79 -28
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_transferOptions.rb +91 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_unitsOfMeasure.rb +22 -22
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_usage.rb +70 -28
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_useConstraints.rb +18 -17
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_vectorRepresentation.rb +59 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_verticalExtent.rb +39 -26
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_vouchers.rb +20 -20
- data/lib/adiwg/mdtranslator/writers/iso19115_2/iso19115_2_writer.rb +22 -133
- data/lib/adiwg/mdtranslator/writers/iso19115_2/readme.md +1 -7
- data/lib/adiwg/mdtranslator/writers/mdJson/mdJson_writer.rb +44 -41
- data/lib/adiwg/mdtranslator/writers/mdJson/readme.md +3 -9
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_additionalDocumentation.rb +33 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_address.rb +29 -17
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_allocation.rb +32 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_associatedResource.rb +30 -16
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_attribute.rb +48 -22
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_attributeGroup.rb +32 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_boundingBox.rb +30 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_citation.rb +41 -26
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_constraint.rb +40 -23
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_contact.rb +39 -24
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_coverageDescription.rb +37 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_date.rb +42 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_dateTime.rb +33 -13
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_dictionary.rb +35 -25
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_dimension.rb +32 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_distribution.rb +32 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_distributor.rb +34 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_domain.rb +30 -20
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_domainItem.rb +29 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_duration.rb +33 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_entity.rb +35 -32
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_entityAttribute.rb +37 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_entityForeignKey.rb +29 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_entityIndex.rb +29 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_extent.rb +31 -21
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_format.rb +26 -14
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_funding.rb +32 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_geographicExtent.rb +33 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_georectifiedRepresentation.rb +35 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_georeferenceableRepresentation.rb +36 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_graphicOverview.rb +31 -15
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_gridRepresentation.rb +34 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_identifier.rb +33 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_imageDescription.rb +41 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_keyword.rb +28 -14
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_keywordObject.rb +29 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_legalConstraint.rb +29 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_lineageInfo.rb +38 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_locale.rb +25 -14
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_maintenance.rb +37 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_mdJson.rb +54 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_measure.rb +29 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_medium.rb +37 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_metadata.rb +35 -22
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_metadataInfo.rb +39 -29
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_onlineResource.rb +27 -16
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_orderProcess.rb +31 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_party.rb +32 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_phone.rb +25 -14
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_processStep.rb +34 -19
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_releasability.rb +32 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_repository.rb +29 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_resourceInfo.rb +61 -56
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_resourceType.rb +29 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_responsibleParty.rb +29 -13
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_scope.rb +34 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_scopeDescription.rb +31 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_securityConstraint.rb +30 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_series.rb +30 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_source.rb +40 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_spatialReference.rb +30 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_spatialRepresentation.rb +34 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_spatialResolution.rb +30 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_taxonomicClassification.rb +35 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_taxonomicSystem.rb +29 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_taxonomy.rb +36 -26
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_temporalExtent.rb +31 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_timeInstant.rb +33 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_timeInterval.rb +29 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_timePeriod.rb +34 -15
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_transferOption.rb +32 -26
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_usage.rb +33 -17
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_vectorObject.rb +28 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_vectorRepresentation.rb +31 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_verticalExtent.rb +32 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_voucher.rb +29 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/version.rb +13 -9
- data/lib/adiwg/mdtranslator/writers/mdWriters.rb +36 -28
- data/lib/adiwg/mdtranslator.rb +135 -113
- data/lib/adiwg/mdtranslator_cli.rb +191 -0
- metadata +238 -215
- data/lib/adiwg/mdtranslator/internal/module_geoFormat.rb +0 -219
- data/lib/adiwg/mdtranslator/internal/module_lineString.rb +0 -18
- data/lib/adiwg/mdtranslator/internal/module_point.rb +0 -18
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_additionalDocumentation.rb +0 -64
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_address.rb +0 -91
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_associatedResource.rb +0 -100
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_boundingBox.rb +0 -64
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_browseGraphic.rb +0 -79
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_citation.rb +0 -141
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_classedData.rb +0 -49
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_classedDataItem.rb +0 -53
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_contacts.rb +0 -164
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_coverageInfo.rb +0 -83
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_coverageItem.rb +0 -136
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_dataDictionary.rb +0 -65
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_dataQuality.rb +0 -65
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_descriptiveKeyword.rb +0 -77
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_dictionaryInfo.rb +0 -82
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_digitalTransferOption.rb +0 -80
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_dimension.rb +0 -81
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_distributionInfo.rb +0 -89
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_distributionOrder.rb +0 -62
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_domain.rb +0 -96
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_domainItem.rb +0 -72
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_entity.rb +0 -131
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_entityAttribute.rb +0 -134
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_entityForeignKey.rb +0 -73
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_entityIndex.rb +0 -72
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_extent.rb +0 -75
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_geoCoordSystem.rb +0 -59
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_geoProperties.rb +0 -102
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_geographicElement.rb +0 -189
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_gridInfo.rb +0 -67
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_imageInfo.rb +0 -119
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_legalConstraint.rb +0 -62
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_lineString.rb +0 -37
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_lineage.rb +0 -67
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_locale.rb +0 -57
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_mdJson.rb +0 -68
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_medium.rb +0 -73
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_metadata.rb +0 -90
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_metadataExtension.rb +0 -53
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_metadataInfo.rb +0 -152
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_onlineResource.rb +0 -84
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_phone.rb +0 -81
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_point.rb +0 -37
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_polygon.rb +0 -67
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_processStep.rb +0 -88
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_resolution.rb +0 -59
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_resourceFormat.rb +0 -57
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_resourceIdentifier.rb +0 -85
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_resourceInfo.rb +0 -374
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_resourceMaintenance.rb +0 -63
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_resourceSpecificUsage.rb +0 -63
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_responsibleParty.rb +0 -68
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_securityConstraint.rb +0 -65
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_sensorInfo.rb +0 -69
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_source.rb +0 -65
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_spatialReference.rb +0 -61
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_taxonClass.rb +0 -56
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_taxonomy.rb +0 -96
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_temporalElement.rb +0 -84
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_timeInstant.rb +0 -58
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_timePeriod.rb +0 -66
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_verticalElement.rb +0 -66
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_voucher.rb +0 -51
- data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/version.rb +0 -19
- data/lib/adiwg/mdtranslator/readers/mdJson/validator.rb +0 -43
- data/lib/adiwg/mdtranslator/readers/sbJson/sbJson_validator.rb +0 -44
- data/lib/adiwg/mdtranslator/writers/html/md_html_writer.rb +0 -59
- data/lib/adiwg/mdtranslator/writers/html/sections/html_browseGraphic.rb +0 -59
- data/lib/adiwg/mdtranslator/writers/html/sections/html_coverageItem.rb +0 -139
- data/lib/adiwg/mdtranslator/writers/html/sections/html_dataLineage.rb +0 -68
- data/lib/adiwg/mdtranslator/writers/html/sections/html_dataSource.rb +0 -67
- data/lib/adiwg/mdtranslator/writers/html/sections/html_dateTime.rb +0 -41
- data/lib/adiwg/mdtranslator/writers/html/sections/html_domainMember.rb +0 -52
- data/lib/adiwg/mdtranslator/writers/html/sections/html_gridInfo.rb +0 -65
- data/lib/adiwg/mdtranslator/writers/html/sections/html_headScript.js +0 -18
- data/lib/adiwg/mdtranslator/writers/html/sections/html_resourceContact.rb +0 -37
- data/lib/adiwg/mdtranslator/writers/html/sections/html_resourceGeneral.rb +0 -133
- data/lib/adiwg/mdtranslator/writers/html/sections/html_resourceId.rb +0 -77
- data/lib/adiwg/mdtranslator/writers/html/sections/html_resourceMaint.rb +0 -56
- data/lib/adiwg/mdtranslator/writers/html/sections/html_resourceOther.rb +0 -88
- data/lib/adiwg/mdtranslator/writers/html/sections/html_resourceUsage.rb +0 -56
- data/lib/adiwg/mdtranslator/writers/html/sections/html_responsibleParty.rb +0 -39
- data/lib/adiwg/mdtranslator/writers/html/sections/html_spatialReferenceSystem.rb +0 -58
- data/lib/adiwg/mdtranslator/writers/html/sections/html_temporalElement.rb +0 -61
- data/lib/adiwg/mdtranslator/writers/html/sections/html_verticalElement.rb +0 -59
- data/lib/adiwg/mdtranslator/writers/iso19110/class_FCfeatureCatalogue.rb +0 -191
- data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_telephone.rb +0 -92
- data/lib/adiwg/mdtranslator/writers/iso19110/version.rb +0 -14
- data/lib/adiwg/mdtranslator/writers/iso19115_2/class_MImetadata.rb +0 -391
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_band.rb +0 -165
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_boundingPolygon.rb +0 -90
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_contentInfo.rb +0 -111
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_digitalTransferOptions.rb +0 -92
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_geographicBoundingBox.rb +0 -89
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_geographicDescription.rb +0 -44
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_gridInfo.rb +0 -80
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_imageDescription.rb +0 -157
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_maintenanceInformation.rb +0 -80
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_multiGeometry.rb +0 -156
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_rangeElementDescription.rb +0 -88
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_resourceIdentifier.rb +0 -94
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_taxonSystem.rb +0 -115
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_telephone.rb +0 -92
- data/lib/adiwg/mdtranslator/writers/iso19115_2/version.rb +0 -17
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_additionalDoc.rb +0 -19
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_base.rb +0 -19
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_dataQuality.rb +0 -32
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_distributionInfo.rb +0 -31
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_geographicElement.rb +0 -81
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_gridInfo.rb +0 -27
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_resourceIdentifier.rb +0 -23
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_resourceMaintenance.rb +0 -23
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_spatialreference.rb +0 -19
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_taxon.rb +0 -19
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_temporalElement.rb +0 -38
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_verticalElement.rb +0 -20
- data/test/readers/mdJson/v1/tc_reader_mdjson_additionalDocumentation.rb +0 -116
- data/test/readers/mdJson/v1/tc_reader_mdjson_address.rb +0 -111
- data/test/readers/mdJson/v1/tc_reader_mdjson_associatedResource.rb +0 -157
- data/test/readers/mdJson/v1/tc_reader_mdjson_browseGraphic.rb +0 -119
- data/test/readers/mdJson/v1/tc_reader_mdjson_citation.rb +0 -143
- data/test/readers/mdJson/v1/tc_reader_mdjson_contact.rb +0 -138
- data/test/readers/mdJson/v1/tc_reader_mdjson_dataQuality.rb +0 -111
- data/test/readers/mdJson/v1/tc_reader_mdjson_dateTime.rb +0 -159
- data/test/readers/mdJson/v1/tc_reader_mdjson_descriptiveKeyword.rb +0 -115
- data/test/readers/mdJson/v1/tc_reader_mdjson_dictionaryInfo.rb +0 -121
- data/test/readers/mdJson/v1/tc_reader_mdjson_digitalTransferOption.rb +0 -94
- data/test/readers/mdJson/v1/tc_reader_mdjson_distributionOrder.rb +0 -103
- data/test/readers/mdJson/v1/tc_reader_mdjson_domain.rb +0 -130
- data/test/readers/mdJson/v1/tc_reader_mdjson_domainItem.rb +0 -98
- data/test/readers/mdJson/v1/tc_reader_mdjson_entity.rb +0 -134
- data/test/readers/mdJson/v1/tc_reader_mdjson_entityAttribute.rb +0 -154
- data/test/readers/mdJson/v1/tc_reader_mdjson_entityForeignKey.rb +0 -100
- data/test/readers/mdJson/v1/tc_reader_mdjson_entityIndex.rb +0 -99
- data/test/readers/mdJson/v1/tc_reader_mdjson_legalConstraint.rb +0 -104
- data/test/readers/mdJson/v1/tc_reader_mdjson_lineage.rb +0 -117
- data/test/readers/mdJson/v1/tc_reader_mdjson_medium.rb +0 -98
- data/test/readers/mdJson/v1/tc_reader_mdjson_metadataInfo.rb +0 -141
- data/test/readers/mdJson/v1/tc_reader_mdjson_onlineResource.rb +0 -110
- data/test/readers/mdJson/v1/tc_reader_mdjson_phone.rb +0 -112
- data/test/readers/mdJson/v1/tc_reader_mdjson_processStep.rb +0 -118
- data/test/readers/mdJson/v1/tc_reader_mdjson_resolution.rb +0 -77
- data/test/readers/mdJson/v1/tc_reader_mdjson_source.rb +0 -117
- data/test/readers/mdJson/v1/tc_reader_mdjson_translation.rb +0 -85
- data/test/readers/mdJson/v1/tc_translation_19110.rb +0 -58
- data/test/readers/sbJson/v0/tc_reader_sbjson_translation.rb +0 -81
- data/test/readers/sbJson/v0/test.json +0 -431
- data/test/readers/sbJson/v0/test1.json +0 -383
- data/test/writers/iso19115_2/tc_writer_iso19115_2_address.rb +0 -229
- data/test/writers/mdJson/v1/tc_writer_mdJson.rb +0 -62
- data/test/writers/sbJson/v0/tc_writer_sbJson.rb +0 -62
@@ -1,18 +1,20 @@
|
|
1
1
|
# repack coordinates
|
2
2
|
|
3
3
|
# History:
|
4
|
-
#
|
5
|
-
# Stan Smith 2013-11-13 added getDimension
|
6
|
-
# Stan Smith 2014-05-23 added getLevels
|
7
|
-
# Stan Smith 2014-12-15 refactored to handle namespacing readers and writers
|
8
|
-
# Stan Smith 2015-06-22 replace global ($response) with passed in object (responseObj)
|
9
|
-
# Stan Smith 2015-07-14 refactored to remove global namespace constants
|
4
|
+
# Stan Smith 2016-11-10 added computedBbox computation
|
10
5
|
# Stan Smith 2015-07-16 moved module_coordinates from mdJson reader to internal
|
6
|
+
# Stan Smith 2015-07-14 refactored to remove global namespace constants
|
7
|
+
# Stan Smith 2015-06-22 replace global ($response) with passed in object (responseObj)
|
8
|
+
# Stan Smith 2014-12-15 refactored to handle namespacing readers and writers
|
9
|
+
# Stan Smith 2014-05-23 added getLevels
|
10
|
+
# Stan Smith 2013-11-13 added getDimension
|
11
|
+
# Stan Smith 2013-11-07 original script
|
11
12
|
|
12
13
|
module AdiwgCoordinates
|
13
14
|
|
14
15
|
# repack coordinate array into single string for ISO
|
15
|
-
def self.
|
16
|
+
def self.stringifyCoords(aCoords, responseObj)
|
17
|
+
|
16
18
|
s = ''
|
17
19
|
i = 0
|
18
20
|
coordCount = aCoords.length
|
@@ -30,10 +32,12 @@ module AdiwgCoordinates
|
|
30
32
|
end
|
31
33
|
|
32
34
|
return s
|
35
|
+
|
33
36
|
end
|
34
37
|
|
35
38
|
# get the number of dimensions in a coordinate array
|
36
39
|
def self.getDimension(aCoords)
|
40
|
+
|
37
41
|
if aCoords[0].kind_of?(Array)
|
38
42
|
coordDim = getDimension(aCoords[0])
|
39
43
|
else
|
@@ -41,15 +45,127 @@ module AdiwgCoordinates
|
|
41
45
|
end
|
42
46
|
|
43
47
|
return coordDim
|
48
|
+
|
44
49
|
end
|
45
50
|
|
46
51
|
# get the number of levels in the coordinate array
|
47
52
|
def self.getLevels(aCoords)
|
53
|
+
|
48
54
|
i = 1
|
49
55
|
if aCoords[0].kind_of?(Array)
|
50
56
|
i = i + getLevels(aCoords[0])
|
51
57
|
end
|
52
58
|
return i
|
59
|
+
|
60
|
+
end
|
61
|
+
|
62
|
+
# compute bounding box
|
63
|
+
def self.computeBbox(aGeo)
|
64
|
+
|
65
|
+
# find all the eastings (x) and northings (y) in the GeoJSON object
|
66
|
+
aNorthings = []
|
67
|
+
aEastings = []
|
68
|
+
aGeo.each do |hGeo|
|
69
|
+
unpackGeometry(hGeo, aNorthings, aEastings)
|
70
|
+
end
|
71
|
+
|
72
|
+
# find most north/south points
|
73
|
+
north = aNorthings.max
|
74
|
+
south = aNorthings.min
|
75
|
+
|
76
|
+
# find most east/west spanning the meridian
|
77
|
+
eastM = aEastings.max
|
78
|
+
westM = aEastings.min
|
79
|
+
|
80
|
+
# find most east/west spanning the anti-meridian
|
81
|
+
positiveEast = []
|
82
|
+
negativeEast = []
|
83
|
+
aEastings.each do |east|
|
84
|
+
negativeEast << east if east < 0.0
|
85
|
+
positiveEast << east if east >= 0.0
|
86
|
+
end
|
87
|
+
eastAM = negativeEast.max
|
88
|
+
westAM = positiveEast.min
|
89
|
+
|
90
|
+
# if eastings are all positive or all negative no meridian was spanned
|
91
|
+
if positiveEast.empty? || negativeEast.empty?
|
92
|
+
east = eastM
|
93
|
+
west = westM
|
94
|
+
else
|
95
|
+
# choose which meridian was spanned based on smaller edge-to-edge distance
|
96
|
+
distanceM = eastM - westM
|
97
|
+
distanceAM = (180 + eastAM) + (180 - westAM)
|
98
|
+
if distanceM <= distanceAM
|
99
|
+
# this spanned to meridian
|
100
|
+
east = eastM
|
101
|
+
west = westM
|
102
|
+
else
|
103
|
+
# this spanned tne anti-meridian
|
104
|
+
east = eastAM
|
105
|
+
west = westAM
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
bBox = {}
|
110
|
+
bBox[:westLongitude] = west
|
111
|
+
bBox[:eastLongitude] = east
|
112
|
+
bBox[:southLatitude] = south
|
113
|
+
bBox[:northLatitude] = north
|
114
|
+
|
115
|
+
return bBox
|
116
|
+
|
117
|
+
end
|
118
|
+
|
119
|
+
# compute bounding box
|
120
|
+
def self.unpackGeometry(hGeo, aNorthings, aEastings)
|
121
|
+
|
122
|
+
# geometry objects
|
123
|
+
type = hGeo[:type]
|
124
|
+
if %w{ Point LineString Polygon MultiPoint MultiLineString MultiPolygon }.one? { |word| word == type }
|
125
|
+
unpackCoords(hGeo[:coordinates], aNorthings, aEastings)
|
126
|
+
end
|
127
|
+
|
128
|
+
# geometry collections
|
129
|
+
if hGeo[:type] == 'GeometryCollection'
|
130
|
+
hGeo[:geometryObjects].each do |aGeoObj|
|
131
|
+
unpackCoords(aGeoObj[:coordinates], aNorthings, aEastings)
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
# features
|
136
|
+
if hGeo[:type] == 'Feature'
|
137
|
+
featureType = hGeo[:geometryObject][:type]
|
138
|
+
if featureType == 'GeometryCollection'
|
139
|
+
unpackGeometry(hGeo[:geometryObject], aNorthings, aEastings)
|
140
|
+
else
|
141
|
+
unpackCoords(hGeo[:geometryObject][:coordinates], aNorthings, aEastings)
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
# feature collections
|
146
|
+
if hGeo[:type] == 'FeatureCollection'
|
147
|
+
hGeo[:features].each do |hFeature|
|
148
|
+
unpackGeometry(hFeature, aNorthings, aEastings)
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
end
|
153
|
+
|
154
|
+
# compute bounding box
|
155
|
+
def self.unpackCoords(aCoords, aNorthings, aEastings)
|
156
|
+
if aCoords[0].kind_of?(Array)
|
157
|
+
aCoords.each do |aTuple|
|
158
|
+
unpackCoords(aTuple, aNorthings, aEastings)
|
159
|
+
end
|
160
|
+
else
|
161
|
+
addPoint(aCoords, aNorthings, aEastings)
|
162
|
+
end
|
163
|
+
end
|
164
|
+
|
165
|
+
# compute bounding box
|
166
|
+
def self.addPoint(aPoint, aNorthings, aEastings)
|
167
|
+
aEastings << aPoint[0]
|
168
|
+
aNorthings << aPoint[1]
|
53
169
|
end
|
54
170
|
|
55
171
|
end
|
@@ -95,4 +95,49 @@ module AdiwgDateTimeFun
|
|
95
95
|
return s
|
96
96
|
end
|
97
97
|
|
98
|
+
def self.writeDuration(hDuration)
|
99
|
+
# format P[n]Y[n]M[n]DT[n]H[n]M[n]S
|
100
|
+
# example P1DT12H
|
101
|
+
sDuration = 'P'
|
102
|
+
|
103
|
+
unless hDuration[:years] == 0
|
104
|
+
sDuration += hDuration[:years].to_s + 'Y'
|
105
|
+
end
|
106
|
+
|
107
|
+
unless hDuration[:months] == 0
|
108
|
+
sDuration += hDuration[:months].to_s + 'M'
|
109
|
+
end
|
110
|
+
|
111
|
+
unless hDuration[:days] == 0
|
112
|
+
sDuration += hDuration[:days].to_s + 'D'
|
113
|
+
end
|
114
|
+
|
115
|
+
haveTime = false
|
116
|
+
|
117
|
+
unless hDuration[:hours] == 0
|
118
|
+
unless haveTime
|
119
|
+
sDuration += 'T'
|
120
|
+
haveTime = true
|
121
|
+
end
|
122
|
+
sDuration += hDuration[:hours].to_s + 'H'
|
123
|
+
end
|
124
|
+
|
125
|
+
unless hDuration[:minutes] == 0
|
126
|
+
unless haveTime
|
127
|
+
sDuration += 'T'
|
128
|
+
haveTime = true
|
129
|
+
end
|
130
|
+
sDuration += hDuration[:minutes].to_s + 'M'
|
131
|
+
end
|
132
|
+
|
133
|
+
unless hDuration[:seconds] == 0
|
134
|
+
unless haveTime
|
135
|
+
sDuration += 'T'
|
136
|
+
end
|
137
|
+
sDuration += hDuration[:seconds].to_s + 'S'
|
138
|
+
end
|
139
|
+
|
140
|
+
return sDuration
|
141
|
+
end
|
142
|
+
|
98
143
|
end
|
@@ -1,214 +1,119 @@
|
|
1
|
-
#
|
1
|
+
# mdJson reader - process and direct mdJson ingest to internal data structure
|
2
2
|
|
3
3
|
# History:
|
4
|
-
#
|
5
|
-
#
|
6
|
-
#
|
7
|
-
# Stan Smith 2014-04-23 add json schema version to internal object
|
8
|
-
# Stan Smith 2014-06-05 capture an test json version
|
9
|
-
# Stan Smith 2014-07-03 resolve require statements using Mdtranslator.reader_module
|
10
|
-
# Stan Smith 2014-07-08 moved json schema version testing to 'adiwg_1_get_version'
|
11
|
-
# Stan Smith 2014-08-18 add json name/version to internal object
|
12
|
-
# Stan Smith 2014-12-01 add data dictionary
|
13
|
-
# Stan Smith 2014-12-03 changed class name to MdJsonReader from AdiwgJsonReader
|
14
|
-
# Stan Smith 2014-12-11 refactored to handle namespacing readers and writers
|
15
|
-
# Stan Smith 2015-06-12 added method to lookup contact in contact array
|
16
|
-
# Stan Smith 2015-06-22 replace global ($response) with passed in object (responseObj)
|
17
|
-
# Stan Smith 2015-07-14 refactored to remove global namespace constants
|
4
|
+
# Stan Smith 2016-11-12 refactor for mdTranslator 2.0
|
5
|
+
# Stan Smith 2016-10-09 modify 'findContact' to also return contact index and type
|
6
|
+
# Stan Smith 2016-10-07 refactored 'readerModule' to remove mdJson version checking
|
18
7
|
# Stan Smith 2015-07-14 added support for mdJson version numbers
|
8
|
+
# Stan Smith 2015-07-14 refactored to remove global namespace constants
|
9
|
+
# Stan Smith 2015-06-22 replace global ($response) with passed in object (hResponseObj)
|
10
|
+
# Stan Smith 2015-06-12 added method to lookup contact in contact array
|
11
|
+
# Stan Smith 2014-12-11 refactored to handle namespacing readers and writers
|
12
|
+
# Stan Smith 2014-12-03 changed class name to MdJsonReader from AdiwgJsonReader
|
13
|
+
# Stan Smith 2014-12-01 add data dictionary
|
14
|
+
# Stan Smith 2014-08-18 add json name/version to internal object
|
15
|
+
# Stan Smith 2014-07-08 moved json schema version testing to 'adiwg_1_get_version'
|
16
|
+
# Stan Smith 2014-07-03 resolve require statements using Mdtranslator.reader_module
|
17
|
+
# Stan Smith 2014-06-05 capture an test json version
|
18
|
+
# Stan Smith 2014-04-23 add json schema version to internal object
|
19
|
+
# Stan Smith 2013-08-23 split out metadata to module_metadata
|
20
|
+
# Stan Smith 2013-08-19 split out contacts to module_contacts
|
21
|
+
# Stan Smith 2013-08-09 original script
|
19
22
|
|
20
23
|
require 'json'
|
21
24
|
require_relative 'mdJson_validator'
|
25
|
+
require_relative 'version'
|
26
|
+
require_relative 'modules/module_mdJson'
|
22
27
|
|
23
28
|
module ADIWG
|
24
29
|
module Mdtranslator
|
25
30
|
module Readers
|
26
31
|
module MdJson
|
27
32
|
|
28
|
-
def self.readFile(file,
|
33
|
+
def self.readFile(file, hResponseObj)
|
29
34
|
|
30
|
-
#
|
31
|
-
@responseObj = responseObj
|
32
|
-
|
33
|
-
# receive json file into ruby hash
|
34
|
-
parseJson(file)
|
35
|
-
if !@responseObj[:readerStructurePass]
|
36
|
-
return false
|
37
|
-
end
|
38
|
-
|
39
|
-
# set format of file in $response
|
40
|
-
@responseObj[:readerFormat] = 'json'
|
41
|
-
|
42
|
-
# check mdJson version name
|
43
|
-
checkVersionName
|
44
|
-
if !@responseObj[:readerStructurePass]
|
45
|
-
return false
|
46
|
-
end
|
47
|
-
|
48
|
-
# check mdJson version number
|
49
|
-
checkVersionNumber
|
50
|
-
if !@responseObj[:readerStructurePass]
|
51
|
-
return false
|
52
|
-
end
|
53
|
-
|
54
|
-
# validate file against mdJson schema definition
|
55
|
-
validate(file, @responseObj)
|
56
|
-
if !@responseObj[:readerValidationPass]
|
57
|
-
return false
|
58
|
-
end
|
59
|
-
|
60
|
-
# load mdJson file into internal object
|
61
|
-
require readerModule('module_mdJson')
|
62
|
-
# instance classes needed in script
|
63
|
-
intMetadataClass = InternalMetadata.new
|
64
|
-
|
65
|
-
# create new internal metadata container for the reader
|
66
|
-
@intObj = intMetadataClass.newBase
|
67
|
-
|
68
|
-
#
|
69
|
-
ADIWG::Mdtranslator::Readers::MdJson.unpack(@intObj, @hMdJson, @responseObj)
|
70
|
-
return @intObj
|
71
|
-
|
72
|
-
end
|
73
|
-
|
74
|
-
def self.parseJson(file)
|
75
|
-
# validate the input file structure
|
76
|
-
# test for valid json syntax by attempting to parse the file
|
35
|
+
# parse mdJson file
|
77
36
|
begin
|
78
|
-
|
79
|
-
@responseObj[:readerStructurePass] = true
|
37
|
+
hMdJson = JSON.parse(file)
|
80
38
|
rescue JSON::JSONError => err
|
81
|
-
|
82
|
-
|
83
|
-
|
39
|
+
hResponseObj[:readerStructureMessages] << 'Parsing mdJson Failed - see following message(s):\n'
|
40
|
+
hResponseObj[:readerStructureMessages] << err.to_s.slice(0,300)
|
41
|
+
hResponseObj[:readerStructurePass] = false
|
42
|
+
return {}
|
84
43
|
end
|
85
|
-
end
|
86
44
|
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
@responseObj[:readerStructurePass] = false
|
93
|
-
@responseObj[:readerStructureMessages] << 'Invalid input file schema declaration - see following message(s):\n'
|
94
|
-
@responseObj[:readerStructureMessages] << 'The input file is missing the version:{} block.'
|
95
|
-
return
|
45
|
+
# file must contain an mdJson object
|
46
|
+
if hMdJson.empty?
|
47
|
+
hResponseObj[:readerStructureMessages] << 'mdJson object is empty'
|
48
|
+
hResponseObj[:readerStructurePass] = false
|
49
|
+
return {}
|
96
50
|
end
|
97
51
|
|
98
|
-
#
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
@responseObj[:readerStructureMessages] << 'Invalid input file schema declaration - see following message(s):\n'
|
104
|
-
@responseObj[:readerStructureMessages] << 'The input file version: => name: is missing.'
|
105
|
-
return
|
106
|
-
end
|
107
|
-
else
|
108
|
-
@responseObj[:readerStructurePass] = false
|
109
|
-
@responseObj[:readerStructureMessages] << 'Invalid input file schema declaration - see following message(s):\n'
|
110
|
-
@responseObj[:readerStructureMessages] << "The input file version:{} block is missing the 'name:' attribute."
|
111
|
-
return
|
52
|
+
# schema - (required)
|
53
|
+
unless hMdJson.has_key?('schema')
|
54
|
+
hResponseObj[:readerStructureMessages] << 'mdJson is missing schema object'
|
55
|
+
hResponseObj[:readerStructurePass] = false
|
56
|
+
return {}
|
112
57
|
end
|
113
58
|
|
114
|
-
#
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
@responseObj[:readerStructureMessages] << "Version name found was: '#{s}'."
|
59
|
+
# schema - name (required) (must = 'mdJson')
|
60
|
+
unless hMdJson['schema'].has_key?('name')
|
61
|
+
hResponseObj[:readerStructureMessages] << 'mdJson schema:name attribute is missing'
|
62
|
+
hResponseObj[:readerStructurePass] = false
|
63
|
+
return {}
|
120
64
|
end
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
if hVersion.has_key?('version')
|
127
|
-
s = hVersion['version']
|
128
|
-
if !s.nil?
|
129
|
-
@responseObj[:readerVersionRequested] = s
|
130
|
-
end
|
131
|
-
else
|
132
|
-
@responseObj[:readerStructurePass] = false
|
133
|
-
@responseObj[:readerStructureMessages] << 'Invalid input file schema declaration - see following message(s):\n'
|
134
|
-
@responseObj[:readerStructureMessages] << "The input file version:{} block is missing the 'version:' number attribute."
|
135
|
-
return
|
65
|
+
schemaName = hMdJson['schema']['name']
|
66
|
+
if schemaName.nil? || schemaName == ''
|
67
|
+
hResponseObj[:readerStructureMessages] << 'mdJson schema name is missing'
|
68
|
+
hResponseObj[:readerStructurePass] = false
|
69
|
+
return {}
|
136
70
|
end
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
reqMajor = 0
|
142
|
-
if !aReqVersion[0].nil?
|
143
|
-
reqMajor = aReqVersion[0]
|
71
|
+
unless schemaName.downcase == 'mdjson'
|
72
|
+
hResponseObj[:readerStructureMessages] << "mdJson schema name is '#{schemaName}', should be mdJson"
|
73
|
+
hResponseObj[:readerStructurePass] = false
|
74
|
+
return {}
|
144
75
|
end
|
145
76
|
|
146
|
-
#
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
@responseObj[:readerStructureMessages] << 'Invalid input file schema declaration - see following message(s):\n'
|
152
|
-
@responseObj[:readerStructureMessages] << 'A reader for the requested version is not supported.'
|
153
|
-
@responseObj[:readerStructureMessages] << "mdJson version requested was '#{s}'"
|
154
|
-
return false
|
77
|
+
# schema - version (required)
|
78
|
+
unless hMdJson['schema'].has_key?('version')
|
79
|
+
hResponseObj[:readerStructureMessages] << 'mdJson schema:version attribute is missing'
|
80
|
+
hResponseObj[:readerStructurePass] = false
|
81
|
+
return {}
|
155
82
|
end
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
@responseObj[:readerVersionUsed] = curVersion
|
162
|
-
aCurVersion = curVersion.split('.')
|
163
|
-
curMinor = aCurVersion[1]
|
164
|
-
|
165
|
-
# test that minor version number is not exceeded
|
166
|
-
reqMinor = 0
|
167
|
-
if !aReqVersion[1].nil?
|
168
|
-
reqMinor = aReqVersion[1]
|
169
|
-
if curMinor < reqMinor
|
170
|
-
@responseObj[:readerStructurePass] = false
|
171
|
-
@responseObj[:readerStructureMessages] << 'Invalid input file schema declaration - see following message(s):\n'
|
172
|
-
@responseObj[:readerStructureMessages] << 'The requested reader minor version is not supported.'
|
173
|
-
@responseObj[:readerStructureMessages] << "mdJson version requested was '#{s}'"
|
174
|
-
return false
|
175
|
-
end
|
83
|
+
requestedVersion = hMdJson['schema']['version']
|
84
|
+
if requestedVersion.nil? || requestedVersion == ''
|
85
|
+
hResponseObj[:readerStructureMessages] << 'mdJson schema version is missing'
|
86
|
+
hResponseObj[:readerStructurePass] = false
|
87
|
+
return {}
|
176
88
|
end
|
177
89
|
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
90
|
+
# schema - 2.0.0 =< requested version =< current version
|
91
|
+
currentVersion = ADIWG::Mdtranslator::Readers::MdJson::VERSION
|
92
|
+
hResponseObj[:readerVersionRequested] = requestedVersion
|
93
|
+
hResponseObj[:readerVersionUsed] = currentVersion
|
94
|
+
aCurVersion = currentVersion.split('.')
|
95
|
+
aReqVersion = requestedVersion.split('.')
|
96
|
+
approved = false
|
97
|
+
if aReqVersion[0] == aCurVersion[0]
|
98
|
+
if aReqVersion[1] <= aCurVersion[1]
|
99
|
+
approved = true
|
187
100
|
end
|
188
|
-
|
101
|
+
end
|
102
|
+
unless approved
|
103
|
+
hResponseObj[:readerStructureMessages] << "mdJson schema version '#{requestedVersion}' is not supported"
|
104
|
+
hResponseObj[:readerStructurePass] = false
|
105
|
+
return {}
|
189
106
|
end
|
190
107
|
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
def self.readerModule(moduleName)
|
196
|
-
majVersion = @responseObj[:readerVersionUsed].split('.')[0]
|
197
|
-
dirName = File.join(File.dirname(__FILE__), 'modules_v' + majVersion.to_s)
|
198
|
-
fileName = File.join(dirName, moduleName)
|
199
|
-
|
200
|
-
# test for the existance of the module in the current mdJson version directory
|
201
|
-
if !File.exist?(File.join(dirName, moduleName + '.rb'))
|
202
|
-
# file not found
|
203
|
-
# ... look for module in previous version directory
|
204
|
-
# ... note: no previous version directories exist yet
|
205
|
-
|
206
|
-
# no prior version directory found
|
207
|
-
# ... file not found
|
208
|
-
return nil
|
108
|
+
# validate file against mdJson schema definition
|
109
|
+
validate(hMdJson, hResponseObj)
|
110
|
+
unless hResponseObj[:readerValidationPass]
|
111
|
+
return {}
|
209
112
|
end
|
210
113
|
|
211
|
-
|
114
|
+
# unpack the mdJson into the internal object
|
115
|
+
return MdJson.unpack(hMdJson, hResponseObj)
|
116
|
+
|
212
117
|
end
|
213
118
|
|
214
119
|
end
|
@@ -1,22 +1,20 @@
|
|
1
|
-
# Get minor version of ADIwg
|
1
|
+
# Get minor version of ADIwg mdJson 2.x
|
2
2
|
|
3
3
|
# History:
|
4
|
-
#
|
5
|
-
# Stan Smith 2014-07-21 added json structure validation method
|
6
|
-
# Stan Smith 2014-08-21 parsed json-schema validation message to readable text
|
7
|
-
# Stan Smith 2014-09-26 added processing of minor release numbers
|
8
|
-
# Stan Smith 2014-12-01 changed adiwgJson to mdJson in version name check
|
9
|
-
# Stan Smith 2014-12-03 changed class name to MdJsonValidation from AdiwgJsonValidation
|
10
|
-
# Stan Smith 2014-12-11 added namespace
|
4
|
+
# Stan Smith 2017-02-22 refactor for mdJson/mdTranslator 2.0
|
11
5
|
# Stan Smith 2015-06-22 replace global ($response) with passed in object (responseObj)
|
6
|
+
# Stan Smith 2014-12-11 added namespace
|
7
|
+
# Stan Smith 2014-12-03 changed class name to MdJsonValidation from AdiwgJsonValidation
|
8
|
+
# Stan Smith 2014-12-01 changed adiwgJson to mdJson in version name check
|
9
|
+
# Stan Smith 2014-09-26 added processing of minor release numbers
|
10
|
+
# Stan Smith 2014-08-21 parsed json-schema validation message to readable text
|
11
|
+
# Stan Smith 2014-07-21 added json structure validation method
|
12
|
+
# Stan Smith 2014-07-09 original script
|
12
13
|
|
13
14
|
|
14
15
|
require 'json'
|
15
16
|
require 'json-schema'
|
16
17
|
require 'adiwg-mdjson_schemas'
|
17
|
-
# temporary json-schema patch
|
18
|
-
# waiting for rubygem json-schema patch
|
19
|
-
require 'adiwg/mdtranslator/readers/mdJson/validator.rb'
|
20
18
|
|
21
19
|
module ADIWG
|
22
20
|
module Mdtranslator
|
@@ -24,24 +22,26 @@ module ADIWG
|
|
24
22
|
module MdJson
|
25
23
|
|
26
24
|
# validate json against the adiwg-json_schemas
|
27
|
-
# only
|
25
|
+
# only a single schema version is supported at this time
|
28
26
|
def self.validate(file, responseObj)
|
29
27
|
|
28
|
+
bStrict = false
|
29
|
+
if responseObj[:readerValidationLevel] == 'strict'
|
30
|
+
bStrict = true
|
31
|
+
end
|
32
|
+
ADIWG::MdjsonSchemas::Utils.load_schemas(false)
|
33
|
+
|
30
34
|
begin
|
31
|
-
|
32
|
-
|
33
|
-
if responseObj[:readerValidationLevel] == 'strict'
|
34
|
-
aValErrs = JSON::Validator.fully_validate(schema, file, :strict => true, :errors_as_objects => true)
|
35
|
-
elsif responseObj[:readerValidationLevel] == 'normal'
|
36
|
-
aValErrs = JSON::Validator.fully_validate(schema, file, :errors_as_objects => true)
|
37
|
-
end
|
35
|
+
aErrors = []
|
36
|
+
aErrors = JSON::Validator.fully_validate('schema.json', file, :strict=>bStrict)
|
38
37
|
|
39
|
-
if
|
38
|
+
if aErrors.length > 0
|
40
39
|
responseObj[:readerValidationPass] = false
|
41
40
|
responseObj[:readerValidationMessages] << 'mdJson schema validation Failed - see following message(s):\n'
|
42
|
-
responseObj[:readerValidationMessages] <<
|
41
|
+
responseObj[:readerValidationMessages] << aErrors
|
43
42
|
return
|
44
43
|
end
|
44
|
+
|
45
45
|
rescue JSON::Schema::ValidationError
|
46
46
|
responseObj[:readerValidationPass] = false
|
47
47
|
responseObj[:readerValidationMessages] << 'mdJson schema validation Failed - see following message(s):\n'
|
@@ -49,7 +49,6 @@ module ADIWG
|
|
49
49
|
return
|
50
50
|
end
|
51
51
|
|
52
|
-
responseObj[:readerValidationPass] = true
|
53
52
|
end
|
54
53
|
|
55
54
|
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
# unpack additional documentation
|
2
|
+
# Reader - ADIwg JSON to internal data structure
|
3
|
+
|
4
|
+
# History:
|
5
|
+
# Stan Smith 2016-10-17 refactored for mdJson 2.0
|
6
|
+
# Stan Smith 2015-07-14 refactored to remove global namespace constants
|
7
|
+
# Stan Smith 2015-06-22 replace global ($response) with passed in object (responseObj)
|
8
|
+
# Stan Smith 2014-12-30 added return if empty input
|
9
|
+
# ... found & fixed error of method using associatedResource object instead of
|
10
|
+
# ... additionalDocumentation object
|
11
|
+
# Stan Smith 2014-12-15 refactored to handle namespacing readers and writers
|
12
|
+
# Stan Smith 2014-11-06 original script
|
13
|
+
|
14
|
+
require_relative 'module_citation'
|
15
|
+
|
16
|
+
module ADIWG
|
17
|
+
module Mdtranslator
|
18
|
+
module Readers
|
19
|
+
module MdJson
|
20
|
+
|
21
|
+
module AdditionalDocumentation
|
22
|
+
|
23
|
+
def self.unpack(hAddDoc, responseObj)
|
24
|
+
|
25
|
+
# return nil object if input is empty
|
26
|
+
if hAddDoc.empty?
|
27
|
+
responseObj[:readerExecutionMessages] << 'Additional Documentation object is empty'
|
28
|
+
responseObj[:readerExecutionPass] = false
|
29
|
+
return nil
|
30
|
+
end
|
31
|
+
|
32
|
+
# instance classes needed in script
|
33
|
+
intMetadataClass = InternalMetadata.new
|
34
|
+
intAddDoc = intMetadataClass.newAdditionalDocumentation
|
35
|
+
|
36
|
+
# additional documentation - resource type [] (required) {resourceType}
|
37
|
+
if hAddDoc.has_key?('resourceType')
|
38
|
+
hAddDoc['resourceType'].each do |item|
|
39
|
+
unless item.empty?
|
40
|
+
hReturn = ResourceType.unpack(item, responseObj)
|
41
|
+
unless hReturn.nil?
|
42
|
+
intAddDoc[:resourceTypes] << hReturn
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
if intAddDoc[:resourceTypes].empty?
|
48
|
+
responseObj[:readerExecutionMessages] << 'Additional Documentation is missing resourceType'
|
49
|
+
responseObj[:readerExecutionPass] = false
|
50
|
+
return nil
|
51
|
+
end
|
52
|
+
|
53
|
+
# additional documentation - citation [] (required)
|
54
|
+
if hAddDoc.has_key?('citation')
|
55
|
+
hAddDoc['citation'].each do |item|
|
56
|
+
hDoc = Citation.unpack(item, responseObj)
|
57
|
+
unless hDoc.nil?
|
58
|
+
intAddDoc[:citation] << hDoc
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
if intAddDoc[:citation].empty?
|
63
|
+
responseObj[:readerExecutionMessages] << 'Additional Documentation is missing citation'
|
64
|
+
responseObj[:readerExecutionPass] = false
|
65
|
+
return nil
|
66
|
+
end
|
67
|
+
|
68
|
+
return intAddDoc
|
69
|
+
|
70
|
+
end
|
71
|
+
|
72
|
+
end
|
73
|
+
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|