Class: Temporality::Overlap

Inherits:
ValidationStrategy show all
Defined in:
lib/temporality/overlap.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



16
17
18
# File 'lib/temporality/overlap.rb', line 16

def error_message
  "Found overlapping records for range [#{@model.starts_on} - #{@model.ends_on}]"
end

#validateObject



6
7
8
9
10
11
12
13
14
# File 'lib/temporality/overlap.rb', line 6

def validate
  overlapping = inverse.intersecting(@model)

  if @model.id
    overlapping = overlapping.where('id <> ?', @model.id)
  end

  raise Temporality::Violation.new(error_message) if overlapping.exists?
end