Sha256: 835a21460ef87ab960f3948b0c0aac02d392a2878c140f6f66c4423e3ce3d815

Contents?: true

Size: 1.23 KB

Versions: 2

Compression:

Stored size: 1.23 KB

Contents

module ActiveFedora
  # Helps Rubydora create datastreams of the type defined by the ActiveFedora::Base#datastream_class_for_name
  class DigitalObject < Rubydora::DigitalObject
    attr_accessor :original_class
    
    def self.find(original_class, pid)
      obj = super(pid, RubydoraConnection.instance.connection)
      obj.original_class = original_class
      obj
    end

    # def datastreams
    #   @datastreams ||= begin
    #     h = Hash.new { |h,k| h[k] = datastream_object_for(k) }                

    #     begin
    #       datastreams_xml = repository.datastreams(:pid => pid)
    #       datastreams_xml.gsub! '<objectDatastreams', '<objectDatastreams xmlns="http://www.fedora.info/definitions/1/0/access/"' unless datastreams_xml =~ /xmlns=/
    #       doc = Nokogiri::XML(datastreams_xml)
    #       doc.xpath('//access:datastream', {'access' => "http://www.fedora.info/definitions/1/0/access/"}).each do |ds| 
    #         h[ds['dsid']] = datastream_object_for ds['dsid'] 
    #       end
    #     rescue RestClient::ResourceNotFound
    #     end

    #     h
    #   end
    # end


    def datastream_object_for dsid
      klass = original_class.datastream_class_for_name(dsid)
      klass.new self, dsid
    end
    
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
active-fedora-3.1.0 lib/active_fedora/digital_object.rb
active-fedora-3.1.0.rc4 lib/active_fedora/digital_object.rb