Sha256: 1990b9c3086c57a1e67297a6522604a4f0e497b997963e9fb049ebe913b8ff25

Contents?: true

Size: 750 Bytes

Versions: 3

Compression:

Stored size: 750 Bytes

Contents

# -*- encoding: utf-8 -*-

require 'data_mapper/validation/rule'

module DataMapper
  module Validation
    class Rule

      class Block < Rule

        attr_reader :block

        def initialize(attribute_name, options, &block)
          unless block_given?
            raise ArgumentError, 'cannot initialize a Block validator without a block'
          end

          super

          @block = block
        end

        def validate(resource)
          result, error_message = resource.instance_eval(&self.block)

          if result
            nil
          else
            Violation.new(resource, error_message, self)
          end
        end

      end # class Block

    end # class Rule
  end # module Validation
end # module DataMapper

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
sbf-dm-validations-1.4.0 lib/data_mapper/validation/rule/block.rb
sbf-dm-validations-1.3.0 lib/data_mapper/validation/rule/block.rb
sbf-dm-validations-1.3.0.beta lib/data_mapper/validation/rule/block.rb