adiwg-mdtranslator 2.1.1 → 2.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d2be0aaa21383741efd06ac414b0ba47453777e6
4
- data.tar.gz: 5eb25c34b45babdff52a7fadaa0e32668d2b0c9a
3
+ metadata.gz: 73eae6092a7b290349bf705525fe361c23e79acb
4
+ data.tar.gz: 62aee7493beb9a7a40936c7663ca687bed57100c
5
5
  SHA512:
6
- metadata.gz: b085419641422ad940aec5f9bbc2b014585f76a1063750012bb2274711f934cc126e32a62d1e2783855d0f4ee6f321ab21632ca07f65d7e3d69f896b54bd1ff5
7
- data.tar.gz: 7e5912f670bacbdca633ec763742be8f703a95c0b5fd107407eaf3f7a875cb6e23995001557b37844b74db21c07f3db106f4e77212ae8b5a0b32870e8e1c16a7
6
+ metadata.gz: 051de9ecbdfab677bdaf7b67333fd1508bf95073127acc1d61c50b9bb11328d3745166482479910f3959729381c0fb1758491db57693380779045493837fa25e
7
+ data.tar.gz: f8b48b38b37bdde164ca8b5b36db6d888450406e6c4565c06b89a0806be667c7d1f5d55af1d58e15b6ed477aa67c5b42bf3536dd82119523dd3235f17d604f5f
@@ -10,6 +10,7 @@ require_relative 'module_citation'
10
10
  require_relative 'module_timePeriod'
11
11
  require_relative 'module_timeInstant'
12
12
  require_relative 'module_spatialDomain'
13
+ require_relative 'module_keyword'
13
14
 
14
15
  module ADIWG
15
16
  module Mdtranslator
@@ -125,6 +126,14 @@ module ADIWG
125
126
  end
126
127
 
127
128
  # identification information 1.6 (keywords) - keywords
129
+ xKeywords = xIdInfo.xpath('./keywords')
130
+ unless xKeywords.empty?
131
+ Keyword.unpack(xKeywords, hResourceInfo[:keywords], hResponseObj)
132
+ end
133
+
134
+ # identification information 1.7 (accconst) - access constraints
135
+ # identification information 1.8 (useconst) - use constraints
136
+
128
137
 
129
138
  end
130
139
 
