Sha256: 7dd7147f47718d10277c7f5660a7efde65a7620e1d2ace0ad9dfd6e039549e75

Contents?: true

Size: 858 Bytes

Versions: 8

Compression:

Stored size: 858 Bytes

Contents

# encoding: utf-8
module Mongoid
  module Validations
    module Queryable

      # Wrap the validation inside the an execution block that alert's the
      # session not to clear its persistence options.
      #
      # @example Execute the validation with a query.
      #   with_query(document) do
      #     #...
      #   end
      #
      # @param [ Document ] document The document being validated.
      #
      # @return [ Object ] The result of the yield.
      #
      # @since 3.0.2
      def with_query(document)
        klass = document.class
        begin
          Threaded.begin_execution("#{klass.name}-validate-with-query")
          yield
        ensure
          klass.clear_persistence_options unless document.errors.empty?
          Threaded.exit_execution("#{klass.name}-validate-with-query")
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
mongoid-3.1.7 lib/mongoid/validations/queryable.rb
mongoid-3.1.6 lib/mongoid/validations/queryable.rb
mongoid-3.1.5 lib/mongoid/validations/queryable.rb
mongoid-3.1.4 lib/mongoid/validations/queryable.rb
mongoid-3.1.3 lib/mongoid/validations/queryable.rb
mongoid-3.1.2 lib/mongoid/validations/queryable.rb
mongoid-3.1.1 lib/mongoid/validations/queryable.rb
mongoid-3.1.0 lib/mongoid/validations/queryable.rb