adiwg-mdtranslator 2.21.0.pre.beta.0 → 2.21.0.pre.beta.2

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 (101) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test.yml +1 -1
  3. data/DCAT-US.md +67 -0
  4. data/Gemfile.lock +5 -5
  5. data/README.md +21 -0
  6. data/Rakefile +1 -0
  7. data/adiwg-mdtranslator.gemspec +2 -2
  8. data/lib/adiwg/mdtranslator/internal/internal_metadata_obj.rb +1 -0
  9. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_dataQuality.rb +27 -37
  10. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_dataDictionary.rb +8 -0
  11. data/lib/adiwg/mdtranslator/version.rb +1 -1
  12. data/lib/adiwg/mdtranslator/writers/dcat_us/dcat_us_writer.rb +98 -0
  13. data/lib/adiwg/mdtranslator/writers/dcat_us/readme.md +10 -0
  14. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_access_level.rb +55 -0
  15. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_access_url.rb +17 -0
  16. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_accrualPeriodicity.rb +45 -0
  17. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_bureau_code.rb +33 -0
  18. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_contact_point.rb +29 -0
  19. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_dcat_us.rb +104 -0
  20. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_described_by.rb +29 -0
  21. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_described_by_type.rb +33 -0
  22. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_description.rb +19 -0
  23. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_distribution.rb +59 -0
  24. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_download_url.rb +17 -0
  25. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_identifier.rb +29 -0
  26. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_is_part_of.rb +27 -0
  27. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_issued.rb +19 -0
  28. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_keyword.rb +19 -0
  29. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_landing_page.rb +27 -0
  30. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_language.rb +23 -0
  31. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_license.rb +18 -0
  32. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_media_type.rb +17 -0
  33. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_modified.rb +29 -0
  34. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_primaryITInvestmentUII.rb +19 -0
  35. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_program_code.rb +33 -0
  36. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_publisher.rb +74 -0
  37. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_references.rb +50 -0
  38. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_rights.rb +32 -0
  39. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_spatial.rb +32 -0
  40. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_system_of_records.rb +28 -0
  41. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_temporal.rb +40 -0
  42. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_theme.rb +28 -0
  43. data/lib/adiwg/mdtranslator/writers/dcat_us/version.rb +14 -0
  44. data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_dataQuality.rb +133 -185
  45. data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_spatialDomain.rb +1 -1
  46. data/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_acquisition.rb +103 -0
  47. data/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_enumerationList.rb +52 -0
  48. data/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_environment.rb +82 -0
  49. data/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_event.rb +123 -0
  50. data/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_extension.rb +208 -0
  51. data/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_instrument.rb +92 -0
  52. data/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_instrumentationEvent.rb +83 -0
  53. data/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_instrumentationEventList.rb +73 -0
  54. data/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_mdMetadata.rb +38 -0
  55. data/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_objective.rb +121 -0
  56. data/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_operation.rb +131 -0
  57. data/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_pass.rb +63 -0
  58. data/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_plan.rb +76 -0
  59. data/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_platform.rb +102 -0
  60. data/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_requestedDate.rb +44 -0
  61. data/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_requirement.rb +111 -0
  62. data/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_revision.rb +55 -0
  63. data/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_timePeriod.rb +2 -6
  64. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_dictionary.rb +1 -0
  65. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_acquisition.rb +195 -0
  66. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_allocation.rb +1 -1
  67. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_body.rb +18 -2
  68. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_citation.rb +8 -8
  69. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_dataQualityReport.rb +3 -3
  70. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_environment.rb +58 -0
  71. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_event.rb +121 -0
  72. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_geographicExtent.rb +1 -1
  73. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_instrument.rb +98 -0
  74. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_instrumentationEvent.rb +84 -0
  75. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_instrumentationEventList.rb +90 -0
  76. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_lineage.rb +4 -4
  77. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_maintenance.rb +4 -4
  78. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_medium.rb +2 -2
  79. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_metadataInfo.rb +4 -4
  80. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_objective.rb +155 -0
  81. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_operation.rb +178 -0
  82. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_pass.rb +72 -0
  83. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_plan.rb +93 -0
  84. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_platform.rb +117 -0
  85. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_releasability.rb +1 -1
  86. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_requestedDate.rb +33 -0
  87. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_requirement.rb +139 -0
  88. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_resourceInfo.rb +5 -5
  89. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_responsibility.rb +1 -1
  90. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_revision.rb +55 -0
  91. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_spatialRepresentation.rb +4 -4
  92. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_taxonomy.rb +1 -1
  93. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_timeInstant.rb +1 -1
  94. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_timePeriod.rb +5 -5
  95. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_transferOption.rb +2 -2
  96. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_usage.rb +5 -5
  97. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_vectorRepresentation.rb +2 -2
  98. data/lib/adiwg/mdtranslator_cli.rb +1 -1
  99. data/scripts/build-gem.sh +4 -0
  100. data/scripts/publish-gem.sh +9 -0
  101. metadata +71 -6
