Sha256: 5664c2a47a88740b495addb06d65349f8595f3942f86ec6aca67f6d7c89b1fb6

Contents?: true

Size: 1.01 KB

Versions: 28

Compression:

Stored size: 1.01 KB

Contents

module RDF
  ##
  # @since 0.2.0
  module Countable
    extend RDF::Util::Aliasing::LateBound

    ##
    # Returns `true` if `self` contains no RDF statements.
    #
    # @return [Boolean]
    def empty?
      each {return false}
      true
    end

    ##
    # Returns the number of RDF statements in `self`.
    #
    # @return [Integer]
    def count
      count = 0
      each { count += 1 }
      count
    end
    alias_method :size, :count

    ##
    # @private
    # @param  [Symbol, #to_sym] method
    # @return [Enumerator]
    # @see    Object#enum_for
    def enum_for(method = :each, *args)
      # Ensure that enumerators support the `#empty?` and `#count` methods:
      this = self
      Countable::Enumerator.new do |yielder|
        this.send(method, *args) {|y| yielder << y}
      end
    end
    alias_method :to_enum, :enum_for

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

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
rdf-1.1.16 lib/rdf/mixin/countable.rb
rdf-1.1.15 lib/rdf/mixin/countable.rb
rdf-1.1.14 lib/rdf/mixin/countable.rb
rdf-1.1.13 lib/rdf/mixin/countable.rb
rdf-1.1.12 lib/rdf/mixin/countable.rb
rdf-1.1.11 lib/rdf/mixin/countable.rb
rdf-1.1.10 lib/rdf/mixin/countable.rb
rdf-1.1.9 lib/rdf/mixin/countable.rb
rdf-1.1.8 lib/rdf/mixin/countable.rb
rdf-1.1.7 lib/rdf/mixin/countable.rb
rdf-1.1.6 lib/rdf/mixin/countable.rb
rdf-1.1.5.1 lib/rdf/mixin/countable.rb
rdf-1.1.5 lib/rdf/mixin/countable.rb
rdf-1.1.4.3 lib/rdf/mixin/countable.rb
rdf-1.1.4.2 lib/rdf/mixin/countable.rb
rdf-1.1.4.1 lib/rdf/mixin/countable.rb
rdf-1.1.4 lib/rdf/mixin/countable.rb
rdf-1.1.3 lib/rdf/mixin/countable.rb
rdf-1.1.2.1 lib/rdf/mixin/countable.rb
rdf-1.1.1.1 lib/rdf/mixin/countable.rb