adiwg-mdtranslator 2.19.0.pre.beta.30 → 2.20.0.pre.beta.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (84) 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 +41 -31
  5. data/README.md +21 -0
  6. data/Rakefile +1 -0
  7. data/adiwg-mdtranslator.gemspec +2 -2
  8. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_dataQuality.rb +58 -92
  9. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_conformanceResult.rb +0 -5
  10. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_coverageResult.rb +0 -4
  11. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_dataQuality.rb +0 -7
  12. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_descriptiveResult.rb +0 -4
  13. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_quantitativeResult.rb +0 -4
  14. data/lib/adiwg/mdtranslator/version.rb +1 -1
  15. data/lib/adiwg/mdtranslator/writers/dcat_us/dcat_us_writer.rb +98 -0
  16. data/lib/adiwg/mdtranslator/writers/dcat_us/readme.md +10 -0
  17. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_access_level.rb +55 -0
  18. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_access_url.rb +17 -0
  19. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_accrualPeriodicity.rb +45 -0
  20. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_bureau_code.rb +33 -0
  21. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_contact_point.rb +29 -0
  22. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_dcat_us.rb +104 -0
  23. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_described_by.rb +29 -0
  24. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_described_by_type.rb +33 -0
  25. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_description.rb +19 -0
  26. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_distribution.rb +59 -0
  27. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_download_url.rb +17 -0
  28. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_identifier.rb +29 -0
  29. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_is_part_of.rb +27 -0
  30. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_issued.rb +19 -0
  31. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_keyword.rb +19 -0
  32. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_landing_page.rb +27 -0
  33. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_language.rb +23 -0
  34. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_license.rb +18 -0
  35. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_media_type.rb +17 -0
  36. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_modified.rb +29 -0
  37. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_primaryITInvestmentUII.rb +19 -0
  38. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_program_code.rb +33 -0
  39. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_publisher.rb +74 -0
  40. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_references.rb +50 -0
  41. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_rights.rb +32 -0
  42. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_spatial.rb +32 -0
  43. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_system_of_records.rb +28 -0
  44. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_temporal.rb +40 -0
  45. data/lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_theme.rb +28 -0
  46. data/lib/adiwg/mdtranslator/writers/dcat_us/version.rb +14 -0
  47. data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_dataQuality.rb +115 -133
  48. data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_spatialDomain.rb +1 -1
  49. data/lib/adiwg/mdtranslator/writers/html/sections/html_dataQuality.rb +1 -17
  50. data/lib/adiwg/mdtranslator/writers/html/sections/html_dataQualityReport.rb +0 -28
  51. data/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_dataIdentification.rb +0 -29
  52. data/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_dataQualityReport.rb +1 -1
  53. data/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_gcoDateTime.rb +1 -10
  54. data/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_mdMetadata.rb +0 -27
  55. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_conformanceResult.rb +5 -6
  56. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_coverageResult.rb +0 -1
  57. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_descriptiveResult.rb +0 -1
  58. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_onlineResource.rb +1 -1
  59. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_quantitativeResult.rb +5 -6
  60. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_resourceInfo.rb +1 -1
  61. data/lib/adiwg/mdtranslator/writers/sbJson/sections/sbJson_citation.rb +26 -9
  62. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_allocation.rb +1 -1
  63. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_citation.rb +8 -8
  64. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_dataQuality.rb +1 -1
  65. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_dataQualityReport.rb +3 -3
  66. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_geographicExtent.rb +1 -1
  67. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_lineage.rb +4 -4
  68. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_maintenance.rb +4 -4
  69. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_medium.rb +2 -2
  70. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_metadataInfo.rb +4 -4
  71. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_releasability.rb +1 -1
  72. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_resourceInfo.rb +5 -5
  73. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_responsibility.rb +1 -1
  74. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_spatialRepresentation.rb +4 -4
  75. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_taxonomy.rb +1 -1
  76. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_timeInstant.rb +1 -1
  77. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_timePeriod.rb +5 -5
  78. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_transferOption.rb +2 -2
  79. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_usage.rb +5 -5
  80. data/lib/adiwg/mdtranslator/writers/simple_html/sections/html_vectorRepresentation.rb +2 -2
  81. data/lib/adiwg/mdtranslator_cli.rb +1 -1
  82. metadata +39 -8
  83. data/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_enumerationList.rb +0 -52
  84. data/lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_extension.rb +0 -208
@@ -66,7 +66,7 @@ module ADIWG
66
66
  # time instant - identifier {identifier}
