Module: ADIWG::Mdtranslator::Writers::Fgdc

Defined in:
lib/adiwg/mdtranslator/writers/fgdc/version.rb,
lib/adiwg/mdtranslator/writers/fgdc/fgdc_writer.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_fgdc.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_phone.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_browse.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_method.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_series.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_source.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_status.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_address.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_contact.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_keyword.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_lineage.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_process.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_quality.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_citation.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_security.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_taxonomy.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_attribute.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_dateRange.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_planarMap.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_publisher.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_constraint.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_dataDomain.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_dateSingle.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_dictionary.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_planarGrid.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_planarInfo.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_timePeriod.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_description.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_digitalForm.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_geologicAge.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_localPlanar.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_localSystem.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_distribution.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_entityDetail.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_metadataInfo.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_onlineOption.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_orderProcess.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_transferInfo.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_geologicRange.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_offlineOption.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_spatialDomain.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_verticalDatum.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_entityOverview.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_identification.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_methodKeywords.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_taxonomySystem.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_planarReference.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_spatialReference.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_taxonomyKeywords.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_geodeticReference.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_mapProjectionTags.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_spatialOrganization.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_geographicResolution.rb,
lib/adiwg/mdtranslator/writers/fgdc/classes/class_taxonomyClassification.rb

Defined Under Namespace

Classes: Address, Attribute, Browse, Citation, Constraint, Contact, DataDictionary, DataDomain, DateRange, DateSingle, Description, DigitalFormat, Distribution, EntityDetail, EntityOverview, Fgdc, GeodeticReference, GeographicResolution, GeologicAge, GeologicRange, Identification, Keyword, Lineage, LocalSystem, MapProjectionTags, MetadataInformation, Method, MethodKeyword, OfflineOption, OnlineOption, OrderProcess, Phone, PlanarGrid, PlanarInformation, PlanarLocal, PlanarMap, PlanarReference, Process, Publisher, Quality, Security, Series, Source, SpatialDomain, SpatialOrganization, SpatialReference, Status, Taxonomy, TaxonomyClassification, TaxonomyKeyword, TaxonomySystem, TimePeriod, TransferInformation, VerticalDatum

Constant Summary collapse

VERSION =

current version of fgdc writer

'1.1.0'

Class Method Summary collapse

Class Method Details

.find_responsibility(aResponsibility, roleName) ⇒ Object



53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/adiwg/mdtranslator/writers/fgdc/fgdc_writer.rb', line 53

def self.find_responsibility(aResponsibility, roleName)
   aParties = []
   aResponsibility.each do |hRParty|
      if hRParty[:roleName] == roleName
         hRParty[:parties].each do |hParty|
            aParties << hParty[:contactId]
         end
      end
   end
   aParties = aParties.uniq
   return aParties
end

.findMessage(messageId) ⇒ Object



70
71
72
73
74
75
76
77
# File 'lib/adiwg/mdtranslator/writers/fgdc/fgdc_writer.rb', line 70

def self.findMessage(messageId)
   @aMessagesList.each do |hMessage|
      if hMessage['id'] == messageId
         return hMessage['message']
      end
   end
   return nil
end

.get_contact(contactId) ⇒ Object

find contact and return the contact hash



44
45
46
47
48
49
50
51
# File 'lib/adiwg/mdtranslator/writers/fgdc/fgdc_writer.rb', line 44

def self.get_contact(contactId)
   @contacts.each do |contact|
      if contact[:contactId] == contactId
         return contact
      end
   end
   return {}
end

.get_intObjObject



66
67
68
# File 'lib/adiwg/mdtranslator/writers/fgdc/fgdc_writer.rb', line 66

def self.get_intObj
   return @intObj
end

.issueError(messageId, context = nil) ⇒ Object



79
80
81
82
83
84
85
86
# File 'lib/adiwg/mdtranslator/writers/fgdc/fgdc_writer.rb', line 79

def self.issueError(messageId, context = nil)
   message = findMessage(messageId)
   unless message.nil?
      message += ': CONTEXT is ' + context unless context.nil?
      @hResponseObj[:writerMessages] << 'ERROR: FGDC writer: ' + message
      @hResponseObj[:writerPass] = false
   end
end

.issueNotice(messageId, context = nil) ⇒ Object



105
106
107
108
109
110
111
# File 'lib/adiwg/mdtranslator/writers/fgdc/fgdc_writer.rb', line 105

def self.issueNotice(messageId, context = nil)
   message = findMessage(messageId)
   unless message.nil?
      message += ': CONTEXT is ' + context unless context.nil?
      @hResponseObj[:writerMessages] << 'NOTICE: FGDC writer: ' + message
   end
end

.issueWarning(messageId, tag = nil, context = nil) ⇒ Object



88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# File 'lib/adiwg/mdtranslator/writers/fgdc/fgdc_writer.rb', line 88

def self.issueWarning(messageId, tag = nil, context = nil)
   message = findMessage(messageId)
   unless message.nil?
      message += ': CONTEXT is ' + context unless context.nil?
      if @hResponseObj[:writerForceValid]
         if tag.nil?
            issueError(messageId, context)
         else
            @xml.tag!(tag, 'missing')
            @hResponseObj[:writerMessages] << 'WARNING: FGDC writer: ' + message
         end
      else
         @hResponseObj[:writerMessages] << 'WARNING: FGDC writer: ' + message
      end
   end
end

.startWriter(intObj, responseObj, whichDict: 0) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/adiwg/mdtranslator/writers/fgdc/fgdc_writer.rb', line 16

def self.startWriter(intObj, responseObj, whichDict: 0)

   # make objects available to the instance
   @intObj = intObj
   @contacts = intObj[:contacts]
   @hResponseObj = responseObj

   # load error message array
   file = File.join(File.dirname(__FILE__), 'fgdc_writer_messages_eng') + '.yml'
   hMessageList = YAML.load_file(file)
   @aMessagesList = hMessageList['messageList']

   # set the format of the output file based on the writer
   responseObj[:writerOutputFormat] = 'xml'
   responseObj[:writerVersion] = ADIWG::Mdtranslator::Writers::Fgdc::VERSION

   # create new XML document
   @xml = Builder::XmlMarkup.new(indent: 3)

   # start writing the FGDC XML record
   metadataWriter = Fgdc.new(@xml, responseObj)
    = metadataWriter.writeXML(intObj)

   return 

end