Sha256: 5d224a9946d5afa02b38d264a1027bec215cf044419ddd7b32f68cc22ee27365
Contents?: true
Size: 856 Bytes
Versions: 41
Compression:
Stored size: 856 Bytes
Contents
# frozen_string_literal: true class MiniDefender::Rules::Uuid < MiniDefender::Rule def initialize(version = nil) raise ArgumentError, 'Expected version to be an integer or nil' unless version.nil? || version.is_a?(Integer) @version = version end def self.signature 'uuid' end def self.make(args) raise ArgumentError, 'Expected exactly one or zero argument' unless args.length <= 1 new(args[0]&.to_i) end def coerce(value) value.downcase end def passes?(attribute, value, validator) value.is_a?(String) && /^\h{8}-(\h{4}-){3}\h{12}$/i.match?(value) && (@version.nil? || value[14].to_i(16) == @version) end def message(attribute, value, validator) if @version "The value should be a valid UUID v#{@version}." else 'The value should be a valid UUID.' end end end
Version data entries
41 entries across 41 versions & 1 rubygems