adiwg-mdtranslator 2.18.4 → 2.19.0.pre.beta.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test.yml +14 -0
  3. data/Gemfile.lock +11 -9
  4. data/adiwg-mdtranslator.gemspec +3 -3
  5. data/lib/adiwg/mdtranslator/internal/internal_metadata_obj.rb +29 -13
  6. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_dataQuality.rb +149 -0
  7. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_fgdc.rb +2 -2
  8. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_keyword.rb +10 -6
  9. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_lineage.rb +14 -11
  10. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_methodology.rb +26 -34
  11. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_process.rb +13 -1
  12. data/lib/adiwg/mdtranslator/readers/mdJson/mdJson_reader.rb +2 -2
  13. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_conformanceResult.rb +1 -1
  14. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_coverageResult.rb +8 -7
  15. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_dataQuality.rb +4 -4
  16. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_dataQualityReport.rb +8 -16
  17. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_evaluationMethod.rb +1 -1
  18. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_legalConstraint.rb +8 -8
  19. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_qualityMeasure.rb +34 -0
  20. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_qualityResultFile.rb +72 -0
  21. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_rangeElementDescription.rb +2 -2
  22. data/lib/adiwg/mdtranslator/readers/sbJson/modules/module_contact.rb +13 -0
  23. data/lib/adiwg/mdtranslator/version.rb +1 -1
  24. data/lib/adiwg/mdtranslator/writers/fgdc/classes/{class_quality.rb → class_dataQuality.rb} +14 -10
  25. data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_fgdc.rb +3 -3
  26. data/lib/adiwg/mdtranslator/writers/html/sections/html_body.rb +5 -1
  27. data/lib/adiwg/mdtranslator/writers/html/sections/html_dataQuality.rb +39 -18
  28. data/lib/adiwg/mdtranslator/writers/html/sections/html_dataQualityReport.rb +385 -0
  29. data/lib/adiwg/mdtranslator/writers/html/sections/html_rangeElementDescription.rb +2 -2
  30. data/lib/adiwg/mdtranslator/writers/html/sections/html_resultFile.rb +60 -0
  31. data/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_dataQualityReport.rb +213 -39
  32. data/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_mdMetadata.rb +1 -1
  33. data/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_organization.rb +1 -19
  34. data/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_qualityResultFile.rb +55 -0
  35. data/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_rangeElementDescription.rb +14 -13
  36. data/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_sampleDimension.rb +6 -6
  37. data/lib/adiwg/mdtranslator/writers/iso19115_3/iso19115_3_writer.rb +2 -0
  38. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_allocation.rb +1 -1
  39. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_coverageResult.rb +30 -0
  40. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_dataQuality.rb +3 -1
  41. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_dataQualityReport.rb +12 -10
  42. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_descriptiveResult.rb +3 -3
  43. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_funding.rb +2 -2
  44. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_legalConstraint.rb +1 -1
  45. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_metadata.rb +1 -1
  46. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_qualityMeasure.rb +4 -3
  47. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_qualityResultFile.rb +23 -0
  48. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_standaloneQualityReport.rb +31 -0
  49. data/lib/adiwg/mdtranslator/writers/sbJson/sections/sbJson_contact.rb +10 -0
  50. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_additionalDocumentation.rb +1 -1
  51. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_algorithm.rb +1 -1
  52. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_allocation.rb +1 -1
  53. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_associatedResource.rb +2 -2
  54. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_attribute.rb +2 -2
  55. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_attributeGroup.rb +1 -1
  56. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_body.rb +15 -31
  57. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_citation.rb +5 -5
  58. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_classedData.rb +1 -1
  59. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_constraint.rb +5 -5
  60. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_contact.rb +37 -5
  61. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_coverageInfo.rb +3 -3
  62. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_dataDictionary.rb +5 -5
  63. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_dataQuality.rb +31 -12
  64. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_dataQualityReport.rb +385 -0
  65. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_distribution.rb +1 -1
  66. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_distributor.rb +3 -3
  67. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_domain.rb +3 -3
  68. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_domainItem.rb +1 -1
  69. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_entity.rb +5 -5
  70. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_entityAttribute.rb +3 -3
  71. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_extent.rb +3 -3
  72. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_feature.rb +5 -5
  73. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_featureCollection.rb +4 -4
  74. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_featureProperties.rb +1 -1
  75. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_format.rb +1 -1
  76. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_funding.rb +1 -1
  77. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_geodeticParameters.rb +2 -2
  78. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_geographicElement.rb +4 -4
  79. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_geographicExtent.rb +4 -14
  80. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_geologicAge.rb +1 -1
  81. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_geometryCollection.rb +4 -4
  82. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_geometryObject.rb +2 -2
  83. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_georectifiedRepresentation.rb +2 -2
  84. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_georeferenceableRepresentation.rb +3 -3
  85. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_graphic.rb +2 -2
  86. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_gridRepresentation.rb +2 -2
  87. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_identifier.rb +1 -1
  88. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_imageInfo.rb +1 -1
  89. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_keyword.rb +14 -16
  90. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_metadataInfo.rb +10 -9
  91. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_metadataRepository.rb +1 -1
  92. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_processStep.rb +1 -1
  93. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_processing.rb +3 -3
  94. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_rangeElementDescription.rb +2 -2
  95. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_resourceInfo.rb +17 -17
  96. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_responsibility.rb +1 -1
  97. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_resultFile.rb +60 -0
  98. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_scope.rb +12 -12
  99. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_source.rb +2 -2
  100. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_taxonomy.rb +1 -1
  101. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_timePeriod.rb +1 -3
  102. metadata +23 -13
  103. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_quality.rb +0 -181
  104. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_bodyScript.js +0 -317
