Sha256: a8b1f9f716955a9a50d5b283bdf653e2f620618afe685a5f262d3a610368a618

Contents?: true

Size: 1.37 KB

Versions: 5

Compression:

Stored size: 1.37 KB

Contents

# frozen_string_literal: true

module Vedeu

  module Repositories

    # Provides collection related query/command methods.
    #
    # @api private
    #
    module Assemblage

      include Enumerable

      # Return an individual element or collection of elements (if
      # the given index is a Range).
      #
      # @param index [Fixnum|Range]
      # @return [void]
      def [](index)
        collection[index]
      end

      # Returns a boolean indicating whether the collection is not
      # empty.
      #
      # @param block [Proc]
      # @return [Boolean]
      def any?(&block)
        collection.any?(&block)
      end

      # Provides iteration over the collection.
      #
      # @param block [Proc]
      # @return [Enumerator]
      def each(&block)
        collection.each(&block)
      end

      # Returns a boolean indicating whether the collection is empty.
      #
      # @return [Boolean]
      def empty?
        collection.empty?
      end

      # An object is equal when its values are the same.
      #
      # @param other [void]
      # @return [Boolean]
      def eql?(other)
        self.class == other.class && collection == other.collection
      end
      alias == eql?

      # Return the size of the collection.
      #
      # @return [Fixnum]
      def size
        collection.size
      end

    end # Collection

  end # Repositories

end # Vedeu

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
vedeu-0.8.12 lib/vedeu/repositories/assemblage.rb
vedeu-0.8.10 lib/vedeu/repositories/assemblage.rb
vedeu-0.8.9 lib/vedeu/repositories/assemblage.rb
vedeu-0.8.8 lib/vedeu/repositories/assemblage.rb
vedeu-0.8.7 lib/vedeu/repositories/assemblage.rb