Sha256: 0d9391c8a96cfbb16663571e061621799410b508c8a10d73efa658cf0a4d4421

Contents?: true

Size: 838 Bytes

Versions: 9

Compression:

Stored size: 838 Bytes

Contents

require 'object_attorney/validations/custom'
require 'object_attorney/accusation'

module ObjectAttorney
  class Allegation
    VALIDATION_OVERWRITES = {
      # ActiveModel::Validations::NumericalityValidator =>
      #   Validations::Numericality,
      custom: Validations::Custom
    }.freeze

    attr_reader :validation

    def initialize(validation_class, options, &block)
      overwrite_class = VALIDATION_OVERWRITES[validation_class]

      # expected to be an ActiveModel::Validations::<Class> instance
      @validation = (overwrite_class || validation_class).new(options, &block)
    end

    def attributes
      validation.attributes
    end

    def founded_accusation(attorney, defendant)
      accusation = Accusation.new(@validation, attorney, defendant)

      accusation.founded ? accusation : nil
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
object_attorney-3.2.0 lib/object_attorney/allegation.rb
object_attorney-3.1.2 lib/object_attorney/allegation.rb
object_attorney-3.1.1 lib/object_attorney/allegation.rb
object_attorney-3.1.0 lib/object_attorney/allegation.rb
object_attorney-3.0.7 lib/object_attorney/allegation.rb
object_attorney-3.0.6 lib/object_attorney/allegation.rb
object_attorney-3.0.5 lib/object_attorney/allegation.rb
object_attorney-3.0.4 lib/object_attorney/allegation.rb
object_attorney-3.0.3 lib/object_attorney/allegation.rb