mezuro_range.rb 894 Bytes
require "validators/beginning_uniqueness_validator.rb"
require "validators/greater_than_beginning_validator.rb"
require "validators/range_overlapping_validator.rb"

class MezuroRange < KalibroGatekeeperClient::Entities::Range
  include KalibroRecord

  attr_accessor :beginning, :end, :reading_id, :mezuro_configuration_id, :comments

  validates :beginning, presence: true, beginning_uniqueness: true
  validates :beginning, numericality: true, if: :non_infinite_beginning?
  validates :end, presence: true
  validates :end, numericality: true, if: :non_infinite_end?
  validates :end, greater_than_beginning: true
  validates :reading_id, presence: true
  validates_with RangeOverlappingValidator

  private

  def non_infinite_end?
    !(self.end == '-INF' || self.end == 'INF')
  end

  def non_infinite_beginning?
    val = !(self.beginning == '-INF' || self.beginning == 'INF')
  end
end