Class: ObjectAttorney::Allegation

Inherits:
Object
  • Object
show all
Defined in:
lib/object_attorney/allegation.rb

Constant Summary collapse

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(validation_class, options, &block) ⇒ Allegation

Returns a new instance of Allegation.



14
15
16
17
18
19
# File 'lib/object_attorney/allegation.rb', line 14

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

Instance Attribute Details

#validationObject (readonly)

Returns the value of attribute validation.



12
13
14
# File 'lib/object_attorney/allegation.rb', line 12

def validation
  @validation
end

Instance Method Details

#attributesObject



21
22
23
# File 'lib/object_attorney/allegation.rb', line 21

def attributes
  validation.attributes
end

#founded_accusation(attorney, defendant) ⇒ Object



25
26
27
28
29
# File 'lib/object_attorney/allegation.rb', line 25

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

  accusation.founded ? accusation : nil
end