Sha256: f90849bd09b9b706dce92f533789760bc331f726df5cfb9a29ae9a40adfef83b

Contents?: true

Size: 1.18 KB

Versions: 19

Compression:

Stored size: 1.18 KB

Contents

module ActiveFedora
  class FixtureLoader
    attr_accessor :path

    def initialize(path)
      self.path = path
    end 

    def filename_for_pid(pid)
      File.join(path, "#{pid.gsub(":","_")}.foxml.xml")
    end

    def self.delete(pid)
      begin
        ActiveFedora::Base.find(pid, cast: true).delete
        1
      rescue ActiveFedora::ObjectNotFoundError
        logger.debug "The object #{pid} has already been deleted (or was never created)."
        0
      rescue Errno::ECONNREFUSED => e
        logger.debug "Can't connect to Fedora! Are you sure jetty is running?"
       0
      end
    end

    def reload(pid)
      self.class.delete(pid)
      import_and_index(pid)
    end

    def import_and_index(pid)
      body = self.class.import_to_fedora(filename_for_pid(pid), pid)
      self.class.index(pid)
      body
    end

    def self.index(pid)
        ActiveFedora::Base.find(pid, cast: true).update_index
    end

    def self.import_to_fedora(filename, pid='0')
      file = File.new(filename, "r")
      result = ActiveFedora::Base.connection_for_pid(pid).ingest(:file=>file.read)
      raise "Failed to ingest the fixture." unless result
      result.body
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
active-fedora-6.8.0 lib/active_fedora/fixture_loader.rb
active-fedora-6.7.8 lib/active_fedora/fixture_loader.rb
active-fedora-6.7.7 lib/active_fedora/fixture_loader.rb
active-fedora-6.7.6 lib/active_fedora/fixture_loader.rb
active-fedora-6.7.5 lib/active_fedora/fixture_loader.rb
active-fedora-6.7.4 lib/active_fedora/fixture_loader.rb
active-fedora-6.7.3 lib/active_fedora/fixture_loader.rb
active-fedora-6.7.2 lib/active_fedora/fixture_loader.rb
active-fedora-6.7.1 lib/active_fedora/fixture_loader.rb
active-fedora-6.7.0 lib/active_fedora/fixture_loader.rb
active-fedora-6.7.0.rc1 lib/active_fedora/fixture_loader.rb
active-fedora-6.6.1 lib/active_fedora/fixture_loader.rb
active-fedora-6.6.0 lib/active_fedora/fixture_loader.rb
active-fedora-6.6.0.rc5 lib/active_fedora/fixture_loader.rb
active-fedora-6.6.0.rc4 lib/active_fedora/fixture_loader.rb
active-fedora-6.6.0.rc3 lib/active_fedora/fixture_loader.rb
active-fedora-6.6.0.rc2 lib/active_fedora/fixture_loader.rb
active-fedora-6.6.0.rc1 lib/active_fedora/fixture_loader.rb
active-fedora-6.6.0.pre4 lib/active_fedora/fixture_loader.rb