class GSA::RecordsConverter

Public Class Methods

convert(args) click to toggle source
# File lib/gsa/records_converter.rb, line 6
def self.convert(args)
  records         = args[:records]
  searchable      = args[:searchable]
  datasource_name = args[:datasource_name]
  datasource_uri  = args[:datasource_uri]
  datasource_uid  = args[:datasource_uid]
  action          = args[:delete?] ? GSA::DELETE_ACTION : GSA::ADD_ACTION

  # if there is only one record, convert to the expected array.
  records = [records] if records.is_a? Hash

  layout(records, searchable, datasource_name, datasource_uri, datasource_uid, action)
end

Private Class Methods

layout(records, searchable, datasource_name, datasource_uri, datasource_uid, action) click to toggle source
# File lib/gsa/records_converter.rb, line 24
def self.layout(records, searchable, datasource_name, datasource_uri, datasource_uid, action)
  xml(
    block(:gsafeed,
          block(:header,
                block(:datasource, datasource_name) << 
                block(:feedtype, GSA::FEED_TYPE)
          ) <<
          block(:group, 
            record_blocks(records, searchable, datasource_uri, datasource_uid), 
            {:action => action}
          )
    )
  )
end
record_block(record, searchable, datasource_uri, datasource_uid) click to toggle source
# File lib/gsa/records_converter.rb, line 43
def self.record_block(record, searchable, datasource_uri, datasource_uid)
  block(:record,
    block(:metadata, record_metadata(record)) <<
    block(:content, record_searchable(record, searchable)),
    {:url => "#{datasource_uri}/#{record[datasource_uid]}", :mimetype => GSA::MIME_TYPE} # ABSTRACT URL STRING VALUE (id)
  )
end
record_blocks(records, searchable, datasource_uri, datasource_uid) click to toggle source
# File lib/gsa/records_converter.rb, line 39
def self.record_blocks(records, searchable, datasource_uri, datasource_uid)
  inject_s(records) {|record| record_block(record, searchable, datasource_uri, datasource_uid)}
end
record_metadata(record) click to toggle source
# File lib/gsa/records_converter.rb, line 55
def self.record_metadata(record)
  inject_s(record) {|key, value| tag(:meta, {:name => key.to_s, :content => value.to_s})}
end
record_searchable(record, searchable) click to toggle source
# File lib/gsa/records_converter.rb, line 51
def self.record_searchable(record, searchable)
  inject_s(searchable) {|search| " #{record[search.to_s]}"}
end