Sha256: bcd14ec6be1191e716cc3577e2680aa3fb4c066424c3bc55a2dd7c0ceb7d695b

Contents?: true

Size: 634 Bytes

Versions: 9

Compression:

Stored size: 634 Bytes

Contents

module VirtualBox
  module Proxies
    # A relationship which can be described as a collection, which
    # is a set of items.
    class Collection < Array
      def initialize(parent)
        super()

        @parent = parent
      end

      def <<(item)
        item.added_to_relationship(@parent) if item.respond_to?(:added_to_relationship)
        push(item)
      end

      def clear
        each do |item|
          delete(item)
        end
      end

      def delete(item)
        return unless super
        item.removed_from_relationship(@parent) if item.respond_to?(:removed_from_relationship)
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
virtualbox-0.6.1 lib/virtualbox/proxies/collection.rb
virtualbox-0.6.0 lib/virtualbox/proxies/collection.rb
virtualbox-0.5.4 lib/virtualbox/proxies/collection.rb
virtualbox-0.5.3 lib/virtualbox/proxies/collection.rb
virtualbox-0.5.2 lib/virtualbox/proxies/collection.rb
virtualbox-0.5.1 lib/virtualbox/proxies/collection.rb
virtualbox-0.5.0 lib/virtualbox/proxies/collection.rb
virtualbox-0.4.3 lib/virtualbox/proxies/collection.rb
virtualbox-0.4.2 lib/virtualbox/proxies/collection.rb