Sha256: 406487328fb54d74f75acc1163fc732c65b75d3a9fdaafb3dba15d0e95d8f7fb

Contents?: true

Size: 1.37 KB

Versions: 12

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.
      #
      # @macro param_block
      # @return [Boolean]
      def any?(&block)
        collection.any?(&block)
      end

      # Provides iteration over the collection.
      #
      # @macro param_block
      # @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.equal?(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

12 entries across 12 versions & 1 rubygems

Version Path
vedeu-0.8.32 lib/vedeu/repositories/assemblage.rb
vedeu-0.8.31 lib/vedeu/repositories/assemblage.rb
vedeu-0.8.30 lib/vedeu/repositories/assemblage.rb
vedeu-0.8.29 lib/vedeu/repositories/assemblage.rb
vedeu-0.8.28 lib/vedeu/repositories/assemblage.rb
vedeu-0.8.27 lib/vedeu/repositories/assemblage.rb
vedeu-0.8.26 lib/vedeu/repositories/assemblage.rb
vedeu-0.8.25 lib/vedeu/repositories/assemblage.rb
vedeu-0.8.24 lib/vedeu/repositories/assemblage.rb
vedeu-0.8.23 lib/vedeu/repositories/assemblage.rb
vedeu-0.8.22 lib/vedeu/repositories/assemblage.rb
vedeu-0.8.21 lib/vedeu/repositories/assemblage.rb