@@ -0,0 +1,44 @@
1
+ module ADIWG
2
+ module Mdtranslator
3
+ module Writers
4
+ module Iso19115_3
5
+
6
+ class MI_RequestedDate
7
+ def initialize(xml, hResponseObj)
8
+ @xml = xml
9
+ @hResponseObj = hResponseObj
10
+ end
11
+
12
+ def writeXML(hRequestedDate)
13
+
14
+ gcoDateTimeClass = GcoDateTime.new(@xml, @hResponseObj)
15
+
16
+ @xml.tag!('mac:MI_RequestedDate') do
17
+ unless hRequestedDate[:requestedDateOfCollection].empty?
18
+ @xml.tag!('mac:requestedDateOfCollection') do
19
+ gcoDateTimeClass.writeXML(hRequestedDate[:requestedDateOfCollection])
20
+ end
21
+ else
22
+ if @hResponseObj[:writerShowTags]
23
+ @xml.tag!('mac:requestedDateOfCollection')
24
+ end
25
+ end
26
+
27
+ unless hRequestedDate[:latestAcceptableDate].empty?
28
+ @xml.tag!('mac:latestAcceptableDate') do
29
+ gcoDateTimeClass.writeXML(hRequestedDate[:latestAcceptableDate])
30
+ end
31
+ else
32
+ if @hResponseObj[:writerShowTags]
33
+ @xml.tag!('mac:latestAcceptableDate')
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+
44
+
@@ -0,0 +1,111 @@
1
+ require_relative 'class_citation'
2
+ require_relative 'class_identifier'
3
+ require_relative 'class_responsibility'
4
+ require_relative 'class_codelist'
5
+ require_relative 'class_requestedDate'
6
+ require_relative 'class_gcoDateTime'
7
+ require_relative 'class_plan'
8
+
9
+ module ADIWG
10
+ module Mdtranslator
11
+ module Writers
12
+ module Iso19115_3
13
+
14
+ class MI_Requirement
15
+ def initialize(xml, hResponseObj)
16
+ @xml = xml
17
+ @hResponseObj = hResponseObj
18
+ end
19
+
20
+ def writeXML(hRequirement)
21
+
22
+ citationClass = CI_Citation.new(@xml, @hResponseObj)
23
+ identifierClass = MD_Identifier.new(@xml, @hResponseObj)
24
+ responsibilityClass = CI_Responsibility.new(@xml, @hResponseObj)
25
+ codelistClass = MD_Codelist.new(@xml, @hResponseObj)
26
+ requestedDateClass = MI_RequestedDate.new(@xml, @hResponseObj)
27
+ gcoDateTimeClass = GcoDateTime.new(@xml, @hResponseObj)
28
+ planClass = MI_Plan.new(@xml, @hResponseObj)
29
+
30
+ @xml.tag!('mac:MI_Requirement', id: hRequirement[:requirementId]) do
31
+ unless hRequirement[:citation].empty?
32
+ @xml.tag!('mac:citation') do
33
+ citationClass.writeXML(hRequirement[:citation])
34
+ end
35
+ else
36
+ if @hResponseObj[:writerShowTags]
37
+ @xml.tag!('mac:citation')
38
+ end
39
+ end
40
+
41
+ unless hRequirement[:identifier].empty?
42
+ @xml.tag!('mac:identifier') do
43
+ identifierClass.writeXML(hRequirement[:identifier])
44
+ end
45
+ else
46
+ if @hResponseObj[:writerShowTags]
47
+ @xml.tag!('mac:identifier')
48
+ end
49
+ end
50
+
51
+ unless hRequirement[:requestors].empty?
52
+ hRequirement[:requestors].each do |hResponsibility|
53
+ @xml.tag!('mac:requestor') do
54
+ responsibilityClass.writeXML(hResponsibility)
55
+ end
56
+ end
57
+ end
58
+
59
+ unless hRequirement[:recipients].empty?
60
+ hRequirement[:recipients].each do |hResponsibility|
61
+ @xml.tag!('mac:recipient') do
62
+ responsibilityClass.writeXML(hResponsibility)
63
+ end
64
+ end
65
+ end
66
+
67
+ unless hRequirement[:priority].nil?
68
+ @xml.tag!('mac:priority') do
69
+ codelistClass.writeXML('mac', 'iso_priorityCode', hRequirement[:priority])
70
+ end
71
+ end
72
+
73
+ unless hRequirement[:requestedDate].nil?
74
+ @xml.tag!('mac:requestedDate') do
75
+ requestedDateClass.writeXML(hRequirement[:requestedDate])
76
+ end
77
+ else
78
+ if @hResponseObj[:writerShowTags]
79
+ @xml.tag!('mac:requestedDate')
80
+ end
81
+ end
82
+
83
+ # unless hRequirement[:expiryDate].nil?
84
+ # @xml.tag!('mac:expiryDate') do
85
+ # gcoDateTimeClass.writeXML(hRequirement[:expiryDate])
86
+ # end
87
+ # else
88
+ # if @hResponseObj[:writerShowTags]
89
+ # @xml.tag!('mac:expiryDate')
90
+ # end
91
+ # end
92
+
93
+ unless hRequirement[:satisfiedPlans].empty?
94
+ hRequirement[:satisfiedPlans].each do |hPlan|
95
+ @xml.tag!('mac:satisifiedPlan') do
96
+ planClass.writeXML(hPlan)
97
+ end
98
+ end
99
+ else
100
+ if @hResponseObj[:writerShowTags]
101
+ @xml.tag!('mac:satisifiedPlan')
102
+ end
103
+ end
104
+ end
105
+ end
106
+ end
107
+
108
+ end
109
+ end
110
+ end
111
+ end
@@ -0,0 +1,55 @@
1
+ require_relative 'class_responsibility'
2
+ require_relative 'class_gcoDateTime'
3
+
4
+ module ADIWG
5
+ module Mdtranslator
6
+ module Writers
7
+ module Iso19115_3
8
+
9
+ class MI_Revision
10
+ def initialize(xml, hResponseObj)
11
+ @xml = xml
12
+ @hResponseObj = hResponseObj
13
+ end
14
+
15
+ def writeXML(hRevision)
16
+
17
+ responsibilityClass = CI_Responsibility.new(@xml, @hResponseObj)
18
+ gcoDateTimeClass = GcoDateTime.new(@xml, @hResponseObj)
19
+
20
+ @xml.tag!('mac:MI_Revision') do
21
+ unless hRevision[:description].nil?
22
+ @xml.tag!('mac:description') do
23
+ @xml.tag!('gco:CharacterString', hRevision[:description])
24
+ end
25
+ else
26
+ if @hResponseObj[:writerShowTags]
27
+ @xml.tag!('mac:description')
28
+ end
29
+ end
30
+
31
+ unless hRevision[:responsibleParty].empty?
32
+ @xml.tag!('mac:author') do
33
+ responsibilityClass.writeXML(hRevision[:responsibleParty])
34
+ end
35
+ else
36
+ @xml.tag!('mac:author')
37
+ end
38
+
39
+ unless hRevision[:dateInfo].empty?
40
+ @xml.tag!('mac:dateInfo') do
41
+ hRevision[:dateInfo].each do |hDate|
42
+ gcoDateTimeClass.writeXML(hDate)
43
+ end
44
+ end
45
+ else
46
+ @xml.tag!('mac:dateInfo')
47
+ end
48
+ end
49
+ end
50
+ end
51
+
52
+ end
53
+ end
54
+ end
55
+ end
@@ -65,9 +65,7 @@ module ADIWG
65
65
  # if empty add indeterminatePosition="unknown"
