Sha256: b598e2e272b8e4130a28dc49e4b4653676ad6b8001969a644610dbef08ffe4b5

Contents?: true

Size: 774 Bytes

Versions: 5

Compression:

Stored size: 774 Bytes

Contents

module BraintreeRails
  class Validator < ActiveModel::Validator
    def self.setup(&block)
      reset_validations
      set_validations(collect_validations(&block))
    end

    def self.reset_validations
      model_class.reset_callbacks(:validate)
    end

    def self.set_validations(validations)
      validations.each do |validation|
        model_class.validates(*validation)
      end
    end

    def self.default_validations
      self::Validations.deep_dup
    end

    def self.collect_validations(&block)
      block.present? ? block.call(default_validations) : default_validations
    end

    def self.model_class
      name.chomp('Validator').constantize
    end

    def setup(*)
      self.class.setup
    end

    def validate(record)
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
braintree-rails-1.2.3 lib/braintree_rails/validator.rb
braintree-rails-1.2.2 lib/braintree_rails/validator.rb
braintree-rails-1.2.1 lib/braintree_rails/validator.rb
braintree-rails-1.2.0 lib/braintree_rails/validator.rb
braintree-rails-1.1.0 lib/braintree_rails/validator.rb