Class: ActiveFedora::DatastreamHash

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/active_fedora/datastream_hash.rb

Instance Method Summary collapse

Constructor Details

#initialize(obj, &block) ⇒ DatastreamHash

Returns a new instance of DatastreamHash.



9
10
11
12
# File 'lib/active_fedora/datastream_hash.rb', line 9

def initialize (obj, &block)
  @obj = obj
  @hash = Hash.new &block
end

Instance Method Details

#[](key) ⇒ Object



14
15
16
17
18
19
20
# File 'lib/active_fedora/datastream_hash.rb', line 14

def [] (key)
  if key == 'DC' && !has_key?(key)
    ds = Datastream.new(@obj.inner_object, key, :controlGroup=>'X')
    self[key] = ds
  end
  @hash[key]
end

#[]=(key, val) ⇒ Object



22
23
24
25
# File 'lib/active_fedora/datastream_hash.rb', line 22

def []= (key, val)
  @obj.inner_object.datastreams[key]=val
  @hash[key]=val
end

#freezeObject



27
28
29
30
31
32
33
# File 'lib/active_fedora/datastream_hash.rb', line 27

def freeze
  each_value do |datastream|
    datastream.freeze
  end
  @hash.freeze
  super
end