@@ -4,6 +4,7 @@ require_relative 'module_coverageResult'
4
4
  require_relative 'module_descriptiveResult'
5
5
  require_relative 'module_quantitativeResult'
6
6
  require_relative 'module_evaluationMethod'
7
+ require_relative 'module_qualityMeasure'
7
8
 
8
9
  module ADIWG
9
10
  module Mdtranslator
@@ -28,6 +29,10 @@ module ADIWG
28
29
 
29
30
  intReport[:type] = hReport["type"]
30
31
 
32
+ if hReport.has_key?('standaloneQualityReportDetails')
33
+ intReport[:standaloneQualityReportDetails] = hReport['standaloneQualityReportDetails']
34
+ end
35
+
31
36
  if hReport.has_key?('conformanceResult')
32
37
  hReport['conformanceResult'].each do |item|
33
38
  hReturn = ConformanceResult.unpack(item, responseObj)
@@ -68,23 +73,10 @@ module ADIWG
68
73
  end
69
74
 
70
75
  if hReport.has_key?('qualityMeasure')
71
- qualityMeasure = hReport['qualityMeasure']
72
- identifier = qualityMeasure['identifier']
73
-
74
- intReport[:qualityMeasure] = {}
75
-
76
- if identifier
77
- intReport[:qualityMeasure][:identifier] = {
78
- identifier: identifier['identifier'],
79
- namespace: identifier['namespace'],
80
- version: identifier['version'],
81
- description: identifier['description']
82
- }
83
- end
76
+ hReturn = QualityMeasure.unpack(hReport['qualityMeasure'], responseObj)
84
77
 
85
- if qualityMeasure
86
- intReport[:qualityMeasure][:name] = qualityMeasure['name']
87
- intReport[:qualityMeasure][:description] = qualityMeasure['description']
78
+ unless hReturn.nil?
79
+ intReport[:qualityMeasure] = hReturn
88
80
  end
89
81
  end
90
82
 
@@ -6,7 +6,7 @@ module ADIWG
6
6
  module MdJson
7
7
 
8
8
  module EvaluationMethod
9
- def self.unpack(hMethod, responseObj, inContext = nil)
9
+ def self.unpack(hMethod, responseObj)
10
10
 
11
11
  intMetadataClass = InternalMetadata.new
12
12
  intMethod = intMetadataClass.newEvaluationMethod
@@ -34,21 +34,21 @@ module ADIWG
34
34
 
35
35
  haveLegal = false
36
36
 