66
66
  unless hPeriod[:startDateTime].empty?
67
67
  hDateTime = hPeriod[:startDateTime]
68
- dateTime = hDateTime[:dateTime]
69
- timeResolution = hDateTime[:dateResolution]
70
- dateStr = AdiwgDateTimeFun.stringDateTimeFromDateTime(dateTime, timeResolution)
68
+ dateStr = AdiwgDateTimeFun.stringDateTimeFromDateObject(hDateTime)
71
69
  @xml.tag!('gml:beginPosition', dateStr)
72
70
  end
73
71
  if hPeriod[:startDateTime].empty?
@@ -79,9 +77,7 @@ module ADIWG
79
77
  # if empty add indeterminatePosition="unknown"
80
78
  unless hPeriod[:endDateTime].empty?
81
79
  hDateTime = hPeriod[:endDateTime]
82
- dateTime = hDateTime[:dateTime]
83
- timeResolution = hDateTime[:dateResolution]
84
- dateStr = AdiwgDateTimeFun.stringDateTimeFromDateTime(dateTime, timeResolution)
80
+ dateStr = AdiwgDateTimeFun.stringDateTimeFromDateObject(hDateTime)
85
81
  @xml.tag!('gml:endPosition', dateStr)
86
82
  end
87
83
  if hPeriod[:endDateTime].empty?
