Sha256: 3bddd5ba0d095242226dc19ddc0dc17721dc69b4509b57f201f6af99730b095b

Contents?: true

Size: 1.13 KB

Versions: 40

Compression:

Stored size: 1.13 KB

Contents

module Vedeu

  # Provides all registered repositories.
  #
  module Repositories

    extend self

    # Access all the repositories stored.
    #
    # @return [Array]
    def all
      storage.map(&:repository)
    end

    # Register a repository with the collection of Vedeu repositories.
    #
    # @param klass [Class]
    # @return [Set]
    def register(klass)
      storage.add(klass) if klass
    end

    # List all models stored in each registered repository.
    #
    # @return [Array]
    def registered
      all.map do |repository|
        registered = repository.send(:registered)

        Vedeu.log(type:    :store,
                  message: "Repository '#{repository.class.name}':" \
                           " #{registered.inspect}".freeze)

        registered
      end
    end

    # Remove all stored models from the repository.
    #
    # @return [TrueClass]
    def reset!
      all.map { |repository| repository.send(:reset) }

      true
    end

    private

    # Access to the storage for this repository.
    #
    # @return [Array]
    def storage
      @storage ||= Set.new
    end

  end # Repositories

end # Vedeu

Version data entries

40 entries across 40 versions & 1 rubygems

Version Path
vedeu-0.6.69 lib/vedeu/repositories/repositories.rb
vedeu-0.6.68 lib/vedeu/repositories/repositories.rb
vedeu-0.6.67 lib/vedeu/repositories/repositories.rb
vedeu-0.6.66 lib/vedeu/repositories/repositories.rb
vedeu-0.6.65 lib/vedeu/repositories/repositories.rb
vedeu-0.6.64 lib/vedeu/repositories/repositories.rb
vedeu-0.6.63 lib/vedeu/repositories/repositories.rb
vedeu-0.6.62 lib/vedeu/repositories/repositories.rb
vedeu-0.6.61 lib/vedeu/repositories/repositories.rb
vedeu-0.6.60 lib/vedeu/repositories/repositories.rb
vedeu-0.6.59 lib/vedeu/repositories/repositories.rb
vedeu-0.6.58 lib/vedeu/repositories/repositories.rb
vedeu-0.6.57 lib/vedeu/repositories/repositories.rb
vedeu-0.6.56 lib/vedeu/repositories/repositories.rb
vedeu-0.6.54 lib/vedeu/repositories/repositories.rb
vedeu-0.6.53 lib/vedeu/repositories/repositories.rb
vedeu-0.6.52 lib/vedeu/repositories/repositories.rb
vedeu-0.6.51 lib/vedeu/repositories/repositories.rb
vedeu-0.6.50 lib/vedeu/repositories/repositories.rb
vedeu-0.6.49 lib/vedeu/repositories/repositories.rb