lib/tasks/active_fedora.rake in active-fedora-4.0.0.rc11 vs lib/tasks/active_fedora.rake in active-fedora-4.0.0.rc12

- old
+ new

@@ -9,18 +9,12 @@ task :delete => :environment do if ENV["pid"].nil? puts "You must specify a valid pid. Example: rake repo:delete pid=demo:12" else pid = ENV["pid"] - begin - ActiveFedora::Base.find(pid).delete - rescue ActiveFedora::ObjectNotFoundError - puts "The object #{pid} has already been deleted (or was never created)." - rescue Errno::ECONNREFUSED => e - puts "Can't connect to Fedora! Are you sure jetty is running?" - end - puts "Deleted '#{pid}' from #{ActiveFedora::Base.connection_for_pid(pid).client.url}" + result = ActiveFedora::FixtureLoader.delete(pid) + puts "Deleted '#{pid}' from #{ActiveFedora::Base.connection_for_pid(pid).client.url}" if result == 1 end end desc "Delete a range of objects in a given namespace. ie 'rake repo:delete_range namespace=demo start=22 stop=50' will delete demo:22 through demo:50" task :delete_range => :environment do |t, args| @@ -32,16 +26,12 @@ end puts "Deleting #{stop_point - start_point + 1} objects from #{namespace}:#{start_point.to_s} to #{namespace}:#{stop_point.to_s}" i = start_point while i <= stop_point do pid = namespace + ":" + i.to_s - begin - ActiveFedora::Base.find(pid).delete - rescue ActiveFedora::ObjectNotFoundError - # The object has already been deleted (or was never created). Do nothing. - end - puts "Deleted '#{pid}' from #{ActiveFedora::Base.connection_for_pid(pid).client.url}" + result = ActiveFedora::FixtureLoader.delete(pid) + puts "Deleted '#{pid}' from #{ActiveFedora::Base.connection_for_pid(pid).client.url}" if result == 1 i += 1 end end desc "Export the object identified by pid into spec/fixtures. Example:rake repo:export pid=demo:12" @@ -49,49 +39,36 @@ if ENV["pid"].nil? puts "You must specify a valid pid. Example: rake repo:export pid=demo:12" else pid = ENV["pid"] puts "Exporting '#{pid}' from #{ActiveFedora::Base.connection_for_pid(pid).client.url}" - if !ENV["path"].nil? - path = ENV["path"] + if !ENV["dir"].nil? + dir = ENV["dir"] else - path = File.join('spec', 'fixtures') + dir = File.join('spec', 'fixtures') end - filename = ActiveFedora::FixtureExporter.export_to_path(pid, path) + filename = ActiveFedora::FixtureExporter.export_to_path(pid, dir) puts "The object has been saved as #{filename}" end end - desc "Load the object located at the provided path or identified by pid. Example: rake repo:load path=spec/fixtures/demo_12.foxml.xml" + desc "Load the object located at the provided path or identified by pid. Example: rake repo:load foxml=spec/fixtures/demo_12.foxml.xml" task :load => :environment do - if !ENV["path"].nil? and File.file?(ENV["path"]) - filename = ENV["path"] + if !ENV["foxml"].nil? and File.file?(ENV["foxml"]) + filename = ENV["foxml"] + pid = ActiveFedora::FixtureLoader.import_to_fedora(filename) + ActiveFedora::FixtureLoader.index(pid) elsif !ENV["pid"].nil? pid = ENV["pid"] - if !ENV["path"].nil? and File.directory?(ENV["path"]) - filename = File.join(ENV["path"], "#{pid.gsub(":","_")}.foxml.xml") + if !ENV["dir"].nil? and File.directory?(ENV["dir"]) + loader = ActiveFedora::FixtureLoader.new(ENV["dir"]) else - filename = File.join("spec","fixtures","#{pid.gsub(":","_")}.foxml.xml") + loader = ActiveFedora::FixtureLoader.new(File.join("spec", "fixtures")) end + loader.import_and_index(pid) else - puts "You must specify a path to the object or provide its pid. Example: rake repo:load path=spec/fixtures/demo_12.foxml.xml" + puts "You must specify the foxml path or provide its pid. Example: rake repo:load foxml=spec/fixtures/demo_12.foxml.xml" end - - if !filename.nil? - puts "Loading '#{filename}' in #{ActiveFedora::Base.connection_for_pid(pid).client.url}" - file = File.new(filename, "r") - result = ActiveFedora::Base.connection_for_pid(pid).ingest(:file=>file.read) - if result - puts "The object has been loaded as #{result.body}" - if pid.nil? - pid = result.body - end - ActiveFedora::Base.find(pid).update_index - else - puts "Failed to load the object." - end - end - end end