Sha256: 58941052849b5e9fce0f31df7eb48fc1f78bf6573f5452e127493c62761ca82e

Contents?: true

Size: 970 Bytes

Versions: 3

Compression:

Stored size: 970 Bytes

Contents

require 'active_support'
require 'active_model'
require 'active_record'
require 'active_support/all'
require 'active_model/validations'

module ActiveModel
  module Validations
    extend ActiveSupport::Autoload

    def self.activevalidators
      ['Email','Url','RespondTo','Phone','Slug','Ip','CreditCard','Date','Password','Twitter','PostalCode',
        'TrackingNumber']
    end

    #Eager autoload the library's validators into AR::Validations
    activevalidators.each do |validator_name|
      autoload validator_name+'Validator'
    end

    #Defines methods like validates_credit_card
    module HelperMethods
      ActiveModel::Validations.activevalidators.map(&:underscore).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

3 entries across 3 versions & 1 rubygems

Version Path
activevalidators-1.6.0 lib/activevalidators.rb
activevalidators-1.5.1 lib/activevalidators.rb
activevalidators-1.5.0 lib/activevalidators.rb