@@ -0,0 +1,170 @@
1
+ # Reader - fgdc to internal data structure
2
+ # unpack fgdc keyword
3
+
4
+ # History:
5
+ # Stan Smith 2017-08-24 original script
6
+
7
+ require 'nokogiri'
8
+ require 'adiwg/mdtranslator/internal/internal_metadata_obj'
9
+
10
+ module ADIWG
11
+ module Mdtranslator
12
+ module Readers
13
+ module Fgdc
14
+
15
+ module Keyword
16
+
17
+ def self.unpack(xKeywords, aKeywords, hResponseObj)
18
+
19
+ # instance classes needed in script
20
+ intMetadataClass = InternalMetadata.new
21
+
22
+ # kewords 1.6.1 (theme) - thematic keywords {keyword}
23
+ axTheme = xKeywords.xpath('./theme')
24
+ unless axTheme.empty?
25
+ axTheme.each do |xTheme|
26
+ hKeyword = intMetadataClass.newKeyword
27
+ hKeyword[:keywordType] = 'theme'
28
+
29
+ # theme keyword 1.6.1.1 (themekt) - theme keyword thesaurus {citation}
30
+ thesaurus = xTheme.xpath('./themekt').text
31
+ unless thesaurus.empty?
32
+ hCitation = intMetadataClass.newCitation
33
+ hCitation[:title] = thesaurus
34
+ hKeyword[:thesaurus] = hCitation
35
+ end
36
+
37
+ # theme keyword 1.6.1.2 (themekey) - theme keyword keyword {keywordObject}
38
+ axKeywords = xTheme.xpath('./themekey')
39
+ unless axKeywords.empty?
40
+ axKeywords.each do |xKeyword|
41
+ keyword = xKeyword.text
42
+ unless keyword.empty?
43
+ hKeywordObj = intMetadataClass.newKeywordObject
44
+ hKeywordObj[:keyword] = keyword
45
+ hKeyword[:keywords] << hKeywordObj
46
+ end
47
+ end
48
+ end
49
+
50
+ unless hKeyword.empty?
51
+ aKeywords << hKeyword
52
+ end
53
+
54
+ end
55
+ end
56
+
57
+ # kewords 1.6.2 (place) - place keywords {keyword}
58
+ axPlace = xKeywords.xpath('./place')
59
+ unless axPlace.empty?
60
+ axPlace.each do |xPlace|
61
+ hKeyword = intMetadataClass.newKeyword
62
+ hKeyword[:keywordType] = 'place'
63
+
64
+ # theme keyword 1.6.2.1 placekt) - place keyword thesaurus {citation}
65
+ thesaurus = xPlace.xpath('./placekt').text
66
+ unless thesaurus.empty?
67
+ hCitation = intMetadataClass.newCitation
68
+ hCitation[:title] = thesaurus
69
+ hKeyword[:thesaurus] = hCitation
70
+ end
71
+
72
+ # theme keyword 1.6.2.2 (placekey) - place keyword keyword {keywordObject}
73
+ axKeywords = xPlace.xpath('./placekey')
74
+ unless axKeywords.empty?
75
+ axKeywords.each do |xKeyword|
76
+ keyword = xKeyword.text
77
+ unless keyword.empty?
78
+ hKeywordObj = intMetadataClass.newKeywordObject
79
+ hKeywordObj[:keyword] = keyword
80
+ hKeyword[:keywords] << hKeywordObj
81
+ end
82
+ end
83
+ end
84
+
85
+ unless hKeyword.empty?
86
+ aKeywords << hKeyword
87
+ end
88
+
89
+ end
90
+ end
91
+
92
+ # kewords 1.6.3 (stratum) - stratum keywords {keyword}
93
+ axStratum = xKeywords.xpath('./stratum')
94
+ unless axStratum.empty?
95
+ axStratum.each do |xStratum|
96
+ hKeyword = intMetadataClass.newKeyword
97
+ hKeyword[:keywordType] = 'stratum'
98
+
99
+ # theme keyword 1.6.3.1 stratkt) - stratum keyword thesaurus {citation}
100
+ thesaurus = xStratum.xpath('./stratkt').text
101
+ unless thesaurus.empty?
102
+ hCitation = intMetadataClass.newCitation
103
+ hCitation[:title] = thesaurus
104
+ hKeyword[:thesaurus] = hCitation
105
+ end
106
+
107
+ # theme keyword 1.6.3.2 (stratkey) - stratum keyword keyword {keywordObject}
108
+ axKeywords = xStratum.xpath('./stratkey')
109
+ unless axKeywords.empty?
110
+ axKeywords.each do |xKeyword|
111
+ keyword = xKeyword.text
112
+ unless keyword.empty?
113
+ hKeywordObj = intMetadataClass.newKeywordObject
114
+ hKeywordObj[:keyword] = keyword
115
+ hKeyword[:keywords] << hKeywordObj
116
+ end
117
+ end
118
+ end
119
+
120
+ unless hKeyword.empty?
121
+ aKeywords << hKeyword
122
+ end
123
+
124
+ end
125
+ end
126
+
127
+ # kewords 1.6.4 (place) - temporal keywords {keyword}
128
+ axTemporal = xKeywords.xpath('./temporal')
129
+ unless axTemporal.empty?
130
+ axTemporal.each do |xTemporal|
131
+ hKeyword = intMetadataClass.newKeyword
132
+ hKeyword[:keywordType] = 'temporal'
133
+
134
+ # theme keyword 1.6.4.1 tempkt) - temporal keyword thesaurus {citation}
135
+ thesaurus = xTemporal.xpath('./tempkt').text
136
+ unless thesaurus.empty?
137
+ hCitation = intMetadataClass.newCitation
138
+ hCitation[:title] = thesaurus
139
+ hKeyword[:thesaurus] = hCitation
140
+ end
141
+
142
+ # theme keyword 1.6.4.2 (tempkey) - temporal keyword keyword {keywordObject}
143
+ axKeywords = xTemporal.xpath('./tempkey')
144
+ unless axKeywords.empty?
145
+ axKeywords.each do |xKeyword|
146
+ keyword = xKeyword.text
147
+ unless keyword.empty?
148
+ hKeywordObj = intMetadataClass.newKeywordObject
149
+ hKeywordObj[:keyword] = keyword
150
+ hKeyword[:keywords] << hKeywordObj
151
+ end
152
+ end
153
+ end
154
+
155
+ unless hKeyword.empty?
156
+ aKeywords << hKeyword
157
+ end
158
+
159
+ end
160
+ end
161
+
162
+ return aKeywords
163
+
164
+ end
165
+ end
166
+
167
+ end
168
+ end
169
+ end
170
+ end
@@ -51,8 +51,8 @@ module ADIWG
51
51
  hSchema = intMetadataClass.newSchema
