Sha256: 2bb8449e034f99bd3a89842bd1d6df5266db7f074a6b0e20a07d2047f54adf36

Contents?: true

Size: 1.04 KB

Versions: 2

Compression:

Stored size: 1.04 KB

Contents

require 'active_model'
require 'phony'
require 'countries'
require 'active_validators/one_nine_shims/one_nine_string'

module ActiveValidators
  def self.activevalidators
    %w(email url respond_to phone slug ip credit_card date password twitter postal_code tracking_number siren ssn sin nino barcode date)
  end

  # Require each validator independently or just pass :all
  #
  # call-seq:
  #   ActiveValidators.activate(:phone, :email, :date)
  #   ActiveValidators.activate(:all)
  def self.activate(*validators)
    syms = validators.include?(:all) ? activevalidators : validators.map(&:to_s) & activevalidators

    syms.each do |validator_name|
      require "active_model/validations/#{validator_name}_validator"
    end
  end

  # Defines methods like validates_credit_card
  def define_helper_method_for_validator(validator)
    define_method('validates_'+validator) do |*fields|
      options ||= (fields.delete fields.find { |f| f.kind_of? Hash}) || true
      args = fields.push({ validator => options })
      validates(*args)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
activevalidators-3.1.2 lib/activevalidators.rb
activevalidators-3.1.1 lib/activevalidators.rb