adiwg-mdtranslator 1.2.1 → 1.3.0

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.
Files changed (254) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +7 -7
  3. data/Rakefile +1 -2
  4. data/adiwg-mdtranslator.gemspec +23 -23
  5. data/bin/mdtranslator +187 -155
  6. data/lib/adiwg/mdtranslator.rb +63 -38
  7. data/lib/adiwg/mdtranslator/internal/internal_metadata_obj.rb +123 -5
  8. data/lib/adiwg/mdtranslator/internal/module_coordinates.rb +55 -0
  9. data/lib/adiwg/mdtranslator/readers/mdJson/mdJson_reader.rb +98 -70
  10. data/lib/adiwg/mdtranslator/readers/mdJson/mdJson_validator.rb +13 -11
  11. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_additionalDocumentation.rb +13 -3
  12. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_address.rb +3 -1
  13. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_associatedResource.rb +22 -4
  14. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_boundingBox.rb +3 -1
  15. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_browseGraphic.rb +11 -1
  16. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_citation.rb +28 -9
  17. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_classedData.rb +49 -0
  18. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_classedDataItem.rb +53 -0
  19. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_contacts.rb +14 -12
  20. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_coverageInfo.rb +83 -0
  21. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_coverageItem.rb +136 -0
  22. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_dataDictionary.rb +9 -7
  23. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_dataQuality.rb +17 -3
  24. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_dateTime.rb +3 -1
  25. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_descriptiveKeyword.rb +22 -5
  26. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_dictionaryInfo.rb +18 -3
  27. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_digitalTransferOption.rb +80 -0
  28. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_dimension.rb +81 -0
  29. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_distributionInfo.rb +89 -0
  30. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_distributionOrder.rb +62 -0
  31. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_domain.rb +24 -5
  32. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_domainItem.rb +23 -4
  33. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_entity.rb +26 -7
  34. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_entityAttribute.rb +24 -1
  35. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_entityForeignKey.rb +20 -1
  36. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_entityIndex.rb +20 -1
  37. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_extent.rb +9 -7
  38. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_geoCoordSystem.rb +3 -1
  39. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_geoProperties.rb +9 -7
  40. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_geographicElement.rb +20 -18
  41. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_gridInfo.rb +67 -0
  42. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_imageInfo.rb +119 -0
  43. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_legalConstraint.rb +7 -1
  44. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_lineString.rb +5 -4
  45. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_lineage.rb +11 -5
  46. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_locale.rb +57 -0
  47. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_mdJson.rb +10 -9
  48. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_medium.rb +73 -0
  49. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_metadata.rb +14 -12
  50. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_metadataExtension.rb +3 -1
  51. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_metadataInfo.rb +35 -15
  52. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_onlineResource.rb +7 -1
  53. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_phone.rb +3 -1
  54. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_point.rb +5 -4
  55. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_polygon.rb +5 -4
  56. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_processStep.rb +19 -6
  57. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_resolution.rb +7 -1
  58. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_resourceFormat.rb +12 -1
  59. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_resourceIdentifier.rb +30 -5
  60. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_resourceInfo.rb +70 -33
  61. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_resourceMaintenance.rb +5 -3
  62. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_resourceSpecificUsage.rb +5 -3
  63. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_responsibleParty.rb +10 -8
  64. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_securityConstraint.rb +3 -1
  65. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_sensorInfo.rb +69 -0
  66. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_source.rb +11 -5
  67. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_spatialReference.rb +3 -1
  68. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_taxonClass.rb +3 -1
  69. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_taxonomy.rb +11 -9
  70. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_temporalElement.rb +9 -7
  71. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_timeInstant.rb +5 -3
  72. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_timePeriod.rb +6 -4
  73. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_verticalElement.rb +3 -1
  74. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_1.0 → modules_v1}/module_voucher.rb +5 -3
  75. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/version.rb +19 -0
  76. data/lib/adiwg/mdtranslator/readers/mdReaders.rb +21 -18
  77. data/lib/adiwg/mdtranslator/version.rb +15 -1
  78. data/lib/adiwg/mdtranslator/writers/html/html_writer.rb +11 -8
  79. data/lib/adiwg/mdtranslator/writers/html/md_html_writer.rb +21 -18
  80. data/lib/adiwg/mdtranslator/writers/html/sections/html_additionalDocumentation.rb +48 -0
  81. data/lib/adiwg/mdtranslator/writers/html/sections/html_associatedResource.rb +73 -0
  82. data/lib/adiwg/mdtranslator/writers/html/sections/html_body.rb +84 -135
  83. data/lib/adiwg/mdtranslator/writers/html/sections/html_citation.rb +18 -8
  84. data/lib/adiwg/mdtranslator/writers/html/sections/html_classedData.rb +50 -0
  85. data/lib/adiwg/mdtranslator/writers/html/sections/html_classedDataItem.rb +50 -0
  86. data/lib/adiwg/mdtranslator/writers/html/sections/html_contact.rb +5 -9
  87. data/lib/adiwg/mdtranslator/writers/html/sections/html_coverageInfo.rb +88 -0
  88. data/lib/adiwg/mdtranslator/writers/html/sections/html_coverageItem.rb +139 -0
  89. data/lib/adiwg/mdtranslator/writers/html/sections/html_dataDictionary.rb +13 -12
  90. data/lib/adiwg/mdtranslator/writers/html/sections/html_dataLineage.rb +5 -4
  91. data/lib/adiwg/mdtranslator/writers/html/sections/html_dataSource.rb +5 -4
  92. data/lib/adiwg/mdtranslator/writers/html/sections/html_dimension.rb +71 -0
  93. data/lib/adiwg/mdtranslator/writers/html/sections/html_distributor.rb +62 -0
  94. data/lib/adiwg/mdtranslator/writers/html/sections/html_domain.rb +3 -2
  95. data/lib/adiwg/mdtranslator/writers/html/sections/html_entity.rb +5 -4
  96. data/lib/adiwg/mdtranslator/writers/html/sections/html_extent.rb +7 -6
  97. data/lib/adiwg/mdtranslator/writers/html/sections/html_format.rb +7 -1
  98. data/lib/adiwg/mdtranslator/writers/html/sections/html_geographicElement.rb +7 -7
  99. data/lib/adiwg/mdtranslator/writers/html/sections/html_gridInfo.rb +65 -0
  100. data/lib/adiwg/mdtranslator/writers/html/sections/html_head.rb +18 -3
  101. data/lib/adiwg/mdtranslator/writers/html/sections/html_imageInfo.rb +120 -0
  102. data/lib/adiwg/mdtranslator/writers/html/sections/html_inlineCss.css +13 -20
  103. data/lib/adiwg/mdtranslator/writers/html/sections/html_keyword.rb +3 -2
  104. data/lib/adiwg/mdtranslator/writers/html/sections/html_medium.rb +19 -2
  105. data/lib/adiwg/mdtranslator/writers/html/sections/html_metadataInfo.rb +22 -9
  106. data/lib/adiwg/mdtranslator/writers/html/sections/html_orderProcess.rb +3 -2
  107. data/lib/adiwg/mdtranslator/writers/html/sections/html_processStep.rb +5 -4
  108. data/lib/adiwg/mdtranslator/writers/html/sections/html_resourceContact.rb +3 -2
  109. data/lib/adiwg/mdtranslator/writers/html/sections/html_resourceGeneral.rb +25 -14
  110. data/lib/adiwg/mdtranslator/writers/html/sections/html_resourceId.rb +30 -3
  111. data/lib/adiwg/mdtranslator/writers/html/sections/html_resourceInfo.rb +194 -129
  112. data/lib/adiwg/mdtranslator/writers/html/sections/html_resourceMaint.rb +3 -2
  113. data/lib/adiwg/mdtranslator/writers/html/sections/html_resourceOther.rb +7 -6
  114. data/lib/adiwg/mdtranslator/writers/html/sections/html_resourceUsage.rb +3 -2
  115. data/lib/adiwg/mdtranslator/writers/html/sections/html_responsibleParty.rb +3 -2
  116. data/lib/adiwg/mdtranslator/writers/html/sections/html_sensorInfo.rb +66 -0
  117. data/lib/adiwg/mdtranslator/writers/html/sections/html_taxonomy.rb +7 -6
  118. data/lib/adiwg/mdtranslator/writers/html/sections/html_temporalElement.rb +7 -6
  119. data/lib/adiwg/mdtranslator/writers/html/sections/html_timeInstant.rb +3 -2
  120. data/lib/adiwg/mdtranslator/writers/html/sections/html_timePeriod.rb +3 -2
  121. data/lib/adiwg/mdtranslator/writers/html/sections/html_transferOption.rb +29 -4
  122. data/lib/adiwg/mdtranslator/writers/html/version.rb +17 -0
  123. data/lib/adiwg/mdtranslator/writers/iso19110/class_FCfeatureCatalogue.rb +17 -16
  124. data/lib/adiwg/mdtranslator/writers/{iso → iso19110}/classes/class_address.rb +12 -8
  125. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_baseUnit.rb +42 -0
  126. data/lib/adiwg/mdtranslator/writers/{iso → iso19110}/classes/class_codelist.rb +8 -3
  127. data/lib/adiwg/mdtranslator/writers/{iso → iso19110}/classes/class_contact.rb +16 -25
  128. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_conventionalUnit.rb +68 -0
  129. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_definitionUnit.rb +39 -0
  130. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_derivedUnit.rb +46 -0
  131. data/lib/adiwg/mdtranslator/writers/{iso → iso19110}/classes/class_featureAttribute.rb +17 -14
  132. data/lib/adiwg/mdtranslator/writers/{iso → iso19110}/classes/class_featureConstraint.rb +6 -2
  133. data/lib/adiwg/mdtranslator/writers/{iso → iso19110}/classes/class_featureType.rb +16 -12
  134. data/lib/adiwg/mdtranslator/writers/{iso → iso19110}/classes/class_listedValue.rb +9 -18
  135. data/lib/adiwg/mdtranslator/writers/{iso → iso19110}/classes/class_multiplicity.rb +8 -4
  136. data/lib/adiwg/mdtranslator/writers/{iso → iso19110}/classes/class_onlineResource.rb +13 -9
  137. data/lib/adiwg/mdtranslator/writers/{iso → iso19110}/classes/class_responsibleParty.rb +16 -12
  138. data/lib/adiwg/mdtranslator/writers/{iso → iso19110}/classes/class_telephone.rb +9 -5
  139. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_unitsOfMeasure.rb +262 -0
  140. data/lib/adiwg/mdtranslator/writers/iso19110/iso19110_writer.rb +36 -16
  141. data/lib/adiwg/mdtranslator/writers/iso19110/version.rb +14 -0
  142. data/lib/adiwg/mdtranslator/writers/iso19115_2/class_MImetadata.rb +73 -37
  143. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_address.rb +116 -0
  144. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_aggregateInformation.rb +13 -9
  145. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_band.rb +165 -0
  146. data/lib/adiwg/mdtranslator/writers/{iso/units → iso19115_2/classes}/class_baseUnit.rb +6 -6
  147. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_boundingPolygon.rb +14 -10
  148. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_browseGraphic.rb +9 -5
  149. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_citation.rb +31 -16
  150. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_codelist.rb +56 -0
  151. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_contact.rb +87 -0
  152. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_contentInfo.rb +111 -0
  153. data/lib/adiwg/mdtranslator/writers/{iso/units → iso19115_2/classes}/class_conventionalUnit.rb +6 -6
  154. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_dataIdentification.rb +106 -59
  155. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_dataQuality.rb +11 -7
  156. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_date.rb +8 -5
  157. data/lib/adiwg/mdtranslator/writers/{iso/units → iso19115_2/classes}/class_definitionUnit.rb +7 -7
  158. data/lib/adiwg/mdtranslator/writers/{iso/units → iso19115_2/classes}/class_derivedUnit.rb +6 -6
  159. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_digitalTransferOptions.rb +92 -0
  160. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_dimension.rb +68 -0
  161. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_distribution.rb +8 -4
  162. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_distributor.rb +44 -22
  163. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_enumerationList.rb +7 -2
  164. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_extent.rb +18 -14
  165. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_format.rb +18 -2
  166. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_geographicBoundingBox.rb +6 -2
  167. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_geographicDescription.rb +8 -4
  168. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_geographicElement.rb +10 -6
  169. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_gridInfo.rb +80 -0
  170. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_identifier.rb +10 -6
  171. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_imageDescription.rb +157 -0
  172. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_keyword.rb +12 -8
  173. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_legalConstraints.rb +12 -8
  174. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_lineString.rb +13 -10
  175. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_lineage.rb +14 -10
  176. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_locale.rb +67 -0
  177. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_maintenanceInformation.rb +12 -8
  178. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_medium.rb +30 -9
  179. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_metadataExtension.rb +19 -15
  180. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_multiGeometry.rb +22 -17
  181. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_onlineResource.rb +94 -0
  182. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_point.rb +12 -9
  183. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_polygon.rb +14 -11
  184. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_processStep.rb +12 -9
  185. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_rangeElementDescription.rb +88 -0
  186. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_referenceSystem.rb +52 -0
  187. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_resolution.rb +6 -2
  188. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_resourceIdentifier.rb +94 -0
  189. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_responsibleParty.rb +106 -0
  190. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_securityConstraints.rb +12 -8
  191. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_source.rb +12 -8
  192. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_standardOrderProcess.rb +11 -9
  193. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_taxonClassification.rb +8 -4
  194. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_taxonSystem.rb +18 -14
  195. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_telephone.rb +92 -0
  196. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_temporalExtent.rb +10 -6
  197. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_timeInstant.rb +9 -8
  198. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_timePeriod.rb +10 -8
  199. data/lib/adiwg/mdtranslator/writers/{iso/units → iso19115_2/classes}/class_unitsOfMeasure.rb +48 -25
  200. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_usage.rb +11 -7
  201. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_useConstraints.rb +6 -2
  202. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_verticalExtent.rb +6 -2
  203. data/lib/adiwg/mdtranslator/writers/{iso → iso19115_2}/classes/class_vouchers.rb +8 -4
  204. data/lib/adiwg/mdtranslator/writers/iso19115_2/iso19115_2_writer.rb +32 -19
  205. data/lib/adiwg/mdtranslator/writers/iso19115_2/version.rb +17 -0
  206. data/lib/adiwg/mdtranslator/writers/mdWriters.rb +21 -24
  207. data/test/readers/mdJson/v1/tc_reader_mdjson_additionalDocumentation.rb +116 -0
  208. data/test/readers/mdJson/v1/tc_reader_mdjson_address.rb +111 -0
  209. data/test/readers/mdJson/v1/tc_reader_mdjson_associatedResource.rb +157 -0
  210. data/test/readers/mdJson/v1/tc_reader_mdjson_browseGraphic.rb +119 -0
  211. data/test/readers/mdJson/v1/tc_reader_mdjson_citation.rb +143 -0
  212. data/test/readers/mdJson/v1/tc_reader_mdjson_contact.rb +138 -0
  213. data/test/readers/mdJson/v1/tc_reader_mdjson_dataQuality.rb +111 -0
  214. data/test/readers/mdJson/v1/tc_reader_mdjson_dateTime.rb +159 -0
  215. data/test/readers/mdJson/v1/tc_reader_mdjson_descriptiveKeyword.rb +115 -0
  216. data/test/readers/mdJson/v1/tc_reader_mdjson_dictionaryInfo.rb +121 -0
  217. data/test/readers/mdJson/v1/tc_reader_mdjson_digitalTransferOption.rb +94 -0
  218. data/test/readers/mdJson/v1/tc_reader_mdjson_distributionOrder.rb +103 -0
  219. data/test/readers/mdJson/v1/tc_reader_mdjson_domain.rb +130 -0
  220. data/test/readers/mdJson/v1/tc_reader_mdjson_domainItem.rb +98 -0
  221. data/test/readers/mdJson/v1/tc_reader_mdjson_entity.rb +134 -0
  222. data/test/readers/mdJson/v1/tc_reader_mdjson_entityAttribute.rb +154 -0
  223. data/test/readers/mdJson/v1/tc_reader_mdjson_entityForeignKey.rb +100 -0
  224. data/test/readers/mdJson/v1/tc_reader_mdjson_entityIndex.rb +99 -0
  225. data/test/readers/mdJson/v1/tc_reader_mdjson_legalConstraint.rb +104 -0
  226. data/test/readers/mdJson/v1/tc_reader_mdjson_lineage.rb +117 -0
  227. data/test/readers/mdJson/v1/tc_reader_mdjson_medium.rb +98 -0
  228. data/test/readers/mdJson/v1/tc_reader_mdjson_metadataInfo.rb +141 -0
  229. data/test/readers/mdJson/v1/tc_reader_mdjson_onlineResource.rb +110 -0
  230. data/test/readers/mdJson/v1/tc_reader_mdjson_phone.rb +112 -0
  231. data/test/readers/mdJson/v1/tc_reader_mdjson_processStep.rb +118 -0
  232. data/test/readers/mdJson/v1/tc_reader_mdjson_resolution.rb +77 -0
  233. data/test/readers/mdJson/v1/tc_reader_mdjson_source.rb +117 -0
  234. data/test/readers/mdJson/v1/tc_translation_19110.rb +57 -0
  235. data/test/readers/mdJson/{v1_0/tc_translation.rb → v1/tc_translation_19115_2.rb} +16 -31
  236. data/test/writers/iso19115_2/tc_writer_iso19115_2_address.rb +22 -15
  237. metadata +219 -140
  238. data/lib/adiwg/mdtranslator/readers/mdJson/modules_1.0/module_coordinates.rb +0 -63
  239. data/lib/adiwg/mdtranslator/readers/mdJson/modules_1.0/module_distributionInfo.rb +0 -161
  240. data/lib/adiwg/mdtranslator/writers/html/sections/logo150.txt +0 -25
  241. data/lib/adiwg/mdtranslator/writers/iso/classes/class_digitalTransferOptions.rb +0 -62
  242. data/lib/adiwg/mdtranslator/writers/iso/classes/class_genericMetaData.rb +0 -74
  243. data/lib/adiwg/mdtranslator/writers/iso/classes/class_referenceIdentifier.rb +0 -53
  244. data/lib/adiwg/mdtranslator/writers/iso/classes/class_referenceSystem.rb +0 -40
  245. data/test/readers/mdJson/v1_0/tc_reader_mdjson_additionalDocumentation.rb +0 -85
  246. data/test/readers/mdJson/v1_0/tc_reader_mdjson_address.rb +0 -100
  247. data/test/readers/mdJson/v1_0/tc_reader_mdjson_associatedResource.rb +0 -101
  248. data/test/readers/mdJson/v1_0/tc_reader_mdjson_browseGraphic.rb +0 -86
  249. data/test/readers/mdJson/v1_0/tc_reader_mdjson_citation.rb +0 -116
  250. data/test/readers/mdJson/v1_0/tc_reader_mdjson_contact.rb +0 -138
  251. data/test/readers/mdJson/v1_0/tc_reader_mdjson_dictionaryInfo.rb +0 -95
  252. data/test/readers/mdJson/v1_0/tc_reader_mdjson_domain.rb +0 -99
  253. data/test/readers/mdJson/v1_0/tc_reader_mdjson_onlineResource.rb +0 -92
  254. data/test/readers/mdJson/v1_0/tc_reader_mdjson_phone.rb +0 -110
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1d4626d73ad3ea1e96257b5c2437c4215fe965c2
4
- data.tar.gz: 82375f7932a14fa89aa68142a78956968c62dd44
3
+ metadata.gz: 0c9c38bce8eb28f8f717ca37d09e30519bbef40d
4
+ data.tar.gz: 85551feb2d6388a9debe63352b6bcd38d209d4f5
5
5
  SHA512:
6
- metadata.gz: e9bd03f3a70e9d8bee7922827b73c2beeba00bc1047c85f226c0207e3ef3e296bea0c1102ca05543b7c65e715a8b8bdacf79963ff8c28614949c052d8d8fa08d
7
- data.tar.gz: c474ef2684cf0fda1431c8e369c91362485eec31a27a8f5dcd49311f194d9a161c8a67be36360731b9267fd2a761164ad561298385d8ee1b1d921aa94bfec982
6
+ metadata.gz: c3c61a184344ed5340fad65398fac03bd5efb7f8e1f368a20717a3931d9bd4c0d784e7283d57473b72d0580ff8789b0fc157930bc061b49d9da3f9c644d6639c
7
+ data.tar.gz: 6027a62b7c3116e947c32dc6dbd9602243fc7748ecf5c3a9d228da28acd183228850ad1885ba5d26c79d3cd510e043ca1925ed8efd629ae8203603a6816e3af2
data/README.md CHANGED
@@ -1,15 +1,15 @@
1
1
  [![Build Status](https://travis-ci.org/adiwg/mdTranslator.svg?branch=master)](https://travis-ci.org/adiwg/mdTranslator)
2
2
  [![Gem Version](https://badge.fury.io/rb/adiwg-mdtranslator.svg)](http://badge.fury.io/rb/adiwg-mdtranslator)
3
3
 
4
- # Mdtranslator
4
+ # mdTranslator
5
5
 
6
- TODO: Write a gem description
6
+ mdtranslator was written by the [Alaska Data Integration Working Group](http://www.adiwg.org) (ADIwg) to assist with creating ISO 19139 metadata records. Input to the mdtranslator is JSON conforming to the [mdJson-schemas](https://github.com/adiwg/mdJson-schemas). The mdtranslator architecture allows developers to write additional readers for other input formats and/or write additional writers for other output other than ISO 19139, e.g. HTML.
7
7
 
8
8
  ## Installation
9
9
 
10
10
  Add this line to your application's Gemfile:
11
11
 
12
- gem 'mdtranslator'
12
+ gem 'adiwg-mdtranslator'
13
13
 
14
14
  And then execute:
15
15
 
@@ -17,15 +17,15 @@ And then execute:
17
17
 
18
18
  Or install it yourself as:
19
19
 
20
- $ gem install mdtranslator
20
+ $ gem install adiwg-mdtranslator
21
21
 
22
- ## Usage
22
+ ## CLI Usage
23
23
 
24
- TODO: Write usage instructions here
24
+ $ mdtranslator help translate
25
25
 
26
26
  ## Contributing
27
27
 
28
- 1. Fork it ( https://github.com/[my-github-username]/mdtranslator/fork )
28
+ 1. Fork it ( https://github.com/[my-github-username]/mdTranslator/fork )
29
29
  2. Create your feature branch (`git checkout -b my-new-feature`)
30
30
  3. Commit your changes (`git commit -am 'Add some feature'`)
31
31
  4. Push to the branch (`git push origin my-new-feature`)
data/Rakefile CHANGED
@@ -4,8 +4,7 @@ require 'rake/testtask'
4
4
  Rake::TestTask.new do |t|
5
5
  t.libs << 'test'
6
6
  t.test_files = FileList[
7
- 'test/readers/mdJson/v1_0/tc*.rb',
8
- 'test/writers/iso19115_2/tc*.rb',
7
+ 'test/readers/mdJson/v1/tc*.rb'
9
8
  ]
10
9
  t.verbose = true
11
10
  end
@@ -5,32 +5,32 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
5
  require 'adiwg/mdtranslator/version'
6
6
 
7
7
  Gem::Specification.new do |spec|
8
- spec.name = "adiwg-mdtranslator"
9
- spec.version = ADIWG::Mdtranslator::VERSION
10
- spec.authors = ["Stan Smith", "Josh Bradley"]
11
- spec.email = ["stansmith@usgs.gov", "joshua_bradley@fws.gov"]
12
- spec.summary = %q{The mdtranslator (metadata translator) is a tool for translating metadata in one format to another. The tool is written and maintained by the Alaska Data Integration Working Group (ADIwg).}
13
- spec.description = %q{The mdtranslator was written by the Alaska Data Integration Working Group (ADIwg) to assist with creating ISO 19139 metadata records. Input to the mdtranslator is JSON conforming to the mdJson-schema. The mdtranslator architecture allows developers to write additional readers for other input formats and/or write additional writers for other output other than ISO 19139.}
14
- spec.homepage = "http://www.adiwg.org/mdTranslator"
15
- spec.license = "UNLICENSED"
8
+ spec.name = "adiwg-mdtranslator"
9
+ spec.version = ADIWG::Mdtranslator::VERSION
10
+ spec.authors = ["Stan Smith", "Josh Bradley"]
11
+ spec.email = ["stansmith@usgs.gov", "joshua_bradley@fws.gov"]
12
+ spec.summary = %q{The mdtranslator (metadata translator) is a tool for translating metadata in one format to another. The tool is written and maintained by the Alaska Data Integration Working Group (ADIwg).}
13
+ spec.description = %q{The mdtranslator was written by the Alaska Data Integration Working Group (ADIwg) to assist with creating ISO 19139 metadata records. Input to the mdtranslator is JSON conforming to the mdJson-schema. The mdtranslator architecture allows developers to write additional readers for other input formats and/or write additional writers for other output other than ISO 19139.}
14
+ spec.homepage = "http://www.adiwg.org/mdTranslator"
15
+ spec.license = "UNLICENSED"
16
16
 
17
- spec.files = %x(git ls-files).split($/)
18
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
19
- spec.test_files = spec.files.grep(%r{^(tc|test|spec|features)/})
20
- spec.require_paths = ["lib"]
17
+ spec.files = %x(git ls-files).split($/)
18
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
19
+ spec.test_files = spec.files.grep(%r{^(tc|test|spec|features)/})
20
+ spec.require_paths = ["lib"]
21
21
 
22
- spec.required_ruby_version = '>= 2.1'
22
+ spec.required_ruby_version = '>= 2.1'
23
23
 
24
- spec.add_development_dependency "bundler", "~> 1"
25
- spec.add_development_dependency "rake", "~> 10"
26
- spec.add_development_dependency "minitest", "~> 5"
24
+ spec.add_development_dependency "bundler", "~> 1"
25
+ spec.add_development_dependency "rake", "~> 10"
26
+ spec.add_development_dependency "minitest", "~> 5"
27
27
 
28
- spec.add_runtime_dependency "json", "~> 1.8"
29
- spec.add_runtime_dependency "builder", "~> 3.2"
30
- spec.add_runtime_dependency "thor", "~> 0.19"
31
- spec.add_runtime_dependency "uuidtools", "~> 2.1"
32
- spec.add_runtime_dependency "json-schema", "~> 2.4.0", "< 2.5.0"
33
- spec.add_runtime_dependency "adiwg-mdjson_schemas", "~> 1.0.0"
34
- spec.add_runtime_dependency "adiwg-mdcodes", "~> 1.0"
28
+ spec.add_runtime_dependency "json", "~> 1.8"
29
+ spec.add_runtime_dependency "builder", "~> 3.2"
30
+ spec.add_runtime_dependency "thor", "~> 0.19"
31
+ spec.add_runtime_dependency "uuidtools", "~> 2.1"
32
+ spec.add_runtime_dependency "json-schema", "~> 2.4.0", "< 2.5.0"
33
+ spec.add_runtime_dependency "adiwg-mdjson_schemas", "~> 1.0"
34
+ spec.add_runtime_dependency "adiwg-mdcodes", "~> 1.0"
35
35
 
36
36
  end
data/bin/mdtranslator CHANGED
@@ -7,173 +7,205 @@
7
7
  # Stan Smith 2014-09-21 coded cli to 0.8.0 api
8
8
  # Stan Smith 2014-10-09 added version command to the CLI
9
9
  # Stan Smith 2014-12-29 changed default reader from adiwgJson to mdJson
10
- # Stan Smith 2015-01-15 changed translate method to use keyword arguments
10
+ # Stan Smith 2014-01-16 changed ADIWG::Mdtranslator.translate() to keyword parameter list
11
+ # Stan Smith 2015-07-17 added method_options to provide custom CSS
11
12
 
12
13
  require 'thor'
13
14
  require 'adiwg-mdtranslator'
14
15
 
15
16
  class Mdtranslator < Thor
16
17
 
17
- # exit_on_failure added to exit with code 1 if thor cannot complete task
18
- # such as if required parameters are missing
19
- def self.exit_on_failure?
20
- true
21
- end
22
-
23
- # basic cli description
24
- desc 'translate [FILE]', %q{Pass JSON string or filename plus parameters to mdtranslator translate}
25
- long_desc <<-LONGDESC
26
- 'mdtranslator translate' provides command line access to the ADIWG metadata translator
27
- with options to select the input file reader, select writer output format, show empty tags
28
- in XML outputs, and choose level of validation for JSON inputs.
29
- LONGDESC
30
- # define cli options
31
- method_option :reader, :aliases => '-r', :desc => 'Reader to read your input metadata file', :enum => %w{mdJson}, :required => true
32
- method_option :writer, :aliases => '-w', :desc => 'Writer to create your output metadata file, leave blank to validate input only', :enum => %w{iso19115_2 iso19110 html}
33
- method_option :validate, :aliases => '-v', :desc => 'Specify level of validation to be performed', :enum => %w{none normal strict}, :default => 'normal'
34
- method_option :showAllTags, :aliases => '-s', :desc => 'Include tags for unused attributes', :type => :boolean, :default => false
35
- method_option :messages, :aliases => '-m', :desc => 'On error return messages as formatted text or json object', :enum => %w{json text}, :default => 'text'
36
- method_option :returnObject, :aliases => '-o', :desc => 'Return full JSON object generated by translator', :type => :boolean, :default => false
37
-
38
- # accept command and options
39
- def translate(file)
40
-
41
- # test to see if file parameter is a local file
42
- # if not ... it is assumed to be a json string
43
- if File.exist?(file)
44
- # read file
45
- my_file = File.open(file, 'r')
46
- fileObj = my_file.read
47
- my_file.close
48
- else
49
- fileObj = file
50
- end
51
-
52
- # call mdtranslator
18
+ # exit_on_failure added to exit with code 1 if thor cannot complete task
19
+ # such as if required parameters are missing
20
+ def self.exit_on_failure?
21
+ true
22
+ end
23
+
24
+ # basic cli description
25
+ desc 'translate [FILE]', %q{Pass JSON string or filename plus parameters to mdtranslator translate}
26
+ long_desc <<-LONGDESC
27
+ 'mdtranslator translate' provides command line access to the ADIwg metadata translator, mdTranslator. The 'translate'
28
+ method converts input metadata to supported established metadata metadata formats. The CLI accepts an input metadata
29
+ file with options to select the input reader format, writer output format, display empty tags
30
+ in XML outputs, and choose level of validation for mdJson input files.
31
+ LONGDESC
32
+ # define cli options
33
+ method_option :reader, :aliases => '-r', :desc => 'Reader to read your input metadata file', :enum => %w{mdJson}, :required => true
34
+ method_option :writer, :aliases => '-w', :desc => 'Writer to create your output metadata file, leave blank to validate input only', :enum => %w{iso19115_2 iso19110 html}
35
+ method_option :validate, :aliases => '-v', :desc => 'Specify level of validation to be performed', :enum => %w{none normal strict}, :default => 'normal'
36
+ method_option :showAllTags, :aliases => '-s', :desc => 'Include tags for unused attributes', :type => :boolean, :default => false
37
+ method_option :messages, :aliases => '-m', :desc => 'On error return messages as formatted text or json object', :enum => %w{json text}, :default => 'text'
38
+ method_option :returnObject, :aliases => '-o', :desc => 'Return full JSON object generated by translator', :type => :boolean, :default => false
39
+ method_option :cssLink, :desc => 'Fully qualified link to a CSS file to customize HTML writer output', :type => :string
40
+ method_option :css, :desc => 'Local CSS file or inline CSS to customize HTML writer output', :type => :string
41
+
42
+ # accept command and options
43
+ def translate(file)
44
+
45
+ # test to see if file parameter is a local file name
46
+ # if not ... assumed it is a JSON string
47
+ # note: this will need to be modified if/when a reader is added that is not in JSON format
48
+ if File.exist?(file)
49
+ # read file
50
+ my_file = File.open(file, 'r')
51
+ fileObj = my_file.read
52
+ my_file.close
53
+ else
54
+ fileObj = file
55
+ end
56
+
57
+ # test to see if css parameter is a local file name
58
+ # if not ... assumed it is a css string
59
+ css = options[:css]
60
+ if css
61
+ if File.exist?(css)
62
+ # read file
63
+ my_file = File.open(css, 'r')
64
+ cssObj = my_file.read
65
+ my_file.close
66
+ else
67
+ cssObj = css
68
+ end
69
+ end
70
+
71
+ # for testing parameters
72
+ # puts 'reader: ' + options[:reader]
73
+ # puts 'writer: ' + options[:writer]
74
+ # puts 'validation level: ' + options[:validate]
75
+ # puts 'showAllTags: ' + options[:showAllTags].to_s
76
+ # puts 'message format: ' + options[:messages]
77
+ # puts 'return object: ' + options[:returnObject].to_s
78
+ # puts 'css link: ' + options[:cssLink]
79
+ # puts 'css: ' + options[:css]
80
+
81
+ # call mdtranslator
53
82
  mdReturn = ADIWG::Mdtranslator.translate(
54
83
  file: fileObj,
55
84
  reader: options[:reader],
56
85
  writer: options[:writer],
57
86
  validate: options[:validate],
58
- showAllTags: options[:showAllTags])
59
-
60
- # determine return content and type of return ...
61
- if mdReturn[:readerStructurePass] && mdReturn[:readerValidationPass]
62
-
63
- # no problem was found with the input file
64
- if options[:writer].nil?
65
- # if no writer was specified the input was being validated only,
66
- # ...no writer output will have been generated,
67
- # ...and the return will be a string unless json was requested
68
- if options[:messages] == 'json'
69
- $stdout.puts mdReturn.to_json
70
- return
71
- else
72
- $stdout.puts 'Success'
73
- return
74
- end
75
- else
76
- # a writer was specified,
77
- # output is expected from the translator's writer
78
- if mdReturn[:writerPass]
79
- # writer output was generated
80
- # ...return the writer output in its native format unless json was requested
81
- if options[:returnObject]
82
- $stdout.puts mdReturn.to_json
83
- return
84
- else
85
- $stdout.puts mdReturn[:writerOutput].to_s
86
- return
87
- end
88
- else
89
- # the writer failed or generated warnings to be reported
90
- # ...return the messages as a string unless json was requested
91
- if options[:messages] == 'json'
92
- $stdout.puts mdReturn.to_json
93
- return
94
- else
95
- # build a string with messages issues from parser and validator
96
- s = ''
97
- s += "Failed\n"
98
- s += "Writer failed to generate output or issued significant warnings\n"
99
- s += "See following messages for further information\n"
100
-
101
- # post structure messages
102
- i = 0
103
- mdReturn[:writerMessages].each do |message|
104
- i += 1
105
- s += "\nMessage: #{i}\n"
106
- s += message + "\n"
107
- end
108
-
109
- $stdout.puts s
110
- return
111
-
112
- end
113
- end
114
- end
115
-
116
- else
117
-
118
- # problems were found with the input file
119
-
120
- # if no writer was specified the input was being validated only,
121
- # ...no writer output will have been generated,
122
- # ...and return is always expected to be a string
123
- if options[:messages] == 'json'
124
- $stdout.puts mdReturn.to_json
125
- return
126
- else
127
- # build a string with messages issues from parser and validator
128
- s = ''
129
- s += "Failed\n"
130
- s += "Input failed to pass either file structure validation or content does not match schema\n"
131
- s += "See following messages for further information\n"
132
-
133
- # post structure messages
134
- if mdReturn[:readerStructurePass]
135
- s += "Success - Input structure is valid\n"
136
- else
137
- s += "Fail - Structure of input file is invalid - see following message(s):\n"
138
- i = 0
139
- mdReturn[:readerStructureMessages].each do |message|
140
- i += 1
141
- s += "\nMessage: #{i}\n"
142
- s += message.to_s + "\n"
143
- end
144
- end
145
-
146
- # post validator messages
147
- unless mdReturn[:readerValidationPass].nil?
148
- if mdReturn[:readerValidationPass]
149
- s += "Success - Input content passes schema definition\n"
150
- else
151
- s += "Fail - Input content did not pass schema validation - see following message(s):\n"
152
- i = 0
153
- mdReturn[:readerValidationMessages].each do |message|
154
- i += 1
155
- s += "\nMessage: #{i}\n"
156
- s += message.to_s + "\n"
157
- end
158
- end
159
- end
160
-
161
- $stdout.puts s
162
- return
163
-
164
- end
165
- end
166
-
167
- end
168
-
169
- desc 'version', %q{Returns the version of mdTranslator}
170
- long_desc <<-LONGDESC
87
+ showAllTags: options[:showAllTags],
88
+ css: cssObj,
89
+ cssLink: options[:cssLink])
90
+
91
+ # determine return content and type of return ...
92
+ if mdReturn[:readerStructurePass] && mdReturn[:readerValidationPass]
93
+
94
+ # no problem was found with the input file
95
+ if options[:writer].nil?
96
+ # if no writer was specified the input was being validated only,
97
+ # ...no writer output will have been generated,
98
+ # ...and the return will be a string unless json was requested
99
+ if options[:messages] == 'json'
100
+ $stdout.write mdReturn.to_json
101
+ return
102
+ else
103
+ $stdout.write 'Success'
104
+ return
105
+ end
106
+ else
107
+ # a writer was specified,
108
+ # output is expected from the translator's writer
109
+ if mdReturn[:writerPass]
110
+ # writer output was generated
111
+ # ...return the writer output in its native format unless json was requested
112
+ if options[:returnObject]
113
+ $stdout.write mdReturn.to_json
114
+ return
115
+ else
116
+ $stdout.write mdReturn[:writerOutput].to_s
117
+ return
118
+ end
119
+ else
120
+ # the writer failed or generated warnings to be reported
121
+ # ...return the messages as a string unless json was requested
122
+ if options[:messages] == 'json'
123
+ $stdout.write mdReturn.to_json
124
+ return
125
+ else
126
+ # build a string with messages issues from parser and validator
127
+ s = ''
128
+ s += "Failed\n"
129
+ s += "Writer failed to generate output or issued significant warnings\n"
130
+ s += "See following messages for further information\n"
131
+
132
+ # post structure messages
133
+ i = 0
134
+ mdReturn[:writerMessages].each do |message|
135
+ i += 1
136
+ s += "\nMessage: #{i}\n"
137
+ s += message + "\n"
138
+ end
139
+
140
+ $stdout.write s
141
+ return
142
+
143
+ end
144
+ end
145
+ end
146
+
147
+ else
148
+
149
+ # problems were found with the input file
150
+
151
+ # if no writer was specified the input was being validated only,
152
+ # ...no writer output will have been generated,
153
+ # ...and return is always expected to be a string
154
+ if options[:messages] == 'json'
155
+ $stdout.write mdReturn.to_json
156
+ return
157
+ else
158
+ # build a string with messages issues from parser and validator
159
+ s = ''
160
+ s += "Failed\n"
161
+ s += "Input failed to pass either file structure validation or content does not match schema\n"
162
+ s += "See following messages for further information\n"
163
+
164
+ # post structure messages
165
+ if mdReturn[:readerStructurePass]
166
+ s += "Success - Input structure is valid\n"
167
+ else
168
+ s += "Fail - Structure of input file is invalid - see following message(s):\n"
169
+ i = 0
170
+ mdReturn[:readerStructureMessages].each do |message|
171
+ i += 1
172
+ s += "\nMessage: #{i}\n"
173
+ s += message.to_s + "\n"
174
+ end
175
+ end
176
+
177
+ # post validator messages
178
+ unless mdReturn[:readerValidationPass].nil?
179
+ if mdReturn[:readerValidationPass]
180
+ s += "Success - Input content passes schema definition\n"
181
+ else
182
+ s += "Fail - Input content did not pass schema validation - see following message(s):\n"
183
+ i = 0
184
+ mdReturn[:readerValidationMessages].each do |message|
185
+ i += 1
186
+ s += "\nMessage: #{i}\n"
187
+ s += message.to_s + "\n"
188
+ end
189
+ end
190
+ end
191
+
192
+ $stdout.write s
193
+ return
194
+
195
+ end
196
+ end
197
+
198
+ end
199
+
200
+ desc 'version', %q{Returns the version of mdTranslator}
201
+ long_desc <<-LONGDESC
171
202
  'mdtranslator version' returns the version number for mdTranslator
172
- LONGDESC
173
- def version
174
- $stdout.puts ADIWG::Mdtranslator::VERSION
175
- end
203
+ LONGDESC
176
204
 
177
- Mdtranslator.start(ARGV)
205
+ def version
206
+ $stdout.write ADIWG::Mdtranslator::VERSION
207
+ end
208
+
209
+ Mdtranslator.start(ARGV)
178
210
 
179
211
  end