37
- # legal constraint - use constraint []
38
- if hLegalCon.has_key?('useConstraint')
39
- hLegalCon['useConstraint'].each do |item|
37
+ # legal constraint - access constraint []
38
+ if hLegalCon.has_key?('accessConstraint')
39
+ hLegalCon['accessConstraint'].each do |item|
40
40
  unless item == ''
41
- intLegalCon[:useCodes] << item
41
+ intLegalCon[:accessCodes] << item
42
42
  haveLegal = true
43
43
  end
44
44
  end
45
45
  end
46
46
 
47
- # legal constraint - access constraint []
48
- if hLegalCon.has_key?('accessConstraint')
49
- hLegalCon['accessConstraint'].each do |item|
47
+ # legal constraint - use constraint []
48
+ if hLegalCon.has_key?('useConstraint')
49
+ hLegalCon['useConstraint'].each do |item|
50
50
  unless item == ''
51
- intLegalCon[:accessCodes] << item
51
+ intLegalCon[:useCodes] << item
52
52
  haveLegal = true
53
53
  end
54
54
  end
@@ -0,0 +1,34 @@
1
+ require_relative 'module_identifier'
2
+
3
+ module ADIWG
4
+ module Mdtranslator
5
+ module Readers
6
+ module MdJson
7
+
8
+ module QualityMeasure
9
+ def self.unpack(hQualityMeasure, responseObj)
10
+
11
+ intMetadataClass = InternalMetadata.new
12
+ intQualityMeasure = intMetadataClass.newQualityMeasure
13
+
14
+ intQualityMeasure[:description] = hQualityMeasure['description']
15
+
16
+ if hQualityMeasure.has_key?('name')
17
+ intQualityMeasure[:nameOfMeasure] = hQualityMeasure['name']
18
+ end
19
+
20
+ if hQualityMeasure.has_key?('identifier')
21
+ hReturn = Identifier.unpack(hQualityMeasure['identifier'], responseObj)
22
+ unless hReturn.nil?
23
+ intQualityMeasure[:identifier] = hReturn
24
+ end
25
+ end
26
+
27
+ return intQualityMeasure
28
+
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,72 @@
1
+ require_relative 'module_format'
2
+
3
+ module ADIWG
4
+ module Mdtranslator
5
+ module Readers
6
+ module MdJson
7
+
8
+ module QualiltyResultFile
9
+
10
+ def self.unpack(hContent, responseObj)
11
+ @MessagePath = ADIWG::Mdtranslator::Readers::MdJson::MdJson
12
+
13
+ # return nil object if input is empty
14
+ if hContent.empty?
15
+ @MessagePath.issueWarning(130, responseObj)
16
+ return nil
17
+ end
18
+
19
+ # instance classes needed in script
20
+ intMetadataClass = InternalMetadata.new
21
+ intContent = intMetadataClass.newQualityResultFile
22
+
23
+ # content information - file name (required)
24
+ if hContent.has_key?('fileName')
25
+ unless hContent['fileName'] == ''
26
+ intContent[:fileName] = hContent['fileName']
27
+ end
28
+ end
29
+ if intContent[:fileName].nil?
30
+ @MessagePath.issueError(131, responseObj)
31
+ end
32
+
33
+ # content information - file description (required)
34
+ if hContent.has_key?('fileDescription')
35
+ unless hContent['fileDescription'] == ''
36
+ intContent[:fileDescription] = hContent['fileDescription']
37
+ end
38
+ end
39
+ if intContent[:fileDescription].nil?
40
+ @MessagePath.issueError(132, responseObj)
41
+ end
42
+
43
+ # content information - file type
44
+ if hContent.has_key?('fileType')
45
+ unless hContent['fileType'] == ''
46
+ intContent[:fileType] = hContent['fileType']
47
+ end
48
+ end
49
+ if intContent[:fileType].nil?
50
+ @MessagePath.issueError(131, responseObj)
51
+ end
52
+
53
+ if hContent.has_key?('fileFormat')
54
+ hObject = hContent['fileFormat']
55
+ unless hObject.empty?
56
+ hReturn = Format.unpack(hObject, responseObj)
57
+ unless hReturn.nil?
58
+ intContent[:fileFormat] = hReturn
59
+ end
60
+ end
61
+ end
62
+
63
+ return intContent
64
+
65
+ end
66
+
67
+ end
68
+
69
+ end
70
+ end
71
+ end
72
+ end
@@ -23,8 +23,8 @@ module ADIWG
23
23
  intRangeElementDescription[:definition] = hRangeElementDescription['definition']
