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

Version Path
mini_defender-0.6.8 lib/mini_defender/rules/uuid.rb
mini_defender-0.6.7 lib/mini_defender/rules/uuid.rb
mini_defender-0.6.5 lib/mini_defender/rules/uuid.rb
mini_defender-0.6.4 lib/mini_defender/rules/uuid.rb
mini_defender-0.6.3 lib/mini_defender/rules/uuid.rb
mini_defender-0.6.2 lib/mini_defender/rules/uuid.rb
mini_defender-0.6.1 lib/mini_defender/rules/uuid.rb
mini_defender-0.6.0 lib/mini_defender/rules/uuid.rb
mini_defender-0.5.8 lib/mini_defender/rules/uuid.rb
mini_defender-0.5.7 lib/mini_defender/rules/uuid.rb
mini_defender-0.5.6 lib/mini_defender/rules/uuid.rb
mini_defender-0.5.5 lib/mini_defender/rules/uuid.rb
mini_defender-0.5.4 lib/mini_defender/rules/uuid.rb
mini_defender-0.5.3 lib/mini_defender/rules/uuid.rb
mini_defender-0.5.2 lib/mini_defender/rules/uuid.rb
mini_defender-0.5.1 lib/mini_defender/rules/uuid.rb
mini_defender-0.5.0 lib/mini_defender/rules/uuid.rb
mini_defender-0.4.1 lib/mini_defender/rules/uuid.rb
mini_defender-0.4.0 lib/mini_defender/rules/uuid.rb
mini_defender-0.3.14 lib/mini_defender/rules/uuid.rb