67
67
  unless hInstant[:identifier].empty?
68
68
  @html.div do
69
- @html.h5('Identifier', 'class' => 'h5')
69
+ @html.div('Identifier', 'class' => 'h5')
70
70
  @html.div(:class => 'block') do
71
71
  identifierClass.writeHtml(hInstant[:identifier])
72
72
  end
@@ -70,7 +70,7 @@ module ADIWG
70
70
  # time period - start geologic age {geologic age}
71
71
  unless hPeriod[:startGeologicAge].empty?
72
72
  @html.div do
73
- @html.h5('Starting Geologic Age', 'class' => 'h5')
73
+ @html.div('Starting Geologic Age', 'class' => 'h5')
74
74
  @html.div(:class => 'block') do
75
75
  geoAgeClass.writeHtml(hPeriod[:startGeologicAge])
76
76
  end
@@ -80,7 +80,7 @@ module ADIWG
80
80
  # time period - end geologic age {geologic age}
81
81
  unless hPeriod[:endGeologicAge].empty?
82
82
  @html.div do
83
- @html.h5('Ending Geologic Age', 'class' => 'h5')
83
+ @html.div('Ending Geologic Age', 'class' => 'h5')
84
84
  @html.div(:class => 'block') do
85
85
  geoAgeClass.writeHtml(hPeriod[:endGeologicAge])
86
86
  end
@@ -90,7 +90,7 @@ module ADIWG
90
90
  # time period - identifier {identifier}
91
91
  unless hPeriod[:identifier].empty?
92
92
  @html.div do
93
- @html.h5('Identifier', 'class' => 'h5')
93
+ @html.div('Identifier', 'class' => 'h5')
94
94
  @html.div(:class => 'block') do
95
95
  identifierClass.writeHtml(hPeriod[:identifier])
96
96
  end
@@ -100,7 +100,7 @@ module ADIWG
100
100
  # time period - time interval
101
101
  unless hPeriod[:timeInterval].empty?
102
102
  @html.div do
103
- @html.h5('Time Interval', 'class' => 'h5')
103
+ @html.div('Time Interval', 'class' => 'h5')
104
104
  @html.div(:class => 'block') do
105
105
  intervalClass.writeHtml(hPeriod[:timeInterval])
106
106
  end
@@ -110,7 +110,7 @@ module ADIWG
110
110
  # time period - duration
111
111
  unless hPeriod[:duration].empty?
112
112
  @html.div do
113
- @html.h5('Duration', 'class' => 'h5')
113
+ @html.div('Duration', 'class' => 'h5')
114
114
  @html.div(:class => 'block') do
115
115
  durationClass.writeHtml(hPeriod[:duration])
116
116
  end
@@ -68,7 +68,7 @@ module ADIWG
68
68
  # transfer options - transfer frequency {duration}
69
69
  unless hOption[:transferFrequency].empty?
70
70
  @html.div do
71
- @html.h5('Transfer Frequency', 'class' => 'h5')
71
+ @html.div('Transfer Frequency', 'class' => 'h5')
72
72
  @html.div(:class => 'block') do
73
73
  durationClass.writeHtml(hOption[:transferFrequency])
74
74
  end
@@ -78,7 +78,7 @@ module ADIWG
78
78
  # transfer options - distribution formats [] {format}
79
79
  hOption[:distributionFormats].each do |hFormat|
80
80
  @html.div do
81
- @html.h5('Distribution Format Option', 'class' => 'h5')
81
+ @html.div('Distribution Format Option', 'class' => 'h5')
82
82
  @html.div(:class => 'block') do
83
83
  formatClass.writeHtml(hFormat)
84
84
  end
@@ -37,7 +37,7 @@ module ADIWG
37
37
  # resource usage - temporal extent
38
38
  unless hUsage[:temporalExtents].empty?
39
39
  @html.div do
40
- @html.h5('Times and Periods of Usage', 'class' => 'h5')
40
+ @html.div('Times and Periods of Usage', 'class' => 'h5')
41
41
  @html.div(:class => 'block') do
42
42
  hUsage[:temporalExtents].each do |hTemporal|
43
43
  temporalClass.writeHtml(hTemporal)
@@ -49,7 +49,7 @@ module ADIWG
49
49
  # resource usage - limitation
50
50
  unless hUsage[:userLimitation].nil? && hUsage[:limitationResponses].empty?
51
51
  @html.div do