24
24
  end
25
25
 
26
- if hRangeElementDescription.has_key?('rangeElements')
27
- intRangeElementDescription[:rangeElements] = hRangeElementDescription['rangeElements']
26
+ if hRangeElementDescription.has_key?('rangeElement')
27
+ intRangeElementDescription[:rangeElement] = hRangeElementDescription['rangeElement']
28
28
  end
29
29
 
30
30
  return intRangeElementDescription
@@ -249,6 +249,19 @@ module ADIWG
249
249
  end
250
250
  end
251
251
 
252
+ # orcId - external contact identifier
253
+ if hSbContact.has_key?('orcId') && hSbContact['contactType'] == 'person'
254
+ hContact[:externalIdentifier] ||= []
255
+ unless hSbContact['orcId'].nil? || hSbContact['orcId'] == ''
256
+ hExternalIdentifier = {
257
+ "identifier": hSbContact['orcId'],
258
+ "namespace": "ORCID",
259
+ "description": "Open Researcher and Contributor Id"
260
+ }
261
+ hContact[:externalIdentifier] << hExternalIdentifier
262
+ end
263
+ end
264
+
252
265
  aContacts << hContact
253
266
  aContacts << hContactOrg unless hContactOrg.empty?
254
267
 
@@ -109,7 +109,7 @@
109
109
  module ADIWG
110
110
  module Mdtranslator
111
111
  # current mdtranslator version
112
- VERSION = "2.18.4"
112
+ VERSION = "2.19.0-beta.8"
113
113
  end
114
114
  end
115
115
 
@@ -12,7 +12,7 @@ module ADIWG
12
12
  module Writers
13
13
  module Fgdc
14
14
 
15
- class Quality
15
+ class DataQuality
16
16
 
17
17
  def initialize(xml, hResponseObj)
18
18
  @xml = xml
@@ -30,7 +30,7 @@ module ADIWG
30
30
  if hDataQuality && hDataQuality[:report]
31
31
  # data quality 2.1 (attracc) - attribute accuracy (not implemented)
32
32
  attribute_completeness_report = hDataQuality[:report].find do |report|
33
- report[:type] == 'DQ_NonQuantitativeAttributeCompleteness' &&
33
+ report[:type] == 'NonQuantitativeAttributeCompleteness' &&
34
34
  !report.dig(:descriptiveResult, 0, :statement).nil?
35
35
  end
36
36
 
@@ -44,11 +44,11 @@ module ADIWG
44
44
 
45
45
  # data quality 2.2 (logic) - logical consistency (not implemented) (required)
46
46
  logic_report = hDataQuality[:report].find do |report|
47
- report[:type] == 'DQ_ConceptualConsistency' &&
47
+ report[:type] == 'ConceptualConsistency' &&
48
48
  !report.dig(:qualityMeasure, :description).nil?
49
49
  end
50
50
 
51
- if logic = logic_report&.dig(:qualityMeasure, :decription)
51
+ if logic = logic_report&.dig(:qualityMeasure, :description)
52
52
  @xml.tag!('logic', logic)
53
53
  else
54
54
  @xml.tag!('logic', 'Not Reported')
@@ -56,7 +56,7 @@ module ADIWG
56
56
 
57
57
  # data quality 2.3 (complete) - completion report (not implemented) (required)
58
58
  completeness_report = hDataQuality[:report].find do |report|
59
- report[:type] == 'DQ_CompletenessOmission' &&
59
+ report[:type] == 'CompletenessOmission' &&
60
60
  !report.dig(:descriptiveResult, 0, :statement).nil?
61
61
  end
62
62
 
@@ -66,20 +66,24 @@ module ADIWG
66
66
  @xml.tag!('complete', 'Not Reported')
67
67
  end
68
68
 
