Sha256: ff0bd120df90f28d797765485869d970a6df98dfbc71852e6ab883c186b21e9f

Contents?: true

Size: 1.24 KB

Versions: 8

Compression:

Stored size: 1.24 KB

Contents

module Gummi
  module RepositoryLayer
    module Repository
      extend ActiveSupport::Concern

      included do
        include Repobahn::Repository
        after_conversion :set_id_and_version
      end

      def exists?(id)
        db_class.exists? id
      end

      def get(id)
        return unless id
        document = db_class.get id
        db_instance_to_entity document if document
      end

      def delete(id)
        db_class.delete id
      end

      def search(options = {}, &block)
        search = db_class.new_filtered_search(options)
        yield search if block_given?
        Repository::Result.new search.execute, self
      end

      def raw_search(options = {}, &block)
        search = db_class.new_raw_search(options)
        yield search if block_given?
        Repository::Result.new search.execute, self
      end

      def overwrite(entity)
        return false unless entity.valid?
        document = db_class.new(entity.attributes)
        document.overwrite
      end

      def update(id, attributes)
        db_class.update id, attributes
      end

      def set_id_and_version(entity, db_instance)
        entity.id      = db_instance['id']
        entity.version = db_instance['version']
      end

    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
gummi-1.0.10 lib/gummi/repository_layer/repository.rb
gummi-1.0.9 lib/gummi/repository_layer/repository.rb
gummi-1.0.8 lib/gummi/repository_layer/repository.rb
gummi-1.0.7 lib/gummi/repository_layer/repository.rb
gummi-1.0.6 lib/gummi/repository_layer/repository.rb
gummi-1.0.5 lib/gummi/repository_layer/repository.rb
gummi-1.0.4 lib/gummi/repository_layer/repository.rb
gummi-1.0.3 lib/gummi/repository_layer/repository.rb