Sha256: e2761146192c417e010810fd422fdfe33c8236853f3ffaf353e88e20865268a9

Contents?: true

Size: 1.55 KB

Versions: 83

Compression:

Stored size: 1.55 KB

Contents

module ActiveFedora
  
  #
  # This is a module replacing the ActiveFedora::Base class.
  #
  module FedoraObject
    def initialize
      @inner_object = Fedora::FedoraObject.new
      Fedora::Repository.instance.save @inner_object
    end

    def save
      Fedora::Repository.instance.save(@inner_object)
    end

    def delete
      Fedora::Repository.instance.delete(@inner_object)
    end

    def datastreams
      datastreams = {}
      self.datastreams_xml['datastream'].each do |ds|
        ds.merge!({:pid => self.pid, :dsID => ds["dsid"]})
        datastreams.merge!({ds["dsid"] => ActiveFedora::Datastream.new(ds)})
      end
      return datastreams
    end

    def datastreams_xml
      datastreams_xml = XmlSimple.xml_in(Fedora::Repository.instance.fetch_custom(self.pid, :datastreams))
    end

    # Adds datastream to the object.  Saves the datastream to fedora upon adding.
    def add_datastream(datastream)
      datastream.pid = self.pid
      datastream.save
    end

    # DC Datastream
    def dc
      #dc = REXML::Document.new(datastreams["DC"].content)
      return datastreams["DC"]
    end

    # RELS-EXT Datastream
    def rels_ext
      if !datastreams.has_key?("RELS-EXT")
        add(ActiveFedora::RelsExtDatastream.new)
      end
        
      return datastreams["RELS-EXT"]
    end

    def inner_object
      @inner_object
    end

    def pid
      @inner_object.pid
    end

    def state
      @inner_object.state
    end

    def owner_id
      @inner_object.owner_id
    end

    def errors
      @inner_object.errors
    end

  end



end

Version data entries

83 entries across 83 versions & 1 rubygems

Version Path
active-fedora-3.2.0 lib/active_fedora/fedora_object.rb
active-fedora-3.1.6 lib/active_fedora/fedora_object.rb
active-fedora-3.2.0.pre7 lib/active_fedora/fedora_object.rb
active-fedora-3.2.0.pre6 lib/active_fedora/fedora_object.rb
active-fedora-3.2.0.pre5 lib/active_fedora/fedora_object.rb
active-fedora-3.2.0.pre4 lib/active_fedora/fedora_object.rb
active-fedora-3.2.0.pre3 lib/active_fedora/fedora_object.rb
active-fedora-3.2.0.pre2 lib/active_fedora/fedora_object.rb
active-fedora-3.2.0.pre1 lib/active_fedora/fedora_object.rb
active-fedora-3.1.5 lib/active_fedora/fedora_object.rb
active-fedora-3.1.4 lib/active_fedora/fedora_object.rb
active-fedora-3.1.3 lib/active_fedora/fedora_object.rb
active-fedora-3.1.2 lib/active_fedora/fedora_object.rb
active-fedora-3.1.1 lib/active_fedora/fedora_object.rb
active-fedora-3.1.0 lib/active_fedora/fedora_object.rb
active-fedora-3.1.0.rc4 lib/active_fedora/fedora_object.rb
active-fedora-3.1.0.rc3 lib/active_fedora/fedora_object.rb
active-fedora-3.1.0.rc2 lib/active_fedora/fedora_object.rb
active-fedora-3.1.0.rc1 lib/active_fedora/fedora_object.rb
active-fedora-3.1.0.pre14 lib/active_fedora/fedora_object.rb