Sha256: bca2499f36c99923272fec22597e1a073670b604f7af2c86e7cb4b17808a8ee3
Contents?: true
Size: 871 Bytes
Versions: 36
Compression:
Stored size: 871 Bytes
Contents
# frozen_string_literal: true require 'time' class MiniDefender::Rules::DateEq < MiniDefender::Rule def initialize(target_date) @target_date = parse_date(target_date) @valid_value = false end def self.signature 'date_eq' end def self.make(args) raise ArgumentError, 'Target date is required for date rules.' unless args == 1 self.new(args[0]) end def passes?(attribute, value, validator) value = parse_date(value) @valid_value = true value == @target_date rescue ArgumentError false end def message(attribute, value, validator) return "The given value is not a valid date." unless @valid_value "The value must be equal to #{@target_date}." end protected def parse_date(date) date = date.to_time if date.is_a?(Date) date = Time.parse(date) unless date.is_a?(Time) date end end
Version data entries
36 entries across 36 versions & 1 rubygems