Class: Temporality::Completeness

Inherits:
ValidationStrategy show all
Defined in:
lib/temporality/completeness.rb

Instance Method Summary collapse

Methods inherited from ValidationStrategy

#initialize

Constructor Details

This class inherits a constructor from Temporality::ValidationStrategy

Instance Method Details

#error_messageObject



13
14
15
# File 'lib/temporality/completeness.rb', line 13

def error_message
  "#{@model.send(@assoc).class} record must have a temporally complete children collection for assocation #{inverse_name}"
end

#validateObject



6
7
8
9
10
11
# File 'lib/temporality/completeness.rb', line 6

def validate
  days = @model.day_count + (inverse.where('id <> ?', @model.id || -1).map(&:day_count).inject(&:+) || 0)
  parent_days = @model.send(@assoc).day_count

  raise Temporality::Violation.new(error_message) unless (parent_days == days)
end