@@ -24,6 +24,7 @@ module ADIWG
24
24
  def self.build(hDictionary)
25
25
 
26
26
  Jbuilder.new do |json|
27
+ json.dictionaryId hDictionary[:dictionaryId]
27
28
  json.citation Citation.build(hDictionary[:citation]) unless hDictionary[:citation].empty?
28
29
  json.description hDictionary[:description]
29
30
  json.subject hDictionary[:subjects] unless hDictionary[:subjects].empty?
@@ -0,0 +1,195 @@
1
+ require_relative 'html_scope'
2
+ require_relative 'html_plan'
3
+ require_relative 'html_requirement'
4
+ require_relative 'html_objective'
5
+ require_relative 'html_platform'
6
+ require_relative 'html_instrument'
7
+ require_relative 'html_operation'
8
+ require_relative 'html_event'
9
+ require_relative 'html_pass'
10
+ require_relative 'html_environment'
11
+
12
+ module ADIWG
13
+ module Mdtranslator
14
+ module Writers
15
+ module Simple_html
16
+ class Html_Acquisition
17
+ def initialize(html)
18
+ @html = html
19
+ end
20
+
21
+ def writeHtml(hAcquisition)
22
+ scopeClass = Html_Scope.new(@html)
23
+ planClass = Html_Plan.new(@html)
24
+ requirementClass = Html_Requirement.new(@html)
25
+ objectiveClass = Html_Objective.new(@html)
26
+ platformClass = Html_Platform.new(@html)
27
+ instrumentClass = Html_Instrument.new(@html)
28
+ operationClass = Html_Operation.new(@html)
29
+ eventClass = Html_Event.new(@html)
30
+ passClass = Html_Pass.new(@html)
31
+ environmentClass = Html_Environment.new(@html)
32
+
33
+ # scope
34
+ unless hAcquisition[:scope].empty?
35
+ @html.div do
36
+ @html.h5('Scope', {'class' => 'h5'})
37
+ @html.div(:class => 'block') do
38
+ scopeClass.writeHtml(hDataQuality[:scope])
39
+ end
40
+ end
41
+ end
42
+
43
+ # plan
44
+ unless hAcquisition[:plans].empty?
45
+ @html.div(:class =>'block') do
46
+ @html.div do
47
+ @html.h4('Plans', {'class' => 'h4'})
48
+ hAcquisition[:plans].each do |plan|
49
+ @html.div(:class =>'block') do
50
+ @html.div do
51
+ @html.h5('Plan', {'class' => 'h5'})
52
+ planClass.writeHtml(plan)
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
59
+
60
+ # requirement
61
+ unless hAcquisition[:requirements].empty?
62
+ @html.div(:class =>'block') do
63
+ @html.div do
64
+ @html.h4('Requirements', {'class' => 'h4'})
65
+ hAcquisition[:requirements].each do |requirement|
66
+ @html.div(:class =>'block') do
67
+ @html.div do
68
+ @html.h5('Requirement', {'class' => 'h5'})
69
+ requirementClass.writeHtml(requirement)
70
+ end
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
76
+
77
+ # objective
78
+ unless hAcquisition[:objectives].empty?
79
+ @html.div(:class =>'block') do
80
+ @html.div do
81
+ @html.h4('Objectives', {'class' => 'h4'})
82
+ hAcquisition[:objectives].each do |objective|
83
+ @html.div(:class =>'block') do
84
+ @html.div do
85
+ @html.h5('Objective', {'class' => 'h5'})
86
+ objectiveClass.writeHtml(objective)
87
+ end
88
+ end
89
+ end
90
+ end
91
+ end
92
+ end
93
+
94
+
95
+ # platform
96
+ unless hAcquisition[:platforms].empty?
97
+ @html.div(:class =>'block') do
98
+ @html.div do
99
+ @html.h4('Platforms', {'class' => 'h4'})
100
+ hAcquisition[:platforms].each do |platform|
101
+ @html.div(:class =>'block') do
102
+ @html.div do
103
+ @html.h5('Platform', {'class' => 'h5'})
104
+ platformClass.writeHtml(platform)
105
+ end
106
+ end
107
+ end
108
+ end
109
+ end
110
+ end
111
+
112
+ # Instrument
113
+ unless hAcquisition[:instruments].empty?
114
+ @html.div(:class =>'block') do
115
+ @html.div do
116
+ @html.h4('Instrument', {'class' => 'h4'})
117
+ hAcquisition[:instruments].each do |instrument|
118
+ @html.div(:class =>'block') do
119
+ @html.div do
120
+ @html.h5('Instrument', {'class' => 'h5'})
121
+ instrumentClass.writeHtml(instrument)
122
+ end
123
+ end
124
+ end
125
+ end
126
+ end
127
+ end
128
+
129
+ # operation
130
+ unless hAcquisition[:operations].empty?
131
+ @html.div(:class =>'block') do
132
+ @html.div do
133
+ @html.h4('Operations', {'class' => 'h4'})
134
+ hAcquisition[:operations].each do |operations|
135
+ @html.div(:class =>'block') do
136
+ @html.div do
137
+ @html.h5('Operation', {'class' => 'h5'})
138
+ operationClass.writeHtml(operations)
139
+ end
140
+ end
141
+ end
142
+ end
143
+ end
144
+ end
145
+
146
+ # Event
147
+ unless hAcquisition[:events].empty?
148
+ @html.div(:class =>'block') do
149
+ @html.div do
150
+ @html.h4('Events', {'class' => 'h4'})
151
+ hAcquisition[:events].each do |event|
152
+ @html.div(:class =>'block') do
153
+ @html.div do
154
+ @html.h5('Event', {'class' => 'h5'})
155
+ eventClass.writeHtml(event)
156
+ end
157
+ end
158
+ end
159
+ end
160
+ end
161
+ end
162
+
163
+ # Pass
164
+ unless hAcquisition[:passes].empty?
165
+ @html.div(:class =>'block') do
166
+ @html.div do
167
+ @html.h4('Passes', {'class' => 'h4'})
168
+ hAcquisition[:passes].each do |pass|
169
+ @html.div(:class =>'block') do
170
+ @html.div do
171
+ @html.h5('Pass', {'class' => 'h5'})
172
+ passClass.writeHtml(pass)
173
+ end
174
+ end
175
+ end
176
+ end
177
+ end
178
+ end
179
+
180
+ # Environment
181
+ unless hAcquisition[:environment].empty?
182
+ @html.div do
183
+ @html.h5('Scope', {'class' => 'h5'})
184
+ @html.div(:class => 'block') do
185
+ environmentClass.writeHtml(hAcquisition[:environment])
186
+ end
187
+ end
188
+ end
189
+
190
+ end
191
+ end
192
+ end
193
+ end
194
+ end
195
+ end
@@ -90,7 +90,7 @@ module ADIWG
90
90
  # allocation - online resource [] {onlineResource}