52
- @html.h5('User Defined Limitations', 'class' => 'h5')
52
+ @html.div('User Defined Limitations', 'class' => 'h5')
53
53
  @html.div(:class => 'block') do
54
54
 
55
55
  # user limitation
@@ -75,7 +75,7 @@ module ADIWG
75
75
  # resource usage - documented issue
76
76
  unless hUsage[:identifiedIssue].empty?
77
77
  @html.div do
78
- @html.h5('Cited Issue', 'class' => 'h5')
78
+ @html.div('Cited Issue', 'class' => 'h5')
79
79
  @html.div(:class => 'block') do
80
80
  citationClass.writeHtml(hUsage[:identifiedIssue])
81
81
  end
@@ -85,7 +85,7 @@ module ADIWG
85
85
  # resource usage - additional documentation
86
86
  hUsage[:additionalDocumentation].each do |hCitation|
87
87
  @html.div do
88
- @html.h5('Additional Documentation', 'class' => 'h5')
88
+ @html.div('Additional Documentation', 'class' => 'h5')
89
89
  @html.div(:class => 'block') do
90
90
  citationClass.writeHtml(hCitation)
91
91
  end
@@ -99,7 +99,7 @@ module ADIWG
99
99
  @html.div(:class => 'block') do
100
100
  hUsage[:userContacts].each do |hContact|
101
101
  @html.div do
102
- @html.h5(hContact[:roleName], 'class' => 'h5')
102
+ @html.div(hContact[:roleName], 'class' => 'h5')
103
103
  @html.div(:class => 'block') do
104
104
  responsibilityClass.writeHtml(hContact)
105
105
  end
@@ -28,7 +28,7 @@ module ADIWG
28
28
  # vector representation - scope
29
29
  hVector[:scope].each do |scope|
30
30
  @html.div do
31
- @html.h5('Scope ', 'class' => 'h5')
31
+ @html.div('Scope ', 'class' => 'h5')
32
32
  @html.div(:class => 'block') do
33
33
  scopeClass.writeHtml(hVector[:scope])
34
34
  end
@@ -46,7 +46,7 @@ module ADIWG
46
46
  # vector representation - vector object []
47
47
  hVector[:vectorObject].each do |hObject|
48
48
  @html.div do
49
- @html.h5('Vector Object ', 'class' => 'h5')
49
+ @html.div('Vector Object ', 'class' => 'h5')
50
50
  @html.div(:class => 'block') do
51
51
  objectClass.writeHtml(hObject)
52
52
  end
@@ -39,7 +39,7 @@ and to choose the level of validation for mdJson input files.
39
39
  :enum => %w{mdJson sbJson fgdc}, :required => true
40
40
  method_option :writer, :aliases => '-w',
41
41
  :desc => 'Writer to create your output metadata file, leave blank to validate input only',
42
- :enum => %w{fgdc html iso19110 iso19115_1 iso19115_2 iso19115_3 mdJson sbJson simple_html }
42
+ :enum => %w{fgdc html iso19110 iso19115_1 iso19115_2 iso19115_3 mdJson sbJson simple_html dcat_us}
43
43
  method_option :validate, :aliases => '-v', :desc => 'Specify level of validation to be performed',
44
44
  :enum => %w{none normal strict}, :default => 'normal'
45
45
  method_option :forceValid, :aliases => '-f', :desc => 'Insert tags for required elements missing from input',
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: adiwg-mdtranslator
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.19.0.pre.beta.30
4
+ version: 2.20.0.pre.beta.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stan Smith
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2024-06-27 00:00:00.000000000 Z
12
+ date: 2024-05-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -129,28 +129,28 @@ dependencies:
129
129
  requirements:
130
130
  - - '='
131
131
  - !ruby/object:Gem::Version
132
- version: 2.9.5
132
+ version: 2.9.3.pre.beta.0
133
133
  type: :runtime
134
134
  prerelease: false
135
135
  version_requirements: !ruby/object:Gem::Requirement
136
136
  requirements:
137
137
  - - '='
138
138
  - !ruby/object:Gem::Version
139
- version: 2.9.5
139
+ version: 2.9.3.pre.beta.0
140
140
  - !ruby/object:Gem::Dependency
141
141
  name: adiwg-mdcodes
142
142
  requirement: !ruby/object:Gem::Requirement
143
143
  requirements:
144
144
  - - '='
145
145
  - !ruby/object:Gem::Version
146
- version: 2.10.0
146
+ version: 2.9.4.pre.beta.0
147
147
  type: :runtime
