Sha256: 9cd59f71eed484eb786f3eb40f1ea9401e691a2cbd64858d742151ef0ee3e8bd

Contents?: true

Size: 767 Bytes

Versions: 4

Compression:

Stored size: 767 Bytes

Contents

require 'active_model'

module ActiveModel
  module Validations
    def self.activevalidators
      %w(email url respond_to phone slug ip credit_card date password twitter postal_code tracking_number)
    end

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

    require 'date_validator'

    #Defines methods like validates_credit_card
    module HelperMethods
      ActiveModel::Validations.activevalidators.each do |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
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
activevalidators-1.9.0 lib/activevalidators.rb
activevalidators-1.8.1 lib/activevalidators.rb
activevalidators-1.8.0 lib/activevalidators.rb
activevalidators-1.7.1 lib/activevalidators.rb