adiwg-mdtranslator 2.1.2 → 2.2.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +402 -0
- data/adiwg-mdtranslator.gemspec +1 -1
- data/lib/adiwg/mdtranslator/internal/internal_metadata_obj.rb +7 -2
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_contact.rb +196 -0
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_dateTime.rb +8 -0
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_fgdc.rb +1 -1
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_identification.rb +80 -26
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_keyword.rb +13 -2
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_lineage.rb +58 -0
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_process.rb +101 -0
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_quality.rb +21 -1
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_security.rb +48 -0
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_source.rb +83 -0
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_timePeriod.rb +10 -1
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_allocation.rb +92 -71
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_funding.rb +49 -43
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_processStep.rb +113 -90
- data/lib/adiwg/mdtranslator/readers/sbJson/modules/module_sbJson.rb +2 -1
- data/lib/adiwg/mdtranslator/version.rb +2 -1
- data/lib/adiwg/mdtranslator/writers/html/sections/html_allocation.rb +23 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_funding.rb +9 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_processStep.rb +37 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_processStep.rb +103 -91
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_allocation.rb +7 -1
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_funding.rb +4 -2
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_processStep.rb +6 -2
- metadata +11 -5
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
# process step
|
|
3
3
|
|
|
4
4
|
# History:
|
|
5
|
+
# Stan Smith 2017-08-30 added support for process step sources
|
|
5
6
|
# Stan Smith 2017-04-03 refactored for mdTranslator 2.0
|
|
6
7
|
# Stan Smith 2015-07-16 refactored to remove global namespace $HtmlNS
|
|
7
8
|
# Stan Smith 2015-03-27 original script
|
|
@@ -10,6 +11,7 @@ require_relative 'html_temporalExtent'
|
|
|
10
11
|
require_relative 'html_responsibility'
|
|
11
12
|
require_relative 'html_citation'
|
|
12
13
|
require_relative 'html_scope'
|
|
14
|
+
require_relative 'html_source'
|
|
13
15
|
|
|
14
16
|
module ADIWG
|
|
15
17
|
module Mdtranslator
|
|
@@ -29,6 +31,7 @@ module ADIWG
|
|
|
29
31
|
responsibilityClass = Html_Responsibility.new(@html)
|
|
30
32
|
citationClass = Html_Citation.new(@html)
|
|
31
33
|
scopeClass = Html_Scope.new(@html)
|
|
34
|
+
sourceClass = Html_Source.new(@html)
|
|
32
35
|
|
|
33
36
|
# process step - id
|
|
34
37
|
unless hStep[:stepId].nil?
|
|
@@ -78,6 +81,40 @@ module ADIWG
|
|
|
78
81
|
end
|
|
79
82
|
end
|
|
80
83
|
|
|
84
|
+
# process step - step sources [] {source}
|
|
85
|
+
unless hStep[:stepSources].empty?
|
|
86
|
+
@html.details do
|
|
87
|
+
@html.summary('Step Source Datasets', {'class' => 'h5'})
|
|
88
|
+
@html.section(:class => 'block') do
|
|
89
|
+
hStep[:stepSources].each do |hSource|
|
|
90
|
+
@html.details do
|
|
91
|
+
@html.summary('Data Source', {'class' => 'h5'})
|
|
92
|
+
@html.section(:class => 'block') do
|
|
93
|
+
sourceClass.writeHtml(hSource)
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
# process step - step products [] {source}
|
|
102
|
+
unless hStep[:stepProducts].empty?
|
|
103
|
+
@html.details do
|
|
104
|
+
@html.summary('Step Product Datasets', {'class' => 'h5'})
|
|
105
|
+
@html.section(:class => 'block') do
|
|
106
|
+
hStep[:stepProducts].each do |hSource|
|
|
107
|
+
@html.details do
|
|
108
|
+
@html.summary('Data Product', {'class' => 'h5'})
|
|
109
|
+
@html.section(:class => 'block') do
|
|
110
|
+
sourceClass.writeHtml(hSource)
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
|
|
81
118
|
# process step - processors [] {responsibility}
|
|
82
119
|
hStep[:processors].each do |hResponsibility|
|
|
83
120
|
@html.details do
|
|
@@ -2,106 +2,118 @@
|
|
|
2
2
|
# 19115-2 writer output in XML
|
|
3
3
|
|
|
4
4
|
# History:
|
|
5
|
-
#
|
|
6
|
-
#
|
|
7
|
-
#
|
|
8
|
-
#
|
|
9
|
-
#
|
|
10
|
-
#
|
|
5
|
+
# Stan Smith 2017-08-30 added support for step sources
|
|
6
|
+
# Stan Smith 2016-12-13 refactored for mdTranslator/mdJson 2.0
|
|
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 2014-12-12 refactored to handle namespacing readers and writers
|
|
11
|
+
# Stan Smith 2014-07-09 modify require statements to function in RubyGem structure
|
|
11
12
|
# Stan Smith 2013-11-20 original script.
|
|
12
13
|
|
|
13
14
|
require_relative 'class_responsibleParty'
|
|
15
|
+
require_relative 'class_source'
|
|
14
16
|
|
|
15
17
|
module ADIWG
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
18
|
+
module Mdtranslator
|
|
19
|
+
module Writers
|
|
20
|
+
module Iso19115_2
|
|
19
21
|
|
|
20
|
-
|
|
22
|
+
class LI_ProcessStep
|
|
21
23
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
def initialize(xml, hResponseObj)
|
|
25
|
+
@xml = xml
|
|
26
|
+
@hResponseObj = hResponseObj
|
|
27
|
+
end
|
|
26
28
|
|
|
27
|
-
|
|
29
|
+
def writeXML(hStep)
|
|
28
30
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
+
# classes used
|
|
32
|
+
partyClass = CI_ResponsibleParty.new(@xml, @hResponseObj)
|
|
33
|
+
sourceClass = LI_Source.new(@xml, @hResponseObj)
|
|
31
34
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
# process step - id
|
|
36
|
+
attributes = {}
|
|
37
|
+
s = hStep[:stepId]
|
|
38
|
+
unless s.nil?
|
|
39
|
+
attributes['id' => s]
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
@xml.tag!('gmd:LI_ProcessStep', attributes) do
|
|
38
43
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
44
|
+
# process step - description (required)
|
|
45
|
+
s = hStep[:description]
|
|
46
|
+
unless s.nil?
|
|
47
|
+
@xml.tag!('gmd:description') do
|
|
48
|
+
@xml.tag!('gco:CharacterString', s)
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
if s.nil?
|
|
52
|
+
@xml.tag!('gmd:description', {'gco:nilReason' => 'missing'})
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# process step - rationale
|
|
56
|
+
s = hStep[:rationale]
|
|
57
|
+
unless s.nil?
|
|
58
|
+
@xml.tag!('gmd:rationale') do
|
|
59
|
+
@xml.tag!('gco:CharacterString', s)
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
if s.nil? && @hResponseObj[:writerShowTags]
|
|
63
|
+
@xml.tag!('gmd:rationale')
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# process step - datetime
|
|
67
|
+
hPeriod = hStep[:timePeriod]
|
|
68
|
+
unless hPeriod.empty?
|
|
69
|
+
hDate = hPeriod[:startDateTime]
|
|
70
|
+
if hDate.empty?
|
|
71
|
+
hDate = hPeriod[:endDateTime]
|
|
72
|
+
end
|
|
73
|
+
date = hDate[:dateTime]
|
|
74
|
+
dateResolution = hDate[:dateResolution]
|
|
75
|
+
s = AdiwgDateTimeFun.stringDateTimeFromDateTime(date, dateResolution)
|
|
76
|
+
if s != 'ERROR'
|
|
77
|
+
@xml.tag!('gmd:dateTime') do
|
|
78
|
+
@xml.tag!('gco:DateTime', s)
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
if hPeriod.empty? && @hResponseObj[:writerShowTags]
|
|
83
|
+
@xml.tag!('gmd:dateTime')
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
# process step - processor [] {CI_ResponsibleParty}
|
|
87
|
+
aParties = hStep[:processors]
|
|
88
|
+
aParties.each do |hRParty|
|
|
89
|
+
role = hRParty[:roleName]
|
|
90
|
+
aParties = hRParty[:parties]
|
|
91
|
+
aParties.each do |hParty|
|
|
92
|
+
@xml.tag!('gmd:processor') do
|
|
93
|
+
partyClass.writeXML(role, hParty)
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
if aParties.empty? && @hResponseObj[:writerShowTags]
|
|
98
|
+
@xml.tag!('gmd:processor')
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
# process step - source [] {LI_Source}
|
|
102
|
+
aSources = hStep[:stepSources]
|
|
103
|
+
aSources.each do |hSource|
|
|
104
|
+
@xml.tag!('gmd:source') do
|
|
105
|
+
sourceClass.writeXML(hSource)
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
if aSources.empty? && @hResponseObj[:writerShowTags]
|
|
109
|
+
@xml.tag!('gmd:source')
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
end # gmd:LI_ProcessStep tag
|
|
113
|
+
end # writeXML
|
|
114
|
+
end # LI_ProcessStep class
|
|
115
|
+
|
|
116
|
+
end
|
|
117
|
+
end
|
|
118
|
+
end
|
|
107
119
|
end
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
# mdJson 2.0 writer - allocation
|
|
2
2
|
|
|
3
3
|
# History:
|
|
4
|
-
#
|
|
4
|
+
# Stan Smith 2017-08-31 refactored for mdJson schema 2.3
|
|
5
|
+
# Stan Smith 2017-03-20 original script
|
|
5
6
|
|
|
6
7
|
require 'jbuilder'
|
|
8
|
+
require_relative 'mdJson_onlineResource'
|
|
7
9
|
|
|
8
10
|
module ADIWG
|
|
9
11
|
module Mdtranslator
|
|
@@ -12,14 +14,18 @@ module ADIWG
|
|
|
12
14
|
|
|
13
15
|
module Allocation
|
|
14
16
|
|
|
17
|
+
@Namespace = ADIWG::Mdtranslator::Writers::MdJson
|
|
18
|
+
|
|
15
19
|
def self.build(hAllocation)
|
|
16
20
|
|
|
17
21
|
Jbuilder.new do |json|
|
|
22
|
+
json.sourceAllocationId hAllocation[:id]
|
|
18
23
|
json.amount hAllocation[:amount]
|
|
19
24
|
json.currency hAllocation[:currency]
|
|
20
25
|
json.sourceId hAllocation[:sourceId]
|
|
21
26
|
json.recipientId hAllocation[:recipientId]
|
|
22
27
|
json.matching hAllocation[:matching]
|
|
28
|
+
json.onlineResource @Namespace.json_map(hAllocation[:onlineResources], OnlineResource)
|
|
23
29
|
json.comment hAllocation[:comment]
|
|
24
30
|
end
|
|
25
31
|
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
# mdJson 2.0 writer - funding
|
|
2
2
|
|
|
3
3
|
# History:
|
|
4
|
-
#
|
|
4
|
+
# Stan Smith 2017-08-31 refactored for mdJson schema 2.3
|
|
5
|
+
# Stan Smith 2017-03-20 original script
|
|
5
6
|
|
|
6
7
|
require 'jbuilder'
|
|
7
8
|
require_relative 'mdJson_allocation'
|
|
@@ -19,8 +20,9 @@ module ADIWG
|
|
|
19
20
|
def self.build(hFunding)
|
|
20
21
|
|
|
21
22
|
Jbuilder.new do |json|
|
|
22
|
-
json.
|
|
23
|
+
json.description hFunding[:description]
|
|
23
24
|
json.timePeriod TimePeriod.build(hFunding[:timePeriod]) unless hFunding[:timePeriod].empty?
|
|
25
|
+
json.allocation @Namespace.json_map(hFunding[:allocations], Allocation)
|
|
24
26
|
end
|
|
25
27
|
|
|
26
28
|
end # build
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
# mdJson 2.0 writer - process step
|
|
2
2
|
|
|
3
3
|
# History:
|
|
4
|
-
#
|
|
5
|
-
#
|
|
4
|
+
# Stan Smith 2017-08-30 add support for process step sources and products
|
|
5
|
+
# Stan Smith 2017-03-19 refactored for mdJson/mdTranslator 2.0
|
|
6
|
+
# Josh Bradley original script
|
|
6
7
|
|
|
7
8
|
require 'jbuilder'
|
|
8
9
|
require_relative 'mdJson_timePeriod'
|
|
9
10
|
require_relative 'mdJson_responsibleParty'
|
|
10
11
|
require_relative 'mdJson_citation'
|
|
11
12
|
require_relative 'mdJson_scope'
|
|
13
|
+
require_relative 'mdJson_source'
|
|
12
14
|
|
|
13
15
|
module ADIWG
|
|
14
16
|
module Mdtranslator
|
|
@@ -28,6 +30,8 @@ module ADIWG
|
|
|
28
30
|
json.timePeriod TimePeriod.build(hStep[:timePeriod]) unless hStep[:timePeriod].empty?
|
|
29
31
|
json.processor @Namespace.json_map(hStep[:processors], ResponsibleParty)
|
|
30
32
|
json.reference @Namespace.json_map(hStep[:references], Citation)
|
|
33
|
+
json.stepSource @Namespace.json_map(hStep[:stepSources], Source)
|
|
34
|
+
json.stepProduct @Namespace.json_map(hStep[:stepProducts], Source)
|
|
31
35
|
json.scope Scope.build(hStep[:scope]) unless hStep[:scope].empty?
|
|
32
36
|
end
|
|
33
37
|
|
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.
|
|
4
|
+
version: 2.2.0
|
|
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: 2017-08-
|
|
12
|
+
date: 2017-08-31 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: bundler
|
|
@@ -129,14 +129,14 @@ dependencies:
|
|
|
129
129
|
requirements:
|
|
130
130
|
- - ">="
|
|
131
131
|
- !ruby/object:Gem::Version
|
|
132
|
-
version: '2.
|
|
132
|
+
version: '2.3'
|
|
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.
|
|
139
|
+
version: '2.3'
|
|
140
140
|
- !ruby/object:Gem::Dependency
|
|
141
141
|
name: adiwg-mdcodes
|
|
142
142
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -224,6 +224,7 @@ files:
|
|
|
224
224
|
- ".gitmodules"
|
|
225
225
|
- ".jsbeautifyrc"
|
|
226
226
|
- ".travis.yml"
|
|
227
|
+
- CHANGELOG.md
|
|
227
228
|
- Gemfile
|
|
228
229
|
- LICENSE.txt
|
|
229
230
|
- README.md
|
|
@@ -237,6 +238,7 @@ files:
|
|
|
237
238
|
- lib/adiwg/mdtranslator/internal/module_dateTimeFun.rb
|
|
238
239
|
- lib/adiwg/mdtranslator/readers/fgdc/fgdc_reader.rb
|
|
239
240
|
- lib/adiwg/mdtranslator/readers/fgdc/modules/module_citation.rb
|
|
241
|
+
- lib/adiwg/mdtranslator/readers/fgdc/modules/module_contact.rb
|
|
240
242
|
- lib/adiwg/mdtranslator/readers/fgdc/modules/module_date.rb
|
|
241
243
|
- lib/adiwg/mdtranslator/readers/fgdc/modules/module_dateTime.rb
|
|
242
244
|
- lib/adiwg/mdtranslator/readers/fgdc/modules/module_distribution.rb
|
|
@@ -244,12 +246,16 @@ files:
|
|
|
244
246
|
- lib/adiwg/mdtranslator/readers/fgdc/modules/module_fgdc.rb
|
|
245
247
|
- lib/adiwg/mdtranslator/readers/fgdc/modules/module_identification.rb
|
|
246
248
|
- lib/adiwg/mdtranslator/readers/fgdc/modules/module_keyword.rb
|
|
249
|
+
- lib/adiwg/mdtranslator/readers/fgdc/modules/module_lineage.rb
|
|
247
250
|
- lib/adiwg/mdtranslator/readers/fgdc/modules/module_metadataInfo.rb
|
|
248
251
|
- lib/adiwg/mdtranslator/readers/fgdc/modules/module_onlineResource.rb
|
|
252
|
+
- lib/adiwg/mdtranslator/readers/fgdc/modules/module_process.rb
|
|
249
253
|
- lib/adiwg/mdtranslator/readers/fgdc/modules/module_publication.rb
|
|
250
254
|
- lib/adiwg/mdtranslator/readers/fgdc/modules/module_quality.rb
|
|
251
255
|
- lib/adiwg/mdtranslator/readers/fgdc/modules/module_responsibility.rb
|
|
256
|
+
- lib/adiwg/mdtranslator/readers/fgdc/modules/module_security.rb
|
|
252
257
|
- lib/adiwg/mdtranslator/readers/fgdc/modules/module_series.rb
|
|
258
|
+
- lib/adiwg/mdtranslator/readers/fgdc/modules/module_source.rb
|
|
253
259
|
- lib/adiwg/mdtranslator/readers/fgdc/modules/module_spatialDomain.rb
|
|
254
260
|
- lib/adiwg/mdtranslator/readers/fgdc/modules/module_spatialOrganization.rb
|
|
255
261
|
- lib/adiwg/mdtranslator/readers/fgdc/modules/module_spatialReference.rb
|
|
@@ -694,7 +700,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
694
700
|
version: '0'
|
|
695
701
|
requirements: []
|
|
696
702
|
rubyforge_project:
|
|
697
|
-
rubygems_version: 2.
|
|
703
|
+
rubygems_version: 2.6.8
|
|
698
704
|
signing_key:
|
|
699
705
|
specification_version: 4
|
|
700
706
|
summary: The mdtranslator (metadata translator) is a tool for translating metadata
|