module Temporality::Validation
Constants
- CONSTRAINTS
- DEFAULTS
Public Instance Methods
valid?(*args, &block)
click to toggle source
Calls superclass method
# File lib/temporality/validation.rb, line 17 def valid?(*args, &block) validate_temporality_contraints! super(*args, &block) end
Private Instance Methods
temporal_associations()
click to toggle source
# File lib/temporality/validation.rb, line 51 def temporal_associations self.class.instance_variable_get(:@temporality) || {} end
validate_bounds_order()
click to toggle source
# File lib/temporality/validation.rb, line 45 def validate_bounds_order if starts_on > ends_on raise Temporality::Violation.new("Start date is after end date [#{starts_on} - #{ends_on}]") end end
validate_constraint(assoc, constraint_name)
click to toggle source
# File lib/temporality/validation.rb, line 41 def validate_constraint(assoc, constraint_name) CONSTRAINTS[constraint_name].new(self, assoc).validate end
validate_temporality_contraints!()
click to toggle source
# File lib/temporality/validation.rb, line 25 def validate_temporality_contraints! validate_bounds_order temporal_associations.each do |assoc, constrs| constraints = constrs.dup if constraints.delete(:auto_close) AutoClose.new(self, assoc).call end constraints.map { |constraint, enabled| constraint if enabled }.compact.each do |constraint| validate_constraint(assoc, constraint) end end end