Sha256: fb19a0e61017de030eb6358d2e6b07bea6d826ce8d3636246f42c7a9f1a542e0

Contents?: true

Size: 1.15 KB

Versions: 3

Compression:

Stored size: 1.15 KB

Contents

module Vanguard
  # Instance level mixins
  module InstanceMethods
    include Adamantium

    # Return validated resource
    #
    # @return [Object]
    #
    # @api private
    #
    attr_reader :resource

    # Return violation set
    #
    # @return [ViolationSet]
    #
    # @api private
    #
    def result
      self.class.validator.evaluate(resource)
    end
    memoize :result

    # Test if validator is valid
    #
    # @return [true]
    #   if valid
    #
    # @return [false]
    #   otherwise
    #
    # @api private
    #
    def valid?
      result.valid?
    end

    # Return violations on attribute name
    #
    # @param [Symbol] attribute_name
    #
    # @return [Enumerable<Violation>]
    #
    # @api private
    #
    def on(attribute_name)
      result.on(attribute_name)
    end

    # Return violations
    #
    # @return [Enumerable<Violation>]
    #
    # @api private
    #
    def violations
      result.violations
    end

  private

    # Initialize resource
    #
    # @param [Object] resource
    #
    # @return [undefined]
    #
    # @api private
    #
    def initialize(resource)
      @resource = resource
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
vanguard-0.0.5 lib/vanguard/instance_methods.rb
vanguard-0.0.4 lib/vanguard/instance_methods.rb
vanguard-0.0.3 lib/vanguard/instance_methods.rb