69
- # data quality 2.4 (position) - positional accuracy (not implemented)
69
+ # data quality 2.4 (position) - positional accuracy
70
70
 
71
71
 
72
72
  horizontal_positional_accuracy_report = hDataQuality[:report].find do |report|
73
- report[:type] == 'DQ_AbsoluteExternalPositionalAccuracy' &&
74
- report.dig(:qualityMeasure, :name) == 'Horizontal Positional Accuracy Report'
73
+ report[:type] == 'AbsoluteExternalPositionalAccuracy' &&
74
+ report.dig(:qualityMeasure, :nameOfMeasure)&.any? { |name|
75
+ name == 'Horizontal Positional Accuracy Report'
76
+ }
75
77
  end
76
78
 
77
79
  horizpar = horizontal_positional_accuracy_report&.dig(:evaluationMethod, :methodDescription)
78
80
 
79
81
 
80
82
  vertical_positional_accuracy_report = hDataQuality[:report].find do |report|
81
- report[:type] == 'DQ_AbsoluteExternalPositionalAccuracy' &&
82
- report.dig(:qualityMeasure, :name) == 'Vertical Positional Accuracy Report'
83
+ report[:type] == 'AbsoluteExternalPositionalAccuracy' &&
84
+ report.dig(:qualityMeasure, :nameOfMeasure)&.any? { |name|
85
+ name == 'Vertical Positional Accuracy Report'
86
+ }
83
87
  end
84
88
 
85
89
  vertaccr = vertical_positional_accuracy_report&.dig(:evaluationMethod, :methodDescription)
@@ -5,7 +5,7 @@
5
5
  # Stan Smith 2017-11-16 original script
6
6
 
7
7
  require_relative 'class_identification'
8
- require_relative 'class_quality'
8
+ require_relative 'class_dataQuality'
9
9
  require_relative 'class_spatialOrganization'
10
10
  require_relative 'class_spatialReference'
11
11
  require_relative 'class_dictionary'
@@ -33,7 +33,7 @@ module ADIWG
33
33
 
34
34
  # classes used
35
35
  idClass = Identification.new(@xml, @hResponseObj)
36
- qualityClass = Quality.new(@xml, @hResponseObj)
36
+ dataQualityClass = DataQuality.new(@xml, @hResponseObj)
37
37
  spaceOrgClass = SpatialOrganization.new(@xml, @hResponseObj)
38
38
  spaceRefClass = SpatialReference.new(@xml, @hResponseObj)
39
39
  dictionaryClass = DataDictionary.new(@xml, @hResponseObj)
@@ -62,7 +62,7 @@ module ADIWG
62
62
  # currently only lineage is implemented
63
63
  unless intObj[:metadata][:lineageInfo].empty?
64
64
  @xml.tag!('dataqual') do
65
- qualityClass.writeXML(intObj)
65
+ dataQualityClass.writeXML(intObj)
66
66
  end
67
67
  end
68
68
  if intObj[:metadata][:lineageInfo].empty? && @hResponseObj[:writerShowTags]
@@ -71,6 +71,7 @@ module ADIWG
71
71
  @html.a(' Contacts', {'href' => '#body-contacts', 'class' => 'btn navBtn', 'id' => 'contactButton'})
72
72
  @html.a(' Metadata', {'href' => '#body-metadataInfo', 'class' => 'btn navBtn', 'id' => 'metadataButton'})
73
73
  @html.a(' Resource', {'href' => '#body-resourceInfo', 'class' => 'btn navBtn', 'id' => 'resourceButton'})
74
+ @html.a(' Quality', {'href' => '#body-dataQuality', 'class' => 'btn navBtn', 'id' => 'qualityButton'})
74
75
  @html.a(' Lineage', {'href' => '#body-lineage', 'class' => 'btn navBtn', 'id' => 'lineageButton'})
75
76
  @html.a(' Distribution', {'href' => '#body-distribution', 'class' => 'btn navBtn', 'id' => 'distributionButton'})
76
77
  @html.a(' Associated', {'href' => '#body-associatedResource', 'class' => 'btn navBtn', 'id' => 'associatedButton'})
