module RIFCS::Collection

Public Instance Methods

citation_info(list, xml) click to toggle source
# File lib/rif-cs/collection.rb, line 38
def citation_info(list, xml)
  return if list.nil? or list.empty?
  list.each do |citation|
    xml.fullCitation_(citation[:full_citation][:value], :style => citation[:full_citation][:style]) 
    xml.citationMetadata_ do
      meta_obj = citation[:citation_metadata]
      xml.identifier(meta_obj[:identifier][:value], :type => meta_obj[:identifier][:type])
      meta_obj[:contributor].each do |name|
        xml.contributor_(:seq => name[:seq]) do
          name[:name_parts].each do |part|
            xml.namePart_(part[:value], :type => part[:type])
          end
        end
      end
      xml.title_(meta_obj[:title])
      xml.edition_(meta_obj[:edition])
      xml.publisher_(meta_obj[:publisher]) if meta_obj.has_key?(:publisher)
      xml.placePublished_(meta_obj[:place_published])
      meta_obj[:date].each do |d|
        xml.date_(d[:value], :type => d[:type])
      end if meta_obj.has_key?(:date)
      xml.url_(meta_obj[:url])
      xml.context_(meta_obj[:context])
    end
  end
end
collection_key() click to toggle source
# File lib/rif-cs/collection.rb, line 65
def collection_key
  raise "Supply a collection_key attribute or implement a method"
end
collection_originating_source() click to toggle source
# File lib/rif-cs/collection.rb, line 70
def collection_originating_source
  raise "Supply a collection_originating_source attribute or implement a method"
end
to_registry_node(encoding='UTF-8') click to toggle source
# File lib/rif-cs/collection.rb, line 6
def to_registry_node(encoding='UTF-8')
  Nokogiri::XML::Builder.new(:encoding => encoding) do |xml|
    xml.registryObject_(:group => collection_group) do

      xml.key_ collection_key
      xml.originatingSource_ collection_originating_source if respond_to?(:collection_originating_source)

      xml.collection_(:dateModified => collection_date_modified, :type => collection_type, :dateAccessioned => collection_date_accessioned) do
        RIFCS::list_of(collection_identifiers, :identifiers, xml) if respond_to?(:collection_identifiers)

        RIFCS::names(collection_names, xml) if respond_to?(:collection_names)

        RIFCS::locations(collection_locations, xml) if respond_to?(:collection_locations)

        RIFCS::coverage(collection_coverage, xml) if respond_to?(:collection_coverage)

        RIFCS::related_objects(collection_related_objects, xml) if respond_to?(:collection_related_objects)

        RIFCS::subjects(collection_subjects, xml) if respond_to?(:collection_subjects)

        RIFCS::list_of(collection_descriptions, :descriptions, xml) if respond_to?(:collection_descriptions)

        RIFCS::rights(collection_rights, xml) if respond_to?(:collection_rights)

        RIFCS::related_info(collection_related_info, xml) if respond_to?(:collection_related_infos)

        citation_info(collection_citation_info, xml) if respond_to?(:collection_citation_info)
      end # collection
    end
  end
end