Sha256: fa384d4f737a8202a7551be8502ed3c8560f967da11576c5295978a9b3f30f07

Contents?: true

Size: 621 Bytes

Versions: 3

Compression:

Stored size: 621 Bytes

Contents

require 'active_model'

module ConfigureMe
  class Base
    include ActiveModel::Validations
    define_model_callbacks :validation

    def save(options={})
      run_callbacks :validation do
        perform_validations(options) ? super : false
      end
    end

    def valid?(context = nil)
      context ||= (persisted? ? :update : :create)
      output = super(context)
      errors.empty? && output
    end

    protected

    def perform_validations(options={})
      if options[:validate] != false
        valid?(options[:context])
      else
        true
      end
    end
  end

  module Validations
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
configure_me-0.5.0 lib/configure_me/validations.rb
configure_me-0.4.1 lib/configure_me/validations.rb
configure_me-0.4.0 lib/configure_me/validations.rb