Sha256: 61b706c66de8250885f0d3da48e4469182d0623a41e177924c16f914315513ee

Contents?: true

Size: 662 Bytes

Versions: 22

Compression:

Stored size: 662 Bytes

Contents

require 'forwardable'

module ActiveFedora
  class DatastreamHash
    extend Forwardable

    def_delegators :@hash, *(Hash.instance_methods(false))
    
    def initialize (obj, &block)
      @obj = obj
      @hash = Hash.new &block
    end

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

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

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

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
active-fedora-8.7.0 lib/active_fedora/datastream_hash.rb
active-fedora-8.6.0 lib/active_fedora/datastream_hash.rb
active-fedora-8.5.0 lib/active_fedora/datastream_hash.rb
active-fedora-8.4.2 lib/active_fedora/datastream_hash.rb
active-fedora-8.4.1 lib/active_fedora/datastream_hash.rb
active-fedora-7.3.1 lib/active_fedora/datastream_hash.rb
active-fedora-7.3.0 lib/active_fedora/datastream_hash.rb
active-fedora-8.4.0 lib/active_fedora/datastream_hash.rb
active-fedora-8.3.0 lib/active_fedora/datastream_hash.rb
active-fedora-8.2.2 lib/active_fedora/datastream_hash.rb
active-fedora-8.2.1 lib/active_fedora/datastream_hash.rb
active-fedora-8.2.0 lib/active_fedora/datastream_hash.rb
active-fedora-7.2.0 lib/active_fedora/datastream_hash.rb
active-fedora-8.1.0 lib/active_fedora/datastream_hash.rb
active-fedora-8.0.1 lib/active_fedora/datastream_hash.rb
active-fedora-8.0.0 lib/active_fedora/datastream_hash.rb
active-fedora-8.0.0.rc3 lib/active_fedora/datastream_hash.rb
active-fedora-8.0.0.rc2 lib/active_fedora/datastream_hash.rb
active-fedora-8.0.0.rc1 lib/active_fedora/datastream_hash.rb
active-fedora-7.1.2 lib/active_fedora/datastream_hash.rb