adiwg-mdtranslator 1.3.0 → 1.4.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (97) hide show
  1. checksums.yaml +4 -4
  2. data/.jsbeautifyrc +8 -0
  3. data/Rakefile +1 -3
  4. data/adiwg-mdtranslator.gemspec +2 -0
  5. data/bin/mdtranslator +2 -2
  6. data/lib/adiwg/mdtranslator.rb +2 -0
  7. data/lib/adiwg/mdtranslator/internal/internal_metadata_obj.rb +6 -3
  8. data/lib/adiwg/mdtranslator/internal/module_geoFormat.rb +183 -190
  9. data/lib/adiwg/mdtranslator/internal/module_lineString.rb +18 -0
  10. data/lib/adiwg/mdtranslator/internal/module_point.rb +18 -0
  11. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_contacts.rb +3 -1
  12. data/lib/adiwg/mdtranslator/readers/mdJson/modules_v1/module_geographicElement.rb +18 -10
  13. data/lib/adiwg/mdtranslator/readers/sbJson/modules_v0/module_additionalDocumentation.rb +52 -0
  14. data/lib/adiwg/mdtranslator/readers/sbJson/modules_v0/module_boundingBox.rb +54 -0
  15. data/lib/adiwg/mdtranslator/readers/sbJson/modules_v0/module_browseGraphic.rb +66 -0
  16. data/lib/adiwg/mdtranslator/readers/sbJson/modules_v0/module_citation.rb +125 -0
  17. data/lib/adiwg/mdtranslator/readers/sbJson/modules_v0/module_contacts.rb +144 -0
  18. data/lib/adiwg/mdtranslator/readers/sbJson/modules_v0/module_dateTime.rb +31 -0
  19. data/lib/adiwg/mdtranslator/readers/sbJson/modules_v0/module_distributionInfo.rb +64 -0
  20. data/lib/adiwg/mdtranslator/readers/sbJson/modules_v0/module_extent.rb +61 -0
  21. data/lib/adiwg/mdtranslator/readers/sbJson/modules_v0/module_geoCoordSystem.rb +50 -0
  22. data/lib/adiwg/mdtranslator/readers/sbJson/modules_v0/module_geoProperties.rb +91 -0
  23. data/lib/adiwg/mdtranslator/readers/sbJson/modules_v0/module_geographicElement.rb +161 -0
  24. data/lib/adiwg/mdtranslator/readers/sbJson/modules_v0/module_metadata.rb +70 -0
  25. data/lib/adiwg/mdtranslator/readers/sbJson/modules_v0/module_metadataInfo.rb +131 -0
  26. data/lib/adiwg/mdtranslator/readers/sbJson/modules_v0/module_onlineResource.rb +71 -0
  27. data/lib/adiwg/mdtranslator/readers/sbJson/modules_v0/module_resourceIdentifier.rb +73 -0
  28. data/lib/adiwg/mdtranslator/readers/sbJson/modules_v0/module_resourceInfo.rb +437 -0
  29. data/lib/adiwg/mdtranslator/readers/sbJson/modules_v0/module_responsibleParty.rb +53 -0
  30. data/lib/adiwg/mdtranslator/readers/sbJson/modules_v0/module_sbJson.rb +52 -0
  31. data/lib/adiwg/mdtranslator/readers/sbJson/modules_v0/version.rb +12 -0
  32. data/lib/adiwg/mdtranslator/readers/sbJson/readme.md +12 -0
  33. data/lib/adiwg/mdtranslator/readers/sbJson/sbJson_reader.rb +205 -0
  34. data/lib/adiwg/mdtranslator/readers/sbJson/sbJson_validator.rb +44 -0
  35. data/lib/adiwg/mdtranslator/version.rb +1 -2
  36. data/lib/adiwg/mdtranslator/writers/html/sections/html_browseGraphic.rb +2 -1
  37. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_multiGeometry.rb +5 -5
  38. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_responsibleParty.rb +1 -1
  39. data/lib/adiwg/mdtranslator/writers/mdJson/mdJson_writer.rb +42 -0
  40. data/lib/adiwg/mdtranslator/writers/mdJson/readme.md +19 -0
  41. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_additionalDoc.rb +19 -0
  42. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_address.rb +22 -0
  43. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_associatedResource.rb +22 -0
  44. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_attribute.rb +27 -0
  45. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_base.rb +19 -0
  46. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_citation.rb +33 -0
  47. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_constraint.rb +28 -0
  48. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_contact.rb +31 -0
  49. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_coverageInfo.rb +30 -0
  50. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_coverageItem.rb +44 -0
  51. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_dataQuality.rb +32 -0
  52. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_dateTime.rb +18 -0
  53. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_dictionary.rb +33 -0
  54. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_distributionInfo.rb +31 -0
  55. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_domain.rb +25 -0
  56. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_entity.rb +37 -0
  57. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_extent.rb +26 -0
  58. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_format.rb +19 -0
  59. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_geographicElement.rb +81 -0
  60. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_graphicOverview.rb +20 -0
  61. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_gridInfo.rb +27 -0
  62. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_imageInfo.rb +28 -0
  63. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_keyword.rb +20 -0
  64. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_locale.rb +19 -0
  65. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_metadata.rb +30 -0
  66. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_metadataInfo.rb +36 -0
  67. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_onlineResource.rb +21 -0
  68. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_phone.rb +19 -0
  69. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_processStep.rb +25 -0
  70. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_resourceIdentifier.rb +23 -0
  71. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_resourceInfo.rb +69 -0
  72. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_resourceMaintenance.rb +23 -0
  73. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_responsibleParty.rb +18 -0
  74. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_spatialreference.rb +19 -0
  75. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_taxon.rb +19 -0
  76. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_taxonomy.rb +32 -0
  77. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_temporalElement.rb +38 -0
  78. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_timePeriod.rb +20 -0
  79. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_transferOption.rb +33 -0
  80. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_usage.rb +23 -0
  81. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_verticalElement.rb +20 -0
  82. data/lib/adiwg/mdtranslator/writers/mdJson/version.rb +13 -0
  83. data/lib/adiwg/mdtranslator/writers/sbJson/readme.md +12 -0
  84. data/lib/adiwg/mdtranslator/writers/sbJson/sbJson_writer.rb +126 -0
  85. data/lib/adiwg/mdtranslator/writers/sbJson/sections/sbJson_base.rb +19 -0
  86. data/lib/adiwg/mdtranslator/writers/sbJson/sections/sbJson_contact.rb +42 -0
  87. data/lib/adiwg/mdtranslator/writers/sbJson/sections/sbJson_identifier.rb +22 -0
  88. data/lib/adiwg/mdtranslator/writers/sbJson/sections/sbJson_spatial.rb +49 -0
  89. data/lib/adiwg/mdtranslator/writers/sbJson/version.rb +13 -0
  90. data/test/readers/mdJson/v1/tc_reader_mdjson_translation.rb +83 -0
  91. data/test/readers/sbJson/v0/tc_reader_sbjson_translation.rb +79 -0
  92. data/test/readers/sbJson/v0/test.json +431 -0
  93. data/test/readers/sbJson/v0/test1.json +383 -0
  94. data/test/writers/mdJson/v1/tc_writer_mdJson.rb +60 -0
  95. data/test/writers/sbJson/v0/tc_writer_sbJson.rb +60 -0
  96. metadata +121 -7
  97. data/test/readers/mdJson/v1/tc_translation_19115_2.rb +0 -67
