class Cirneco::Metadata

Public Instance Methods

delete(doi) click to toggle source
# File lib/cirneco/metadata.rb, line 76
def delete(doi)
  response = delete_metadata(doi, options)

  if response.body["errors"]
    puts "Error: " + response.body["errors"].first.fetch("title", "An error occured")
  else
    puts response.body["data"]
  end
end
get(doi) click to toggle source
# File lib/cirneco/metadata.rb, line 20
def get(doi)
  response = get_metadata(doi, options)

  if response.body["errors"]
    puts "Error: " + response.body["errors"].first.fetch("title", "An error occured")
  else
    filename  = doi.split("/", 2).last + ".xml"
    content = response.body["data"]
    IO.write(filename, content)
    puts "Metadata for #{doi} saved as #{filename}"
  end
end
post(file) click to toggle source
# File lib/cirneco/metadata.rb, line 37
def post(file)
  data = IO.read(file)
  response = post_metadata(data, options)

  if response.body["errors"]
    puts "Error: " + response.body["errors"].first.fetch("title", "An error occured")
  else
    puts response.headers["Location"]
  end
end
put(file) click to toggle source
# File lib/cirneco/metadata.rb, line 52
def put(file)
  data = JSON.parse(IO.read(file))
  count = 0
  data.each do |json|
    doi = doi_from_url(json["@id"])
    next unless doi.present?

    response = put_metadata(doi, options.merge(data: json.to_json))

    if response.body["errors"]
      puts "Error: " + response.body["errors"].first.fetch("title", "An error occured")
    else
      puts response.headers["Location"]
      count += 1
    end
  end

  puts "#{count} DOIs registered/updated."
end