@@ -169,7 +170,10 @@ module ADIWG
169
170
  @html.summary('Data Quality', {'id' => 'body-dataQuality', 'class' => 'h2'})
170
171
  aDataQuality.each do |hDataQuality|
171
172
  @html.section(:class => 'block') do
172
- dataQualityClass.writeHtml(hDataQuality)
173
+ @html.details do
174
+ @html.summary('Quality', {'class' => 'h3'})
175
+ dataQualityClass.writeHtml(hDataQuality)
176
+ end
173
177
  end
174
178
  end
175
179
  end
@@ -1,4 +1,6 @@
1
1
  require_relative 'html_citation'
2
+ require_relative 'html_dataQualityReport'
3
+ require_relative 'html_scope'
2
4
 
3
5
  module ADIWG
4
6
  module Mdtranslator
@@ -12,46 +14,65 @@ module ADIWG
12
14
  def writeHtml(hDataQuality)
13
15
  citationClass = Html_Citation.new(@html)
14
16
  scopeClass = Html_Scope.new(@html)
17
+ dataQualityReportClass = Html_DataQualityReport.new(@html)
15
18
 
16
- unless hDataQuality[:scope].nil? || hDataQuality[:scope].empty?
17
- @html.section(class: 'block') do
19
+ # scope
20
+ unless hDataQuality[:scope].empty?
21
+ @html.section(:class => 'block') do
18
22
  @html.details do
19
- @html.summary('Scope', {'class' => 'h5'})
20
- @html.section(class: 'block') do
23
+ @html.summary('Scope', {'class' => 'h4'})
24
+ @html.section(:class => 'block') do
21
25
  scopeClass.writeHtml(hDataQuality[:scope])
22
26
  end
23
27
  end
24
28
  end
25
29
  end
26
30
 
27
-
28
- unless hDataQuality[:standaloneQualityReport].nil? ||
29
- ( hDataQuality[:standaloneQualityReport][:abstract].nil? &&
30
- hDataQuality[:standaloneQualityReport][:reportReference].nil? )
31
- report = hDataQuality[:standaloneQualityReport]
32
-
33
- @html.section(class: 'block') do
31
+ # standalone quality report
32
+ unless hDataQuality[:standaloneReport].nil? ||
33
+ ( hDataQuality[:standaloneReport][:abstract].nil? &&
34
+ hDataQuality[:standaloneReport][:reportReference].nil? )
35
+ report = hDataQuality[:standaloneReport]
36
+ @html.section(:class => 'block') do
34
37
  @html.details do
35
- @html.summary('Standalone Quality Report', {'class' => 'h5'})
38
+ @html.summary('Standalone Quality Report', {'class' => 'h4'})
36
39
  unless report[:abstract].nil?
37
- @html.section(class: 'block') do
40
+ @html.section(:class => 'block') do
38
41
  @html.em('Abstract:')
39
42
  @html.text!(report[:abstract])
40
43
  end
41
44
  end
42
-
43
45
  unless report[:reportReference].nil?
44
- @html.details do
45
- @html.summary('Report Reference', {'class' => 'h5'})
46
- @html.section(class: 'block') do
47
- citationClass.writeHtml(report[:reportReference])
46
+ @html.section(:class => 'block') do
47
+ @html.details do
48
+ @html.summary('Report Reference', {'class' => 'h5'})
49
+ @html.section(:class => 'block') do
50
+ citationClass.writeHtml(report[:reportReference])
51
+ end
48
52
  end
49
53
  end
50
54
  end
51
55
  end
52
56
  end
57
+ end
53
58
 
59
+ # reports
60
+ unless hDataQuality[:report].nil? || hDataQuality[:report].empty?
61
+ @html.section(:class => 'block') do
62
+ @html.details do
63
+ @html.summary('Reports', {'class' => 'h4'})
64
+ hDataQuality[:report].each do |report|
65
+ @html.section(:class => 'block') do
66
+ @html.details do
67
+ @html.summary('Report', {'class' => 'h5'})
68
+ dataQualityReportClass.writeHtml(report)
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end
54
74
  end
75
+
55
76
  end
56
77
  end
57
78
  end