Sha256: 39d01b4e8f7e180e52c5043451db40af5740410c953e603548748205851abe74

Contents?: true

Size: 929 Bytes

Versions: 36

Compression:

Stored size: 929 Bytes

Contents

module PopulateMe
  module DocumentMixins
    module Validation

      attr_accessor :_errors
      
      def errors; self._errors; end

      def error_on k,v 
        self._errors[k] = (self._errors[k]||[]) << v
        self
      end

      def valid?
        self._errors = {}
        exec_callback :before_validate
        validate
        exec_callback :after_validate
        nested_docs.reduce self._errors.empty? do |result,d|
          result &= d.valid?
        end
      end

      def validate; end

      def error_report
        report = self._errors.dup || {}
        persistent_instance_variables.each do |var|
          value = instance_variable_get var
          if is_nested_docs?(value)
            k = var[1..-1].to_sym
            report[k] = []
            value.each do |d|
              report[k] << d.error_report
            end
          end
        end
        report
      end

    end
  end
end

Version data entries

36 entries across 36 versions & 1 rubygems

Version Path
populate-me-0.27.0 lib/populate_me/document_mixins/validation.rb
populate-me-0.26.0 lib/populate_me/document_mixins/validation.rb
populate-me-0.25.0 lib/populate_me/document_mixins/validation.rb
populate-me-0.24.0 lib/populate_me/document_mixins/validation.rb
populate-me-0.23.0 lib/populate_me/document_mixins/validation.rb
populate-me-0.22.1 lib/populate_me/document_mixins/validation.rb
populate-me-0.22.0 lib/populate_me/document_mixins/validation.rb
populate-me-0.21.0 lib/populate_me/document_mixins/validation.rb
populate-me-0.20.0 lib/populate_me/document_mixins/validation.rb
populate-me-0.19.0 lib/populate_me/document_mixins/validation.rb
populate-me-0.18.1 lib/populate_me/document_mixins/validation.rb
populate-me-0.18.0 lib/populate_me/document_mixins/validation.rb
populate-me-0.17.0 lib/populate_me/document_mixins/validation.rb
populate-me-0.16.0 lib/populate_me/document_mixins/validation.rb
populate-me-0.15.0 lib/populate_me/document_mixins/validation.rb
populate-me-0.14.0 lib/populate_me/document_mixins/validation.rb
populate-me-0.13.2 lib/populate_me/document_mixins/validation.rb
populate-me-0.13.1 lib/populate_me/document_mixins/validation.rb
populate-me-0.13.0 lib/populate_me/document_mixins/validation.rb
populate-me-0.12.0 lib/populate_me/document_mixins/validation.rb