sgmap/boussole

View on GitHub
app/models/concerns/continuous_criterium.rb

Summary

Maintainability
A
0 mins
Test Coverage
# encoding: utf-8
# frozen_string_literal: true

#
# Module ContinuousCriterium provides a mixin for continuous criteria.
#
# @author Mauko Quiroga <mauko.quiroga@data.gouv.fr>
#
module ContinuousCriterium
  extend ActiveSupport::Concern

  included do
    validates :target_public,
              presence: true

    validates :minimum,
              numericality: {
                only_integer: true,
                allow_nil: true,
                less_than_or_equal_to: :maximum,
                if: -> { maximum.present? }
              }

    validates :maximum,
              numericality: {
                only_integer: true,
                allow_nil: true,
                greater_than_or_equal_to: :minimum,
                if: -> { minimum.present? }
              }
  end
end