Sha256: a00f96620fe64928015e981a1a66f687e6a52d67c943071c57afefc8be76efef

Contents?: true

Size: 595 Bytes

Versions: 41

Compression:

Stored size: 595 Bytes

Contents

# frozen_string_literal: true

class MiniDefender::Rules::ExpiryDate < MiniDefender::Rule
  def self.signature
    'expiry_date'
  end

  def coerce(value)
    "#{@month}/#{@year}"
  end

  def passes?(attribute, value, validator)
    return false unless value.is_a?(String)

    matches = /(\d{2})\s*\/\s*(\d{2,4})/.match(value.strip)
    return false unless matches

    @month = matches[1].to_i
    @year = matches[2].to_i
    @year += 2000 if year < 100

    @month >= 1 && @month <= 12 && @year >= 1900
  end

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

Version data entries

41 entries across 41 versions & 1 rubygems

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