Sha256: 6687a3027a68b7011e3537c99de27a8c2163dd4e8e12219c6a22cfb6ad076ff2

Contents?: true

Size: 491 Bytes

Versions: 17

Compression:

Stored size: 491 Bytes

Contents

# frozen_string_literal: true

require 'money'

class MiniDefender::Rules::Currency < MiniDefender::Rule
  CURRENCIES = Money::Currency.map(&:iso_code).map(&:upcase).uniq

  def self.signature
    'currency'
  end

  def coerce(value)
    value.strip.upcase
  end

  def passes?(attribute, value, validator)
    value.is_a?(String) && CURRENCIES.include?(value.strip.upcase)
  end

  def message(attribute, value, validator)
    'The value must be a valid ISO-4217 currency code.'
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

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