Sha256: 49e5fda1abccc2be50d665324e1ff37c23e9d3a279f2a23d565beeb077b464ab

Contents?: true

Size: 1.13 KB

Versions: 6

Compression:

Stored size: 1.13 KB

Contents

module RDF
  ##
  # Enumerators for different mixins. These are defined in a separate module, so that they are bound when used, allowing other mixins inheriting behavior to be included.
  module Enumerable
    # Extends Enumerator with {Queryable} and {Enumerable}, which is used by {Enumerable#each_statement} and {Queryable#enum_for}
    class Enumerator < ::Enumerator
      include Queryable
      include Enumerable

      # Make sure returned arrays are also queryable
      def to_a
        return super.to_a.extend(RDF::Queryable, RDF::Enumerable)
      end
    end
  end

  module Countable
    # Extends Enumerator with {Countable}, which is used by {Countable#enum_for}
    class Enumerator < ::Enumerator
      include Countable
    end
  end

  module Queryable
    # Extends Enumerator with {Queryable} and {Enumerable}, which is used by {Enumerable#each_statement} and {Queryable#enum_for}
    class Enumerator < ::Enumerator
      include Queryable
      include Enumerable

      # Make sure returned arrays are also queryable
      def to_a
        return super.to_a.extend(RDF::Queryable, RDF::Enumerable)
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
rdf-1.99.1 lib/rdf/mixin/enumerator.rb
rdf-1.99.0.1 lib/rdf/mixin/enumerator.rb
rdf-1.99.0 lib/rdf/mixin/enumerator.rb
rdf-1.1.17.1 lib/rdf/mixin/enumerator.rb
rdf-1.1.17 lib/rdf/mixin/enumerator.rb
rdf-1.1.16.1 lib/rdf/mixin/enumerator.rb