Module: ActiveFedora::FedoraObject

Included in:
Model
Defined in:
lib/active_fedora/fedora_object.rb

Overview

This is a module replacing the ActiveFedora::Base class.

Instance Method Summary collapse

Instance Method Details

#add_datastream(datastream) ⇒ Object

Adds datastream to the object. Saves the datastream to fedora upon adding.



34
35
36
37
# File 'lib/active_fedora/fedora_object.rb', line 34

def add_datastream(datastream)
  datastream.pid = self.pid
  datastream.save
end

#datastreamsObject



20
21
22
23
24
25
26
27
# File 'lib/active_fedora/fedora_object.rb', line 20

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

#datastreams_xmlObject



29
30
31
# File 'lib/active_fedora/fedora_object.rb', line 29

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

#dcObject

DC Datastream



40
41
42
43
# File 'lib/active_fedora/fedora_object.rb', line 40

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

#deleteObject



16
17
18
# File 'lib/active_fedora/fedora_object.rb', line 16

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

#errorsObject



70
71
72
# File 'lib/active_fedora/fedora_object.rb', line 70

def errors
  @inner_object.errors
end

#initializeObject



7
8
9
10
# File 'lib/active_fedora/fedora_object.rb', line 7

def initialize
  @inner_object = Fedora::FedoraObject.new
  Fedora::Repository.instance.save @inner_object
end

#inner_objectObject



54
55
56
# File 'lib/active_fedora/fedora_object.rb', line 54

def inner_object
  @inner_object
end

#owner_idObject



66
67
68
# File 'lib/active_fedora/fedora_object.rb', line 66

def owner_id
  @inner_object.owner_id
end

#pidObject



58
59
60
# File 'lib/active_fedora/fedora_object.rb', line 58

def pid
  @inner_object.pid
end

#rels_extObject

RELS-EXT Datastream



46
47
48
49
50
51
52
# File 'lib/active_fedora/fedora_object.rb', line 46

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

#saveObject



12
13
14
# File 'lib/active_fedora/fedora_object.rb', line 12

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

#stateObject



62
63
64
# File 'lib/active_fedora/fedora_object.rb', line 62

def state
  @inner_object.state
end