@@ -0,0 +1,42 @@
1
+ require 'jbuilder'
2
+ require_relative 'version'
3
+ require_relative 'sections/mdJson_contact'
4
+ require_relative 'sections/mdJson_metadata'
5
+ require_relative 'sections/mdJson_dictionary'
6
+
7
+ module ADIWG
8
+ module Mdtranslator
9
+ module Writers
10
+ module MdJson
11
+ def self.startWriter(_intObj, responseObj, _paramsObj)
12
+ #set output flag for null properties
13
+ Jbuilder::ignore_nil(!responseObj[:writerShowTags])
14
+ # set the format of the output file based on the writer specified
15
+ responseObj[:writerFormat] = 'mdJson'
16
+ responseObj[:writerVersion] = ADIWG::Mdtranslator::Writers::MdJson::VERSION
17
+
18
+ # version
19
+ metadata = Jbuilder.new do |json|
20
+ json.version do
21
+ json.name 'mdJson'
22
+ json.version responseObj[:writerVersion]
23
+ end
24
+
25
+ json.contact _intObj[:contacts].map { |obj| Contact.build(obj).attributes!}
26
+ json.metadata Metadata.build(_intObj[:metadata])
27
+ json.dataDictionary _intObj[:dataDictionary].map { |obj| Dictionary.build(obj).attributes!}
28
+ end
29
+
30
+ # set writer pass to true if no messages
31
+ # false or warning will be set by code that places the message
32
+ responseObj[:writerPass] = true if responseObj[:writerMessages].empty?
33
+
34
+ # j = JSON.parse(metadata.target!)
35
+ # puts JSON.pretty_generate(j)
36
+
37
+ metadata.target!
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,19 @@
1
+
2
+ ## mdJson
3
+
4
+ ### Supported versions
5
+
6
+ > 1.1.x
7
+
8
+ ### Writer for ADIwg JSON metadata format (mdJson)
9
+
10
+ The mdJson format is a simple JSON format for documenting and exchanging information
11
+ about scientific projects and data. The Alaska Data Integration working group (ADIwg) wrote the
12
+ standard to support translation to complex standards such as the ISO 19115-2 Geographic Metadata standard
13
+ and FGDC's Content Standard for Digital Geospatial Metadata. The mdJson standard
14
+ remains independent of any published standards while comprehensive enough to support translation
15
+ to many. The mdJson standard is also a convenient format to exchange directly with other organizations as
16
+ the JSON structure is easier create and ingest by programming languages.
17
+
18
+ The mdJson format is fully documented on the interactive
19
+ [mdTools](http://www.adiwg.org/mdTools) website.
@@ -0,0 +1,19 @@
1
+ require 'jbuilder'
2
+ require_relative 'mdJson_citation'
3
+
4
+ module ADIWG
5
+ module Mdtranslator
6
+ module Writers
7
+ module MdJson
8
+ module AdditionalDoc
9
+ def self.build(intObj)
10
+ Jbuilder.new do |json|
11
+ json.resourceType intObj[:resourceType]
12
+ json.citation Citation.build(intObj[:citation]) unless intObj[:citation].empty?
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,22 @@
1
+ require 'jbuilder'
2
+
3
+ module ADIWG
4
+ module Mdtranslator
5
+ module Writers
6
+ module MdJson
7
+ module Address
8
+ def self.build(intObj)
9
+ Jbuilder.new do |json|
10
+ json.deliveryPoint(intObj[:deliveryPoints])
11
+ json.protocol intObj[:city]
12
+ json.name intObj[:adminArea]
13
+ json.description intObj[:postalCode]
14
+ json.function intObj[:country]
15
+ json.electronicMailAddress(intObj[:eMailList])
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,22 @@
1
+ require 'jbuilder'
2
+ require_relative 'mdJson_citation'
3
+
4
+ module ADIWG
5
+ module Mdtranslator
6
+ module Writers
7
+ module MdJson
8
+ module AssociatedResource
9
+ def self.build(intObj)
10
+ Jbuilder.new do |json|
11
+ json.associationType intObj[:associationType]
12
+ json.initiativeType intObj[:initiativeType]
13
+ json.resourceType intObj[:resourceType]
14
+ json.resourceCitation Citation.build(intObj[:resourceCitation]) unless intObj[:resourceCitation].empty?
15
+ json.metadataCitation Citation.build(intObj[:metadataCitation]) unless intObj[:metadataCitation].empty?
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,27 @@
1
+ require 'jbuilder'
2
+
3
+ module ADIWG
4
+ module Mdtranslator
5
+ module Writers
6
+ module MdJson
7
+ module Attribute
8
+ def self.build(intObj)
9
+ Jbuilder.new do |json|
10
+ json.commonName intObj[:attributeName]
11
+ json.codeName intObj[:attributeCode]
12
+ json.alias (intObj[:attributeAlias])
13
+ json.definition intObj[:attributeDefinition]
14
+ json.dataType intObj[:dataType]
15
+ json.allowNull intObj[:allowNull]
16
+ json.units intObj[:unitOfMeasure]
17
+ json.domainId intObj[:domainId]
18
+ json.minValue intObj[:minValue]
19
+ json.maxValue intObj[:maxValue]
20
+
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,19 @@
1
+ require 'jbuilder'
2
+
3
+ module ADIWG
4
+ module Mdtranslator
5
+ module Writers
6
+ module MdJson
7
+ module Base
8
+ def json_map(collection = [], _class)
9
+ if collection.nil? || collection.empty?
10
+ return nil
11
+ else
12
+ collection.map { |item| _class.build(item).attributes! }
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,33 @@
1
+ require 'jbuilder'
2
+ require_relative 'mdJson_base'
3
+ require_relative 'mdJson_resourceIdentifier'
4
+ require_relative 'mdJson_onlineResource'
5
+ require_relative 'mdJson_dateTime'
6
+ require_relative 'mdJson_responsibleParty'
7
+
8
+ module ADIWG
9
+ module Mdtranslator
10
+ module Writers
11
+ module MdJson
12
+ module Citation
13
+ extend MdJson::Base
14
+
15
+ def self.build(cite)
16
+ unless cite.nil? || cite.empty?
17
+ Jbuilder.new do |json|
18
+ json.title cite[:citTitle]
19
+ json.alternateTitle cite[:citAltTitle]
20
+ json.date json_map(cite[:citDate], DateTime)
21
+ json.edition cite[:citEdition]
22
+ json.identifier json_map(cite[:citResourceIds], ResourceIdentifier)
23
+ json.responsibleParty json_map(cite[:citResponsibleParty], ResponsibleParty)
24
+ json.presentationForm(cite[:citResourceForms]) unless cite[:citResourceForms].empty?
25
+ json.onlineResource json_map(cite[:citOlResources], OnlineResource)
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,28 @@
1
+ require 'jbuilder'
2
+
3
+ module ADIWG
4
+ module Mdtranslator
5
+ module Writers
6
+ module MdJson
7
+ module Constraint
8
+ def self.build(use, legal, security)
9
+ Jbuilder.new do |json|
10
+ json.useLimitation(use)
11
+ json.legalConstraint(legal) do |lg|
12
+ json.accessConstraint(lg[:accessCodes])
13
+ json.useConstraint(lg[:useCodes])
14
+ json.otherConstraint(lg[:otherCons])
15
+ end
16
+ json.securityConstraint(security) do |sc|
17
+ json.classification sc[:classCode]
18
+ json.userNote sc[:userNote]
19
+ json.classificationSystem sc[:classSystem]
20
+ json.handlingDescription sc[:handlingDesc]
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,31 @@
1
+ require 'jbuilder'
2
+ require_relative 'mdJson_base'
3
+ require_relative 'mdJson_onlineResource'
4
+ require_relative 'mdJson_phone'
5
+ require_relative 'mdJson_address'
6
+
7
+ module ADIWG
8
+ module Mdtranslator
9
+ module Writers
10
+ module MdJson
11
+ module Contact
12
+ extend MdJson::Base
13
+
14
+ def self.build(contact)
15
+ Jbuilder.new do |json|
16
+ # contact
17
+ json.contactId contact[:contactId]
18
+ json.individualName contact[:indName]
19
+ json.organizationName contact[:orgName]
20
+ json.positionName contact[:position]
21
+ json.onlineResource json_map(contact[:onlineRes], OnlineResource)
22
+ json.contactInstructions contact[:contactInstructions]
23
+ json.phoneBook json_map(contact[:phones], Phone)
24
+ json.address Address.build(contact[:address])
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,30 @@
1
+ require 'jbuilder'
2
+ require_relative 'mdJson_base'
3
+ require_relative 'mdJson_resourceIdentifier'
4
+ require_relative 'mdJson_coverageItem'
5
+ require_relative 'mdJson_imageInfo'
6
+
7
+ module ADIWG
8
+ module Mdtranslator
9
+ module Writers
10
+ module MdJson
11
+ module CoverageInfo
12
+ extend MdJson::Base
13
+
14
+ def self.build(intObj)
15
+ unless intObj.empty?
16
+ Jbuilder.new do |json|
17
+ json.coverageType intObj[:coverageType]
18
+ json.coverageName intObj[:coverageName]
19
+ json.coverageDescription intObj[:coverageDescription]
20
+ json.processingLevel ResourceIdentifier.build(intObj[:processingLevel]) unless intObj[:processingLevel].empty?
21
+ json.coverageItem json_map(intObj[:coverageItems], CoverageItem)
22
+ json.imageInfo ImageInfo.build(intObj[:imageInfo]) unless intObj[:imageInfo].empty?
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,44 @@
1
+ require 'jbuilder'
2
+
3
+ module ADIWG
4
+ module Mdtranslator
5
+ module Writers
6
+ module MdJson
7
+ module CoverageItem
8
+ def self.build(intObj)
9
+ Jbuilder.new do |json|
10
+ json.itemName intObj[:itemName]
11
+ json.itemType intObj[:itemType]
12
+ json.itemDescription intObj[:itemDescription]
13
+ json.minValue intObj[:minValue]
14
+ json.maxValue intObj[:maxValue]
15
+ json.units intObj[:units]
16
+ json.scaleFactor intObj[:scaleFactor]
17
+ json.offset intObj[:offset]
18
+ json.meanValue intObj[:meanValue]
19
+ json.standardDeviation intObj[:standardDeviation]
20
+ json.bitsPerValue intObj[:bitsPerValue]
21
+ json.classifiedData do
22
+ cd = intObj[:classedData]
23
+ json.numberOfClasses cd[:numberOfClasses]
24
+ json.classifiedDataItem(cd[:classedDataItems]) do |cdi|
25
+ json.className cdi[:className]
26
+ json.classDescription cdi[:classDescription]
27
+ json.classValue cdi[:classValue]
28
+ end
29
+ end unless intObj[:classedData].empty?
30
+ json.sensorInfo do
31
+ si = intObj[:sensorInfo]
32
+ json.toneGradations si[:toneGradations]
33
+ json.sensorMin si[:sensorMin]
34
+ json.sensorMax si[:sensorMax]
35
+ json.sensorUnits si[:sensorUnits]
36
+ json.sensorPeakResponse si[:sensorPeakResponse]
37
+ end unless intObj[:sensorInfo].empty?
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,32 @@
1
+ require 'jbuilder'
2
+ require_relative 'mdJson_base'
3
+ require_relative 'mdJson_citation'
4
+ require_relative 'mdJson_processStep'
5
+
6
+ module ADIWG
7
+ module Mdtranslator
8
+ module Writers
9
+ module MdJson
10
+ module DataQuality
11
+ extend MdJson::Base
12
+
13
+ def self.build(intObj)
14
+ Jbuilder.new do |json|
15
+ json.scope intObj[:dataScope]
16
+ json.lineage do
17
+ ln = intObj[:dataLineage]
18
+ json.statement ln[:statement]
19
+ json.processStep json_map(ln[:processSteps], ProcessStep)
20
+ json.source(ln[:dataSources]) do |src|
21
+ json.description src[:sourceDescription]
22
+ json.citation Citation.build(src[:sourceCitation]) unless src[:sourceCitation].empty?
23
+ json.processStep json_map(src[:sourceSteps], ProcessStep) unless src[:sourceSteps].empty?
24
+ end unless ln[:dataSources].empty?
25
+ end unless intObj[:dataLineage].empty?
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,18 @@
1
+ require 'jbuilder'
2
+
3
+ module ADIWG
4
+ module Mdtranslator
5
+ module Writers
6
+ module MdJson
7
+ module DateTime
8
+ def self.build(intObj)
9
+ Jbuilder.new do |json|
10
+ json.date(intObj[:dateTime])
11
+ json.dateType intObj[:dateType]
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,33 @@
1
+ require 'jbuilder'
2
+
3
+ require_relative 'mdJson_base'
4
+ require_relative 'mdJson_citation'
5
+ require_relative 'mdJson_domain'
6
+ require_relative 'mdJson_entity'
7
+
8
+ module ADIWG
9
+ module Mdtranslator
10
+ module Writers
11
+ module MdJson
12
+ module Dictionary
13
+ extend MdJson::Base
14
+
15
+ def self.build(intObj)
16
+ Jbuilder.new do |json|
17
+ json.dictionaryInfo do
18
+ dict = intObj[:dictionaryInfo]
19
+ json.citation Citation.build(dict[:dictCitation])
20
+ json.resourceType dict[:dictResourceType]
21
+ json.description dict[:dictDescription]
22
+ json.language dict[:dictLanguage]
23
+ json.includedWithDataset dict[:includedWithDataset]
24
+ end unless intObj[:dictionaryInfo].empty?
25
+ json.domain json_map(intObj[:domains], Domain)
26
+ json.entity json_map(intObj[:entities], Entity)
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,31 @@
1
+ require 'jbuilder'
2
+ require_relative 'mdJson_base'
3
+ require_relative 'mdJson_responsibleParty'
4
+ require_relative 'mdJson_format'
5
+ require_relative 'mdJson_transferOption'
6
+
7
+ module ADIWG
8
+ module Mdtranslator
9
+ module Writers
10
+ module MdJson
11
+ module DistributionInfo
12
+ extend MdJson::Base
13
+
14
+ def self.build(intObj)
15
+ Jbuilder.new do |json|
16
+ json.distributorContact ResponsibleParty.build(intObj[:distContact])
17
+ json.distributionOrderProcess(intObj[:distOrderProcs]) do |dpo|
18
+ json.fees dpo[:fees]
19
+ json.plannedAvailabilityDateTime dpo[:plannedDateTime][:dateTime] unless dpo[:plannedDateTime].nil?
20
+ json.orderingInstructions dpo[:orderInstructions]
21
+ json.turnaround dpo[:turnaround]
22
+ end unless intObj[:distOrderProcs].empty?
23
+ json.distributorFormat json_map(intObj[:distFormats], Format)
24
+ json.distributorTransferOptions json_map(intObj[:distTransOptions], TransferOption)
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end