148
148
  prerelease: false
149
149
  version_requirements: !ruby/object:Gem::Requirement
150
150
  requirements:
151
151
  - - '='
152
152
  - !ruby/object:Gem::Version
153
- version: 2.10.0
153
+ version: 2.9.4.pre.beta.0
154
154
  - !ruby/object:Gem::Dependency
155
155
  name: jbuilder
156
156
  requirement: !ruby/object:Gem::Requirement
@@ -232,6 +232,7 @@ files:
232
232
  - ".jsbeautifyrc"
233
233
  - ".travis.yml"
234
234
  - CHANGELOG.md
235
+ - DCAT-US.md
235
236
  - Gemfile
236
237
  - Gemfile.lock
237
238
  - LICENSE.txt
@@ -474,6 +475,38 @@ files:
474
475
  - lib/adiwg/mdtranslator/readers/sbJson/sbJson_reader.rb
475
476
  - lib/adiwg/mdtranslator/readers/sbJson/version.rb
476
477
  - lib/adiwg/mdtranslator/version.rb
478
+ - lib/adiwg/mdtranslator/writers/dcat_us/dcat_us_writer.rb
479
+ - lib/adiwg/mdtranslator/writers/dcat_us/readme.md
480
+ - lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_access_level.rb
481
+ - lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_access_url.rb
482
+ - lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_accrualPeriodicity.rb
483
+ - lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_bureau_code.rb
484
+ - lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_contact_point.rb
485
+ - lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_dcat_us.rb
486
+ - lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_described_by.rb
487
+ - lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_described_by_type.rb
488
+ - lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_description.rb
489
+ - lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_distribution.rb
490
+ - lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_download_url.rb
491
+ - lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_identifier.rb
492
+ - lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_is_part_of.rb
493
+ - lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_issued.rb
494
+ - lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_keyword.rb
495
+ - lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_landing_page.rb
496
+ - lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_language.rb
497
+ - lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_license.rb
498
+ - lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_media_type.rb
499
+ - lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_modified.rb
500
+ - lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_primaryITInvestmentUII.rb
501
+ - lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_program_code.rb
502
+ - lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_publisher.rb
503
+ - lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_references.rb
504
+ - lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_rights.rb
505
+ - lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_spatial.rb
506
+ - lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_system_of_records.rb
507
+ - lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_temporal.rb
508
+ - lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_theme.rb
509
+ - lib/adiwg/mdtranslator/writers/dcat_us/version.rb
477
510
  - lib/adiwg/mdtranslator/writers/fgdc/classes/class_address.rb
478
511
  - lib/adiwg/mdtranslator/writers/fgdc/classes/class_attribute.rb
479
512
  - lib/adiwg/mdtranslator/writers/fgdc/classes/class_browse.rb
@@ -789,8 +822,6 @@ files:
789
822
  - lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_distribution.rb
790
823
  - lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_distributor.rb
791
824
  - lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_email.rb
792
- - lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_enumerationList.rb
793
- - lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_extension.rb
794
825
  - lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_extent.rb
795
826
  - lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_feature.rb
796
827
  - lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_featureCatalog.rb