52
52
 
53
53
  # schema
54
- hSchema[:name] = hSbJson['schema']['name']
55
- hSchema[:version] = hSbJson['schema']['version']
54
+ hSchema[:name] = 'sbJson'
55
+ hSchema[:version] = '0.0.0'
56
56
 
57
57
  # titles / alternateTitles
58
58
  Title.unpack(hSbJson, hCitation, hResponseObj)
@@ -32,25 +32,6 @@ module ADIWG
32
32
  return {}
33
33
  end
34
34
 
35
- # faking the version since sbJson has no version support
36
- hSbJson['schema'] = {
37
- 'name' => 'sbJson',
38
- 'version' => '0.0.0'
39
- }
40
-
41
- # schema - current version
42
- currentVersion = ADIWG::Mdtranslator::Readers::SbJson::VERSION
43
- hResponseObj[:readerVersionRequested] = hSbJson['schema']['version']
44
- hResponseObj[:readerVersionUsed] = currentVersion
45
- unless currentVersion == hSbJson['schema']['version']
46
- hResponseObj[:readerStructureMessages] << "sbJson schema version '#{hSbJson['version']}' is not supported"
47
- hResponseObj[:readerStructurePass] = false
48
- return {}
49
- end
50
-
51
- # faking the validation since there is no schema definition
52
- # @hResponseObj[:readerValidationPass] default is true
53
-
54
35
  # load sbJson file into internal object
55
36
  return SbJson.unpack(hSbJson, hResponseObj)
56
37
 
@@ -1,6 +1,7 @@
1
1
  # adiwg mdTranslator
2
2
 
3
3
  # version 2 history
4
+ # 2.1.2 2017-08-24 remove schema version from sbJson
4
5
  # 2.1.0 2017-08-10 revisions to sbJson reader
5
6
  # 2.0.0 2017-06-28 added sbJson reader
6
7
  # 2.0.0rc13 2017-06-16 apply changes to sbJson writer after fourth review session
@@ -22,7 +23,7 @@
22
23
  module ADIWG
23
24
  module Mdtranslator
24
25
  # current mdtranslator version
25
- VERSION = "2.1.1"
26
+ VERSION = "2.1.2"
26
27
  end
27
28
  end
28
29
 
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.1.1
4
+ version: 2.1.2
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-24 00:00:00.000000000 Z
12
+ date: 2017-08-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -243,6 +243,7 @@ files:
243
243
  - lib/adiwg/mdtranslator/readers/fgdc/modules/module_entityAttribute.rb
244
244
  - lib/adiwg/mdtranslator/readers/fgdc/modules/module_fgdc.rb
245
245
  - lib/adiwg/mdtranslator/readers/fgdc/modules/module_identification.rb
246
+ - lib/adiwg/mdtranslator/readers/fgdc/modules/module_keyword.rb
246
247
  - lib/adiwg/mdtranslator/readers/fgdc/modules/module_metadataInfo.rb
247
248
  - lib/adiwg/mdtranslator/readers/fgdc/modules/module_onlineResource.rb
248
249
  - lib/adiwg/mdtranslator/readers/fgdc/modules/module_publication.rb
@@ -693,7 +694,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
693
694
  version: '0'
694
695
  requirements: []
695
696
  rubyforge_project:
696
- rubygems_version: 2.6.8
697
+ rubygems_version: 2.5.2
697
698
  signing_key:
698
699
  specification_version: 4
699
700
  summary: The mdtranslator (metadata translator) is a tool for translating metadata