91
91
  hAllocation[:onlineResources].each do |hOnline|
92
92
  @html.div do
93
- @html.div('Online Resource', {'class' => 'h5'})
93
+ @html.h5('Online Resource', {'class' => 'h5'})
94
94
  @html.div(:class => 'block') do
95
95
  onlineClass.writeHtml(hOnline)
96
96
  end
@@ -20,6 +20,7 @@ require_relative 'html_additionalDocumentation'
20
20
  require_relative 'html_funding'
21
21
  require_relative 'html_dataDictionary'
22
22
  require_relative 'html_metadataRepository'
23
+ require_relative 'html_acquisition'
23
24
 
24
25
  module ADIWG
25
26
  module Mdtranslator
@@ -47,6 +48,7 @@ module ADIWG
47
48
  fundingClass = Html_Funding.new(@html)
48
49
  dictionaryClass = Html_DataDictionary.new(@html)
49
50
  repositoryClass = Html_Repository.new(@html)
51
+ aquisitionClass = Html_Acquisition.new(@html)
50
52
 
51
53
  # make sections of the internal data store convenient
52
54
  hSchema = intObj[:schema]
@@ -61,6 +63,7 @@ module ADIWG
61
63
  aFunding = intObj[:metadata][:funding]
62
64
  aDictionaries = intObj[:dataDictionaries]
