Sha256: 1d8efe97b77b0c416289a8cedac424948cc338693cbba72260217778ae462dc7

Contents?: true

Size: 1.86 KB

Versions: 19

Compression:

Stored size: 1.86 KB

Contents

# frozen_string_literal: true

class MiniDefender::Rule
  def self.signature
    raise NotImplementedError, 'Use a concrete implementation.'
  end

  # @param [Array] args Set of positional arguments
  # @return [MiniDefender::Rule]
  def self.make(args)
    self.new
  end

  # @return [Boolean]
  def self.available?
    true
  end

  # @param [MiniDefender::Validator] validator
  # @return [Boolean]
  def implicit?(validator)
    false
  end

  # @param [MiniDefender::Validator] validator
  # @return [Boolean]
  def defaults?(validator)
    false
  end

  # @param [MiniDefender::Validator] validator
  # @return [?Object]
  def default_value(validator)
    nil
  end

  # Instruct the validator to stop validation for the current attribute
  # when the first error is encountered
  def bails?
    false
  end

  # Instructs the validator to stop validation for all rules for the current attribute
  def stops?
    false
  end

  # @param [MiniDefender::Validator] validator
  # @return [Boolean]
  def active?(validator)
    true
  end

  # @param [MiniDefender::Validator]
  # @return [Boolean]
  def excluded?(validator)
    false
  end

  def coerce(value)
    value
  end

  # @param [Object] attribute
  # @param [Object] value
  # @param [MiniDefender::Validator] validator
  def passes?(attribute, value, validator)
    raise NotImplementedError, 'Use a concrete implementation.'
  end

  # @param [Object] attribute
  # @param [Object] value
  # @param [MiniDefender::Validator] validator
  def message(attribute, value, validator)
    raise NotImplementedError, 'Use a concrete implementation.'
  end

  def with_message(message)
    @message = message
    self
  end

  # @param [Object] attribute
  # @param [Object] value
  # @param [MiniDefender::Validator] validator
  def error_message(attribute, value, validator)
    @message || message(attribute, value, validator)
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
mini_defender-0.4.1 lib/mini_defender/rule.rb
mini_defender-0.4.0 lib/mini_defender/rule.rb
mini_defender-0.3.14 lib/mini_defender/rule.rb
mini_defender-0.3.13 lib/mini_defender/rule.rb
mini_defender-0.3.12 lib/mini_defender/rule.rb
mini_defender-0.3.11 lib/mini_defender/rule.rb
mini_defender-0.3.10 lib/mini_defender/rule.rb
mini_defender-0.3.9 lib/mini_defender/rule.rb
mini_defender-0.3.8 lib/mini_defender/rule.rb
mini_defender-0.3.7 lib/mini_defender/rule.rb
mini_defender-0.3.6 lib/mini_defender/rule.rb
mini_defender-0.3.5 lib/mini_defender/rule.rb
mini_defender-0.3.2 lib/mini_defender/rule.rb
mini_defender-0.3.0 lib/mini_defender/rule.rb
mini_defender-0.2.0 lib/mini_defender/rule.rb
mini_defender-0.1.10 lib/mini_defender/rule.rb
mini_defender-0.1.9 lib/mini_defender/rule.rb
mini_defender-0.1.8 lib/mini_defender/rule.rb
mini_defender-0.1.6 lib/mini_defender/rule.rb