adiwg-mdtranslator 2.0.0rc13 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/adiwg/mdtranslator/readers/sbJson/modules/module_browseCategory.rb +47 -0
- data/lib/adiwg/mdtranslator/readers/sbJson/modules/module_budget.rb +79 -0
- data/lib/adiwg/mdtranslator/readers/sbJson/modules/module_contact.rb +248 -0
- data/lib/adiwg/mdtranslator/readers/sbJson/modules/module_date.rb +49 -0
- data/lib/adiwg/mdtranslator/readers/sbJson/modules/module_extent.rb +62 -0
- data/lib/adiwg/mdtranslator/readers/sbJson/modules/module_id.rb +10 -3
- data/lib/adiwg/mdtranslator/readers/sbJson/modules/module_identifier.rb +17 -15
- data/lib/adiwg/mdtranslator/readers/sbJson/modules/module_materialRequest.rb +72 -0
- data/lib/adiwg/mdtranslator/readers/sbJson/modules/module_parentId.rb +44 -0
- data/lib/adiwg/mdtranslator/readers/sbJson/modules/module_project.rb +48 -0
- data/lib/adiwg/mdtranslator/readers/sbJson/modules/module_publication.rb +77 -0
- data/lib/adiwg/mdtranslator/readers/sbJson/modules/module_sbJson.rb +90 -7
- data/lib/adiwg/mdtranslator/readers/sbJson/modules/module_spatial.rb +56 -0
- data/lib/adiwg/mdtranslator/readers/sbJson/modules/module_tag.rb +125 -0
- data/lib/adiwg/mdtranslator/readers/sbJson/modules/module_webLinkDocument.rb +99 -0
- data/lib/adiwg/mdtranslator/readers/sbJson/modules/module_webLinkGraphic.rb +92 -0
- data/lib/adiwg/mdtranslator/version.rb +2 -1
- data/lib/adiwg/mdtranslator/writers/html/sections/html_bodyScript.js +6 -1
- data/lib/adiwg/mdtranslator/writers/html/sections/html_citation.rb +6 -2
- data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_fcFeatureCatalogue.rb +1 -2
- data/lib/adiwg/mdtranslator/writers/sbJson/sections/sbJson_budget.rb +29 -2
- data/lib/adiwg/mdtranslator/writers/sbJson/sections/sbJson_codelists.rb +0 -1
- data/lib/adiwg/mdtranslator/writers/sbJson/sections/sbJson_contact.rb +7 -1
- metadata +18 -22
- data/lib/adiwg/mdtranslator/readers/sbJson/modules/Old/module_additionalDocumentation.rb +0 -52
- data/lib/adiwg/mdtranslator/readers/sbJson/modules/Old/module_boundingBox.rb +0 -54
- data/lib/adiwg/mdtranslator/readers/sbJson/modules/Old/module_browseGraphic.rb +0 -66
- data/lib/adiwg/mdtranslator/readers/sbJson/modules/Old/module_citation.rb +0 -125
- data/lib/adiwg/mdtranslator/readers/sbJson/modules/Old/module_contacts.rb +0 -143
- data/lib/adiwg/mdtranslator/readers/sbJson/modules/Old/module_dateTime.rb +0 -31
- data/lib/adiwg/mdtranslator/readers/sbJson/modules/Old/module_distributionInfo.rb +0 -64
- data/lib/adiwg/mdtranslator/readers/sbJson/modules/Old/module_extent.rb +0 -61
- data/lib/adiwg/mdtranslator/readers/sbJson/modules/Old/module_geoCoordSystem.rb +0 -50
- data/lib/adiwg/mdtranslator/readers/sbJson/modules/Old/module_geoProperties.rb +0 -91
- data/lib/adiwg/mdtranslator/readers/sbJson/modules/Old/module_geographicElement.rb +0 -161
- data/lib/adiwg/mdtranslator/readers/sbJson/modules/Old/module_metadata.rb +0 -75
- data/lib/adiwg/mdtranslator/readers/sbJson/modules/Old/module_metadataInfo.rb +0 -130
- data/lib/adiwg/mdtranslator/readers/sbJson/modules/Old/module_onlineResource.rb +0 -71
- data/lib/adiwg/mdtranslator/readers/sbJson/modules/Old/module_resourceIdentifier.rb +0 -73
- data/lib/adiwg/mdtranslator/readers/sbJson/modules/Old/module_resourceInfo.rb +0 -437
- data/lib/adiwg/mdtranslator/readers/sbJson/modules/Old/module_responsibleParty.rb +0 -53
@@ -4,6 +4,8 @@
|
|
4
4
|
# History:
|
5
5
|
# Stan Smith 2016-06-14 original script
|
6
6
|
|
7
|
+
require 'adiwg/mdtranslator/internal/internal_metadata_obj'
|
8
|
+
|
7
9
|
module ADIWG
|
8
10
|
module Mdtranslator
|
9
11
|
module Readers
|
@@ -11,19 +13,24 @@ module ADIWG
|
|
11
13
|
|
12
14
|
module Id
|
13
15
|
|
14
|
-
def self.unpack(hSbJson,
|
16
|
+
def self.unpack(hSbJson, hResponseObj)
|
17
|
+
|
18
|
+
# instance classes needed in script
|
19
|
+
intMetadataClass = InternalMetadata.new
|
15
20
|
|
16
|
-
# title
|
17
21
|
if hSbJson.has_key?('id')
|
22
|
+
hIdentifier = intMetadataClass.newIdentifier
|
23
|
+
|
18
24
|
sbId = hSbJson['id']
|
19
25
|
unless sbId.nil? || sbId == ''
|
20
26
|
hIdentifier[:identifier] = sbId
|
21
27
|
hIdentifier[:namespace] = 'gov.sciencebase.catalog'
|
22
28
|
hIdentifier[:description] = 'USGS ScienceBase Identifier'
|
29
|
+
return hIdentifier
|
23
30
|
end
|
24
31
|
end
|
25
32
|
|
26
|
-
return
|
33
|
+
return nil
|
27
34
|
|
28
35
|
end
|
29
36
|
|
@@ -13,25 +13,27 @@ module ADIWG
|
|
13
13
|
|
14
14
|
module Identifier
|
15
15
|
|
16
|
-
# instance classes needed in script
|
17
|
-
@intMetadataClass = InternalMetadata.new
|
18
|
-
|
19
16
|
def self.unpack(hSbJson, hCitation, hResponseObj)
|
20
17
|
|
21
|
-
|
22
|
-
|
18
|
+
# instance classes needed in script
|
19
|
+
intMetadataClass = InternalMetadata.new
|
23
20
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
21
|
+
if hSbJson.has_key?('identifiers')
|
22
|
+
hSbJson['identifiers'].each_with_index do |hSbIdentifier, i|
|
23
|
+
hIdentifier = intMetadataClass.newIdentifier
|
24
|
+
|
25
|
+
unless hSbIdentifier['type'].nil? || hSbIdentifier['type'] == ''
|
26
|
+
hIdentifier[:description] = hSbIdentifier['type']
|
27
|
+
end
|
28
|
+
unless hSbIdentifier['scheme'].nil? || hSbIdentifier['scheme'] == ''
|
29
|
+
hIdentifier[:namespace] = hSbIdentifier['scheme']
|
30
|
+
end
|
31
|
+
unless hSbIdentifier['key'].nil? || hSbIdentifier['key'] == ''
|
32
|
+
hIdentifier[:identifier] = hSbIdentifier['key']
|
33
|
+
end
|
33
34
|
|
34
|
-
|
35
|
+
hCitation[:identifiers] << hIdentifier
|
36
|
+
end
|
35
37
|
end
|
36
38
|
|
37
39
|
return hCitation
|
@@ -0,0 +1,72 @@
|
|
1
|
+
# unpack material request instructions
|
2
|
+
# Reader - ScienceBase JSON to internal data structure
|
3
|
+
|
4
|
+
# History:
|
5
|
+
# Stan Smith 2016-06-21 original script
|
6
|
+
|
7
|
+
require 'uuidtools'
|
8
|
+
require 'adiwg/mdtranslator/internal/internal_metadata_obj'
|
9
|
+
|
10
|
+
module ADIWG
|
11
|
+
module Mdtranslator
|
12
|
+
module Readers
|
13
|
+
module SbJson
|
14
|
+
|
15
|
+
module MaterialRequest
|
16
|
+
|
17
|
+
def self.unpack(hSbJson, hResponseObj)
|
18
|
+
|
19
|
+
# instance classes needed in script
|
20
|
+
intMetadataClass = InternalMetadata.new
|
21
|
+
|
22
|
+
if hSbJson.has_key?('materialRequestInstructions')
|
23
|
+
sbRequest = hSbJson['materialRequestInstructions']
|
24
|
+
unless sbRequest.nil? || sbRequest == ''
|
25
|
+
|
26
|
+
# make a new request contact
|
27
|
+
hContact = intMetadataClass.newContact
|
28
|
+
hContact[:contactId] = UUIDTools::UUID.random_create.to_s
|
29
|
+
hContact[:name] = 'U.S. Geological Survey ScienceBase'
|
30
|
+
hContact[:contactType] = 'materialRequestInstructions'
|
31
|
+
|
32
|
+
# make a new distribution record
|
33
|
+
hDistribution = intMetadataClass.newDistribution
|
34
|
+
hDistributor = intMetadataClass.newDistributor
|
35
|
+
hResponsibility = intMetadataClass.newResponsibility
|
36
|
+
hParty = intMetadataClass.newParty
|
37
|
+
hProcess = intMetadataClass.newOrderProcess
|
38
|
+
|
39
|
+
# parties [] {party}
|
40
|
+
hParty[:contactId] = hContact[:contactId]
|
41
|
+
hParty[:contactType] = 'ScienceBase'
|
42
|
+
|
43
|
+
# contact {responsibility}
|
44
|
+
hResponsibility[:roleName] = 'distributor'
|
45
|
+
hResponsibility[:parties] << hParty
|
46
|
+
|
47
|
+
# orderProcess {orderProcess}
|
48
|
+
hProcess[:orderingInstructions] = sbRequest
|
49
|
+
|
50
|
+
# distributor {distributor}
|
51
|
+
hDistributor[:contact] = hResponsibility
|
52
|
+
hDistributor[:orderProcess] << hProcess
|
53
|
+
|
54
|
+
# distribution {distribution}
|
55
|
+
hDistribution[:description] = 'sbJson Material Request distributor generated by ADIwg mdTranslator'
|
56
|
+
hDistribution[:distributor] << hDistributor
|
57
|
+
|
58
|
+
return hContact, hDistribution
|
59
|
+
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
return nil
|
64
|
+
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# unpack parent id
|
2
|
+
# Reader - ScienceBase JSON to internal data structure
|
3
|
+
|
4
|
+
# History:
|
5
|
+
# Stan Smith 2016-06-21 original script
|
6
|
+
|
7
|
+
require 'adiwg/mdtranslator/internal/internal_metadata_obj'
|
8
|
+
|
9
|
+
module ADIWG
|
10
|
+
module Mdtranslator
|
11
|
+
module Readers
|
12
|
+
module SbJson
|
13
|
+
|
14
|
+
module ParentId
|
15
|
+
|
16
|
+
def self.unpack(hSbJson, hResponseObj)
|
17
|
+
|
18
|
+
# instance classes needed in script
|
19
|
+
intMetadataClass = InternalMetadata.new
|
20
|
+
|
21
|
+
if hSbJson.has_key?('parentId')
|
22
|
+
sbId = hSbJson['parentId']
|
23
|
+
unless sbId.nil? || sbId == ''
|
24
|
+
hCitation = intMetadataClass.newCitation
|
25
|
+
hIdentifier = intMetadataClass.newIdentifier
|
26
|
+
hCitation[:title] = 'U.S. Geological Survey ScienceBase parent identifier'
|
27
|
+
hIdentifier[:identifier] = sbId
|
28
|
+
hIdentifier[:namespace] = 'gov.sciencebase.catalog'
|
29
|
+
hIdentifier[:description] = 'USGS ScienceBase Identifier'
|
30
|
+
hCitation[:identifiers] << hIdentifier
|
31
|
+
return hCitation
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
return nil
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# unpack project facet
|
2
|
+
# Reader - ScienceBase JSON to internal data structure
|
3
|
+
|
4
|
+
# History:
|
5
|
+
# Stan Smith 2016-06-27 original script
|
6
|
+
|
7
|
+
require 'adiwg/mdtranslator/writers/sbJson/sections/sbJson_codelists'
|
8
|
+
|
9
|
+
module ADIWG
|
10
|
+
module Mdtranslator
|
11
|
+
module Readers
|
12
|
+
module SbJson
|
13
|
+
|
14
|
+
module Project
|
15
|
+
|
16
|
+
@Namespace = ADIWG::Mdtranslator::Writers::SbJson
|
17
|
+
|
18
|
+
def self.unpack(hFacet, hResourceInfo, hResponseObj)
|
19
|
+
|
20
|
+
# project status
|
21
|
+
if hFacet.has_key?('projectStatus')
|
22
|
+
unless hFacet['projectStatus'].nil? || ['projectStatus'] == ''
|
23
|
+
sbStatus = hFacet['projectStatus']
|
24
|
+
status = @Namespace::Codelists.codelist_iso_to_sb('iso_sb_progress', :sbCode => sbStatus)
|
25
|
+
status = status.nil? ? sbStatus : status
|
26
|
+
hResourceInfo[:status] << status
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
# short abstract
|
31
|
+
if hFacet.has_key?('parts')
|
32
|
+
hFacet['parts'].each do |hPart|
|
33
|
+
if hPart['type'] == 'Short Project Description'
|
34
|
+
hResourceInfo[:shortAbstract] = hPart['value']
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
return hResourceInfo
|
40
|
+
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
# unpack citation facet
|
2
|
+
# Reader - ScienceBase JSON to internal data structure
|
3
|
+
|
4
|
+
# History:
|
5
|
+
# Stan Smith 2016-06-25 original script
|
6
|
+
|
7
|
+
require 'adiwg/mdtranslator/internal/internal_metadata_obj'
|
8
|
+
require 'adiwg/mdtranslator/writers/sbJson/sections/sbJson_codelists'
|
9
|
+
|
10
|
+
module ADIWG
|
11
|
+
module Mdtranslator
|
12
|
+
module Readers
|
13
|
+
module SbJson
|
14
|
+
|
15
|
+
module Publication
|
16
|
+
|
17
|
+
def self.unpack(hFacet, hResourceInfo, hCitation, hResponseObj)
|
18
|
+
|
19
|
+
@Namespace = ADIWG::Mdtranslator::Writers::SbJson
|
20
|
+
|
21
|
+
# instance classes needed in script
|
22
|
+
intMetadataClass = InternalMetadata.new
|
23
|
+
|
24
|
+
# set resource type
|
25
|
+
if hFacet.has_key?('citationType')
|
26
|
+
unless hFacet['citationType'].nil? || hFacet['citationType'] == ''
|
27
|
+
hResType = intMetadataClass.newResourceType
|
28
|
+
sbType = hFacet['citationType']
|
29
|
+
type = @Namespace::Codelists.codelist_iso_to_sb('iso_sb_scope', :sbCode => sbType)
|
30
|
+
type = type.nil? ? sbType : type
|
31
|
+
hResType[:type] = type
|
32
|
+
hResType[:name] = sbType
|
33
|
+
hResourceInfo[:resourceTypes] << hResType
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
# set citation
|
38
|
+
hSeries = intMetadataClass.newSeries
|
39
|
+
if hFacet.has_key?('note')
|
40
|
+
unless hFacet['note'].nil? || hFacet['note'] == ''
|
41
|
+
i = hCitation[:otherDetails].length
|
42
|
+
hCitation[:otherDetails][i] = hFacet['note']
|
43
|
+
end
|
44
|
+
end
|
45
|
+
if hFacet.has_key?('journal')
|
46
|
+
unless hFacet['journal'].nil? || hFacet['journal'] == ''
|
47
|
+
hSeries[:seriesName] = hFacet['journal']
|
48
|
+
end
|
49
|
+
end
|
50
|
+
if hFacet.has_key?('edition')
|
51
|
+
unless hFacet['edition'].nil? || hFacet['edition'] == ''
|
52
|
+
hSeries[:seriesIssue] = hFacet['edition']
|
53
|
+
end
|
54
|
+
end
|
55
|
+
unless hSeries.empty?
|
56
|
+
hCitation[:series] = hSeries
|
57
|
+
end
|
58
|
+
|
59
|
+
# set default language
|
60
|
+
if hFacet.has_key?('language')
|
61
|
+
unless hFacet['language'].nil? || hFacet['language'] == ''
|
62
|
+
hLocale = intMetadataClass.newLocale
|
63
|
+
hLocale[:languageCode] = hFacet['language']
|
64
|
+
hResourceInfo[:defaultResourceLocale] = hLocale
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
return hResourceInfo, hCitation
|
69
|
+
|
70
|
+
end
|
71
|
+
|
72
|
+
end
|
73
|
+
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
@@ -14,6 +14,19 @@ require_relative 'module_identifier'
|
|
14
14
|
require_relative 'module_purpose'
|
15
15
|
require_relative 'module_rights'
|
16
16
|
require_relative 'module_provenance'
|
17
|
+
require_relative 'module_materialRequest'
|
18
|
+
require_relative 'module_parentId'
|
19
|
+
require_relative 'module_contact'
|
20
|
+
require_relative 'module_webLinkDocument'
|
21
|
+
require_relative 'module_webLinkGraphic'
|
22
|
+
require_relative 'module_browseCategory'
|
23
|
+
require_relative 'module_tag'
|
24
|
+
require_relative 'module_date'
|
25
|
+
require_relative 'module_spatial'
|
26
|
+
require_relative 'module_budget'
|
27
|
+
require_relative 'module_publication'
|
28
|
+
require_relative 'module_project'
|
29
|
+
require_relative 'module_extent'
|
17
30
|
|
18
31
|
module ADIWG
|
19
32
|
module Mdtranslator
|
@@ -34,17 +47,18 @@ module ADIWG
|
|
34
47
|
hMetadataInfo = intMetadataClass.newMetadataInfo
|
35
48
|
hResourceInfo = intMetadataClass.newResourceInfo
|
36
49
|
hCitation = intMetadataClass.newCitation
|
50
|
+
hSchema = intMetadataClass.newSchema
|
37
51
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
intObj[:metadata] = hMetadata
|
52
|
+
# schema
|
53
|
+
hSchema[:name] = hSbJson['schema']['name']
|
54
|
+
hSchema[:version] = hSbJson['schema']['version']
|
42
55
|
|
43
56
|
# titles / alternateTitles
|
44
57
|
Title.unpack(hSbJson, hCitation, hResponseObj)
|
45
58
|
|
46
59
|
# id
|
47
|
-
Id.unpack(hSbJson,
|
60
|
+
hReturn = Id.unpack(hSbJson, hResponseObj)
|
61
|
+
hMetadataInfo[:metadataIdentifier] = hReturn unless hReturn.nil?
|
48
62
|
|
49
63
|
# body / summary
|
50
64
|
Body.unpack(hSbJson, hResourceInfo, hResponseObj)
|
@@ -66,9 +80,78 @@ module ADIWG
|
|
66
80
|
Provenance.unpack(hSbJson, hCitation, hResponseObj)
|
67
81
|
|
68
82
|
# materialRequestInstructions
|
83
|
+
aReturn = MaterialRequest.unpack(hSbJson, hResponseObj)
|
84
|
+
unless aReturn.nil?
|
85
|
+
hContact = aReturn[0]
|
86
|
+
myIndex = intObj[:contacts].length
|
87
|
+
intObj[:contacts] << hContact
|
88
|
+
aReturn[1][:distributor][0][:contact][:parties][0][:contactIndex] = myIndex
|
89
|
+
hMetadata[:distributorInfo] << aReturn[1]
|
90
|
+
end
|
91
|
+
|
92
|
+
# parent ID
|
93
|
+
hReturn = ParentId.unpack(hSbJson, hResponseObj)
|
94
|
+
hMetadataInfo[:parentMetadata] = hReturn unless hReturn.nil?
|
95
|
+
|
96
|
+
# contacts
|
97
|
+
Contact.unpack(hSbJson, intObj[:contacts], hResponseObj)
|
98
|
+
|
99
|
+
# web links
|
100
|
+
aReturn = WebLinkDocument.unpack(hSbJson, hResponseObj)
|
101
|
+
hMetadata[:additionalDocuments].concat(aReturn) unless aReturn.nil?
|
102
|
+
aReturn = WebLinkGraphic.unpack(hSbJson, hResponseObj)
|
103
|
+
hResourceInfo[:graphicOverviews].concat(aReturn) unless aReturn.nil?
|
104
|
+
|
105
|
+
# browse categories
|
106
|
+
BrowseCategory.unpack(hSbJson, hResourceInfo, hResponseObj)
|
107
|
+
|
108
|
+
# tags
|
109
|
+
Tag.unpack(hSbJson, hResourceInfo, hResponseObj)
|
110
|
+
|
111
|
+
# dates
|
112
|
+
Date.unpack(hSbJson, hCitation, hResponseObj)
|
113
|
+
|
114
|
+
# Spatial
|
115
|
+
Spatial.unpack(hSbJson, hResourceInfo, hResponseObj)
|
116
|
+
|
117
|
+
# facets
|
118
|
+
if hSbJson.has_key?('facets')
|
119
|
+
hSbJson['facets'].each do |hFacet|
|
120
|
+
if hFacet.has_key?('className')
|
121
|
+
|
122
|
+
# budget facet
|
123
|
+
if hFacet['className'] == 'gov.sciencebase.catalog.item.facet.BudgetFacet'
|
124
|
+
Budget.unpack(hFacet, hMetadata, hResponseObj)
|
125
|
+
end
|
69
126
|
|
70
|
-
|
71
|
-
|
127
|
+
# project facet
|
128
|
+
if hFacet['className'] == 'gov.sciencebase.catalog.item.facet.ProjectFacet'
|
129
|
+
Project.unpack(hFacet, hResourceInfo, hResponseObj)
|
130
|
+
end
|
131
|
+
|
132
|
+
# citation facet
|
133
|
+
if hFacet['className'] == 'gov.sciencebase.catalog.item.facet.CitationFacet'
|
134
|
+
Publication.unpack(hFacet, hResourceInfo, hCitation, hResponseObj)
|
135
|
+
end
|
136
|
+
|
137
|
+
end
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
# extents
|
142
|
+
if hSbJson.has_key?('extents')
|
143
|
+
hSbJson['extents'].each do |extentId|
|
144
|
+
hReturn = Extent.unpack(extentId, hResponseObj)
|
145
|
+
hResourceInfo[:extents] << hReturn unless hReturn.empty?
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
149
|
+
hResourceInfo[:citation] = hCitation
|
150
|
+
hMetadata[:metadataInfo] = hMetadataInfo
|
151
|
+
hMetadata[:resourceInfo] = hResourceInfo
|
152
|
+
intObj[:schema] = hSchema
|
153
|
+
intObj[:metadata] = hMetadata
|
154
|
+
@contacts = intObj[:contacts]
|
72
155
|
|
73
156
|
return intObj
|
74
157
|
|