Sha256: eaa56e84b87a0be039aa1ebd2c2b961d7af5371f954c8c81f1b847e10da99776

Contents?: true

Size: 608 Bytes

Versions: 35

Compression:

Stored size: 608 Bytes

Contents

# frozen_string_literal: true

class MiniDefender::Rules::ExpiryYear < MiniDefender::Rule
  def self.signature
    'expiry_year'
  end

  def coerce(value)
    value = value.to_i
    value += century if value < 100
    value.to_s
  end

  def passes?(attribute, value, validator)
    return false unless value.to_s.match?(/^(\d{2}|\d{4})$/)

    value = value.to_i
    value += century if value < 100
    value >= 1900
  end

  def message(attribute, value, validator)
    'Invalid expiry year.'
  end

  private

  # @param [Integer]
  def century
    year = Time.now.year
    year - (year % 100)
  end
end

Version data entries

35 entries across 35 versions & 1 rubygems

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