63
65
  aRepositories = intObj[:metadataRepositories]
66
+ aAcquisitions = intObj[:metadata][:acquisitions]
64
67
 
65
68
  # set page title and logo
66
69
  # side navigation
@@ -78,6 +81,7 @@ module ADIWG
78
81
  @html.a(' Dictionary', {'href' => '#body-dataDictionary', 'class' => 'btn navBtn', 'id' => 'dictionaryButton'})
79
82
  @html.a(' Funding', {'href' => '#body-funding', 'class' => 'btn navBtn', 'id' => 'fundingButton'})
80
83
  @html.a(' Repository', {'href' => '#body-repository', 'class' => 'btn navBtn', 'id' => 'repositoryButton'})
84
+ @html.a(' Acquisition', {'href' => '#body-acquisition', 'class' => 'btn navBtn', 'id' => 'acquisitionButton'})
81
85
 
82
86
  end
83
87
 
@@ -148,8 +152,8 @@ module ADIWG
148
152
  unless hResourceInfo.empty?
149
153
  @html.div do
150
154
  @html.h2('Resource Information', {'id' => 'body-resourceInfo', 'class' => 'h2'})
151
- @html.span('', {'style' => 'mso-bookmark:body-resourceInfo'})
152
- @html.div(:class => 'block') do
155
+ @html.span('', {'style' => 'mso-bookmark:body-resourceInfo'})
156
+ @html.div(:class => 'block') do
153
157
  resourceClass.writeHtml(hResourceInfo)
154
158
  end
155
159
  @html.hr
@@ -298,6 +302,18 @@ module ADIWG
298
302
  end
299
303
  end
300
304
 
305
+ unless aAcquisitions.nil? || aAcquisitions.empty?
306
+ @html.div do
307
+ @html.h2('Acquisitions', {'id' => 'body-acquisition', 'class' => 'h2'})
308
+ @html.span('', {'style' => 'mso-bookmark:body-acquisition'})
309
+ aAcquisitions.each do |hAcquisition|
310
+ @html.div(:class => 'block') do
311
+ aquisitionClass.writeHtml(hAcquisition)
312
+ end
313
+ end
314
+ end
315
+ end
316
+
301
317
  end # body
302
318
  end # writeHtml