@@ -1,52 +0,0 @@
1
- # ISO <<CodeLists>> Enumerations
2
- # 19115-2 writer output in XML
3
-
4
- # History:
5
- # Stan Smith 2016-12-12 refactored for mdTranslator/mdJson 2.0
6
- # Stan Smith 2015-07-14 refactored to eliminate namespace globals $WriterNS and $IsoNS
7
- # Stan Smith 2015-07-14 refactored to make iso19110 independent of iso19115_2 classes
8
- # Stan Smith 2015-06-22 replace global ($response) with passed in object (responseObj)
9
- # Stan Smith 2015-06-12 refactored to use mdCodes gem for codelist contents
10
- # Stan Smith 2014-12-15 replaced NOAA CT_CodelistCatalogue with mdTranslator CT_CodelistCatalogue
11
- # Stan Smith 2014-12-12 refactored to handle namespacing readers and writers
12
- # Stan Smith 2014-10-15 allow non-ISO codesNames to be rendered
13
- # Stan Smith 2013-08-09 original script
14
-
15
- require 'adiwg-mdcodes'
16
-
17
- module ADIWG
18
- module Mdtranslator
19
- module Writers
20
- module Iso19115_3
21
-
22
- class MD_EnumerationList
23
-
24
- def initialize(xml, responseObj)
25
- @xml = xml
26
- @hResponseObj = responseObj
27
- end
28
-
29
- def writeXML(codeList, codeName)
30
-
31
- # get requested codelist from the adiwg-mdcodes gem
32
- mdCodelist = ADIWG::Mdcodes.getCodelistDetail(codeList)
33
-
34
- sourceName = mdCodelist['sourceName']
35
- codelist = mdCodelist['codelist']
36
-
37
- # search the codelist for a matching codeName
38
- # only valid enumeration values can be written in ISO
39
- codelist.each do |code|
40
- if code['codeName'] == codeName
41
- @xml.tag!('gmd:' + "#{sourceName}", codeName)
42
- break
43
- end
44
- end
45
-
46
- end # writeXML
47
- end # MD_EnumerationList class
48
-
49
- end
50
- end
51
- end
52
- end
@@ -1,208 +0,0 @@
1
- # ISO <<Class>> MD_MetadataExtensionInformation
2
- # 19115-2 writer output in XML
3
-
4
- # History:
5
- # Stan Smith 2019-03-22 replaced Enumeration class with method
6
- # Stan Smith 2018-04-09 add error and warning messaging
7
- # Stan Smith 2015-07-14 refactored to eliminate namespace globals $WriterNS and $IsoNS
8
- # Stan Smith 2015-07-14 refactored to make iso19110 independent of iso19115_2 classes
9
- # Stan Smith 2015-06-22 replace global ($response) with passed in object (hResponseObj)
10
- # Stan Smith 2015-06-11 change all codelists to use 'class_codelist' method
11
- # Stan Smith 2014-12-12 refactored to handle namespacing readers and writers
12
- # Stan Smith 2014-07-08 modify require statements to function in RubyGem structure
13
- # Stan Smith 2013-11-22 original script.
14
-
15
- require 'adiwg/mdtranslator/internal/module_codelistFun'
16
- require_relative '../iso19115_3_writer'
17
- require_relative 'class_codelist'
18
- require_relative 'class_enumerationList'
19
- require_relative 'class_onlineResource'
20
-
21
- module ADIWG
22
- module Mdtranslator
23
- module Writers
24
- module Iso19115_3
25
-
26
- class MD_MetadataExtensionInformation
27
-
28
- def initialize(xml, hResponseObj)
29
- @xml = xml
30
- @hResponseObj = hResponseObj
31
- @NameSpace = ADIWG::Mdtranslator::Writers::Iso19115_3
32
- end
33
-
34
- def writeXML(hExtension)
35
-
36
- # classes used
37
- codelistClass = MD_Codelist.new(@xml, @hResponseObj)
38
- olResClass = CI_OnlineResource.new(@xml, @hResponseObj)
39
-
40
- outContext = 'extension information'
41
- outContext = 'extension name ' + hExtension[:name] unless hExtension[:name].nil?
42
-
43
- @xml.tag!('gmd:MD_MetadataExtensionInformation') do
44
-
45
- # metadata extension - online resource {CI_OnLineResource}
46
- hOLResource = hExtension[:onLineResource]
47
- unless hOLResource.empty?
48
- @xml.tag!('gmd:extensionOnLineResource') do
49
- olResClass.writeXML(hOLResource, outContext)
50
- end
51
- end
52
- if hOLResource.empty? && @hResponseObj[:writerShowTags]
53
- @xml.tag!('gmd:extensionOnLineResource')
54
- end
55
-
56
- # metadata extension = extended element information
57
- @xml.tag!('gmd:extendedElementInformation') do
58
- @xml.tag!('gmd:MD_ExtendedElementInformation') do
59
-
60
- # extended element info - name (required)
61
- s = hExtension[:name]
62
- unless s.nil?
63
- @xml.tag!('gmd:name') do
64
- @xml.tag!('gco:CharacterString', s)
65
- end
66
- end
67
- if s.nil?
68
- @NameSpace.issueWarning(100, 'gmd:name')
69
- end
70
-
71
- # extended element info - short name
72
- s = hExtension[:shortName]
73
- unless s.nil?
74
- @xml.tag!('gmd:shortName') do
75
- @xml.tag!('gco:CharacterString', s)
76
- end
77
- end
78
- if s.nil? && @hResponseObj[:writerShowTags]
79
- @xml.tag!('gmd:shortName')
80
- end
81
-
82
- # extended element info - definition (required)
83
- s = hExtension[:definition]
84
- unless s.nil?
85
- @xml.tag!('gmd:definition') do
86
- @xml.tag!('gco:CharacterString', s)
87
- end
88
- end
89
- if s.nil?
90
- @NameSpace.issueWarning(101, 'gmd:definition', outContext)
91
- end
92
-
93
- # extended element info - obligation {MD_ObligationCode}
94
- obligation = hExtension[:obligation]
95
- unless obligation.nil?
96
- if CodelistFun.validateItem('iso_obligation', obligation)
97
- @xml.tag!('gmd:obligation') do
98
- @xml.tag!('gmd:MD_ObligationCode', obligation)
99
- end
100
- else
101
- @NameSpace.issueWarning(380, 'gmd:obligation', "#{obligation}")
102
- end
103
- end
104
- if obligation.nil? && @hResponseObj[:writerShowTags]
105
- @xml.tag!('gmd:obligation')
106
- end
107
-
108
- # extended element info - data type (required)
109
- s = hExtension[:dataType]
110
- unless s.nil?
111
- @xml.tag!('gmd:dataType') do
112
- codelistClass.writeXML('gmd', 'iso_entityClass', s)
113
- end
114
- end
115
- if s.nil?
116
- @NameSpace.issueWarning(102, 'gmd:dataType', outContext)
117
- end
118
-
119
- # extended element info - maximum occurrence
120
- s = hExtension[:maxOccurrence]
121
- unless s.nil?
122
- @xml.tag!('gmd:maximumOccurrence') do
123
- @xml.tag!('gco:CharacterString', s)
124
- end
125
- end
126
- if s.nil? && @hResponseObj[:writerShowTags]
127
- @xml.tag!('gmd:maximumOccurrence')
128
- end
129
-
130
- # extended element info - parent entity [] (required)
131
- aParents = hExtension[:parentEntities]
132
- aParents.each do |parent|
133
- @xml.tag!('gmd:parentEntity') do
134
- @xml.tag!('gco:CharacterString', parent)
135
- end
136
- end
137
- if aParents.empty?
138
- @NameSpace.issueWarning(103, 'gmd:parentEntity', outContext)
139
- end
140
-
141
- # extended element info - rule
142
- s = hExtension[:rule]
143
- unless s.nil?
144
- @xml.tag!('gmd:rule') do
145
- @xml.tag!('gco:CharacterString', s)
146
- end
147
- end
148
- if s.nil?
149
- @NameSpace.issueWarning(104, 'gmd:rule', outContext)
150
- end
151
-
152
- # extended element info - rationale []
153
- aRations = hExtension[:rationales]
154
- aRations.each do |ration|
155
- @xml.tag!('gmd:rationale') do
156
- @xml.tag!('gco:CharacterString', ration)
157
- end
158
- end
159
- if aRations.empty? && @hResponseObj[:writerShowTags]
160
- @xml.tag!('gmd:rationale')
161
- end
162
-
163
- # extended element info - source [] (required)
164
- # only allowing 1 for now
165
- role = hExtension[:sourceRole]
166
- unless role.nil?
167
- @xml.tag!('gmd:source') do
168
- @xml.tag!('gmd:CI_ResponsibleParty') do
169
- orgName = hExtension[:sourceOrganization]
170
- unless orgName.nil?
171
- @xml.tag!('gmd:organisationName') do
172
- @xml.tag!('gco:CharacterString', orgName)
173
- end
174
- end
175
- uri = hExtension[:sourceURI]
176
- unless uri.nil?
177
- @xml.tag!('gmd:contactInfo') do
178
- @xml.tag!('gmd:CI_Contact') do
179
- @xml.tag!('gmd:onlineResource') do
180
- @xml.tag!('gmd:CI_OnlineResource') do
181
- @xml.tag!('gmd:linkage') do
182
- @xml.tag!('gmd:URL', uri)
183
- end
184
- end
185
- end
186
- end
187
- end
188
- end
189
- @xml.tag!('gmd:role') do
190
- codelistClass.writeXML('gmd', 'iso_role', role)
191
- end
192
- end
193
- end
194
- end
195
- if role.nil?
196
- @NameSpace.issueWarning(105, 'gmd:source', outContext)
197
- end
198
-
199
- end # gmd:MD_ExtendedElementInformation tag
200
- end # gmd:extendedElementInformation
201
- end # gmd:MD_MetadataExtensionInformation
202
- end # writeXML
203
- end # MD_MetadataExtensionInformation class
204
-
205
- end
206
- end
207
- end
208
- end