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