303
319
  end # Html_Body
@@ -147,14 +147,14 @@ module ADIWG
147
147
  end
148
148
  end
149
149
 
150
- # citation - other div []
151
- # unless hCitation[:otherdiv].empty?
152
- # hCitation[:otherdiv].each do |detail|
153
- # @html.em('Other div: ')
154
- # @html.text!(detail)
155
- # @html.br
156
- # end
157
- # end
150
+ # citation - other details []
151
+ unless hCitation[:otherDetails].empty?
152
+ hCitation[:otherDetails].each do |detail|
153
+ @html.em('Other Details: ')
154
+ @html.text!(detail)
155
+ @html.br
156
+ end
157
+ end
158
158
 
159
159
  end # writeHtml
160
160
  end # Html_Citation
@@ -262,7 +262,7 @@ module ADIWG
262
262
  # ResultContentDescription
263
263
  unless result[:resultContentDescription].empty?
264
264
  @html.div do
265
- @html.div('Result Content Description', {'class' => 'h5'})
265
+ @html.h5('Result Content Description', {'class' => 'h5'})
266
266
  @html.div(:class => 'block') do
267
267
  coverageInfoClass.writeHtml(result[:resultContentDescription])
268
268
  end
@@ -272,7 +272,7 @@ module ADIWG
272
272
  # ResourceFormat
273
273
  unless result[:resourceFormat].empty?
274
274
  @html.div do
275
- @html.div('Resource Format', {'class' => 'h5'})
275
+ @html.h5('Resource Format', {'class' => 'h5'})
276
276
  @html.div(:class => 'block') do
277
277
  formatClass.writeHtml(result[:resourceFormat])
278
278
  end
@@ -282,7 +282,7 @@ module ADIWG
282
282
  # ResultFile
283
283
  unless result[:resultFile].empty?
284
284
  @html.div do
285
- @html.div('Result File', {'class' => 'h5'})
285
+ @html.h5('Result File', {'class' => 'h5'})
286
286
  @html.div(:class => 'block') do
287
287
  resultFileClass.writeHtml(result[:resultFile])
288
288
  end
@@ -0,0 +1,58 @@
1
+ module ADIWG
2
+ module Mdtranslator
3
+ module Writers
4
+ module Simple_html
5
+ class Html_Environment
6
+ def initialize(html)
7
+ @html = html
8
+ end
9
+
10
+ def writeHtml(hEnvironment)
11
+ # averageAirTemperature
12
+ unless hEnvironment[:averageAirTemperature].nil?
13
+ @html.em('Average Air Temperature: ')
14
+ @html.text!(hEnvironment[:averageAirTemperature].to_s)
15
+ @html.br
16
+ end
17
+
18
+ # maxRelativeHumidity
19
+ unless hEnvironment[:maxRelativeHumidity].nil?
20
+ @html.em('Maximum Relative Humidity: ')
21
+ @html.text!(hEnvironment[:maxRelativeHumidity].to_s)
22
+ @html.br
23
+ end
24
+
25
+ # maxAltitude
26
+ unless hEnvironment[:maxAltitude].nil?
27
+ @html.em('Maximum Altitude: ')
28
+ @html.text!(hEnvironment[:maxAltitude].to_s)
29
+ @html.br
30
+ end
31
+
32
+ # meteorologicalConditions
33
+ unless hEnvironment[:meteorologicalConditions].nil?
34
+ @html.em('Meteorological Conditions: ')
35
+ @html.text!(hEnvironment[:meteorologicalConditions])
36
+ @html.br
37
+ end
38
+
39
+ # solarAzimuth
40
+ unless hEnvironment[:solarAzimuth].nil?
41
+ @html.em('Solar Azimuth: ')
42
+ @html.text!(hEnvironment[:solarAzimuth].to_s)
43
+ @html.br
44
+ end
45
+
46
+ # solarElevation
47
+ unless hEnvironment[:solarElevation].nil?
48
+ @html.em('Solar Elevation: ')
49
+ @html.text!(hEnvironment[:solarElevation].to_s)
50
+ @html.br
51
+ end
52
+
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end