Sha256: 0e26a770f360f0eaf6744d40ca7f5328911ccf9a789a551b943c975582d519cf

Contents?: true

Size: 589 Bytes

Versions: 4

Compression:

Stored size: 589 Bytes

Contents

# frozen_string_literal: true

class MiniDefender::Rules::Regex < MiniDefender::Rule
  def initialize(pattern)
    raise ArgumentError, 'Expected a Regexp instance.' unless pattern.is_a?(Regexp)

    @pattern = pattern
  end

  def self.signature
    'regex'
  end

  def self.make(args)
    raise ArgumentError, 'Expected a pattern as input.' unless args.length == 1

    new(Regexp.compile(args[0]))
  end

  def passes?(attribute, value, validator)
    value.to_s.match?(@pattern)
  end

  def message(attribute, value, validator)
    "The value must match #{@pattern.to_s}."
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
mini_defender-0.1.3 lib/mini_defender/rules/regex.rb
mini_defender-0.1.2 lib/mini_defender/rules/regex.rb
mini_defender-0.1.1 lib/mini_defender/rules/regex.rb
mini_defender-0.1.0 lib/mini_defender/rules/regex.rb