Sha256: 98622f6d5ad8dbc171006b54c32b087a1b783b01b32fb7098af949f5205741b9

Contents?: true

Size: 600 Bytes

Versions: 1

Compression:

Stored size: 600 Bytes

Contents

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

require 'aequitas/rule'

module Aequitas
  class Rule
    class Method < Rule

      equalize_on *(superclass.equalizer.keys + [:method])

      attr_reader :method

      def initialize(attribute_name, options={})
        super

        @method = options.fetch(:method, attribute_name)
      end

      def validate(resource)
        result, error_message = resource.__send__(method)

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

    end # class Method
  end # class Rule
end # module Aequitas

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
aequitas-0.0.1 lib/aequitas/rule/method.rb