Module: SexyValidations

Defined in:
lib/sexy_validations.rb,
lib/sexy_validations/errors.rb,
lib/sexy_validations/validators/age.rb,
lib/sexy_validations/validators/date.rb,
lib/sexy_validations/validators/file.rb,
lib/sexy_validations/validators/count.rb,
lib/sexy_validations/validators/email.rb,
lib/sexy_validations/validators/image.rb,
lib/sexy_validations/validators/format.rb,
lib/sexy_validations/validators/length.rb,
lib/sexy_validations/validators/password.rb,
lib/sexy_validations/validators/presence.rb,
lib/sexy_validations/validators/inclusion.rb,
lib/sexy_validations/validators/acceptance.rb,
lib/sexy_validations/validators/confirmation.rb

Defined Under Namespace

Modules: ClassMethods, InstanceMethods, Validators Classes: Errors

Class Method Summary collapse

Class Method Details

.included(klass) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/sexy_validations.rb', line 11

def self.included(klass)
  klass.instance_eval do
    class_attribute :validations
    self.validations = []

    extend  ClassMethods
    include InstanceMethods

    unless method_defined?(:errors)
      class_eval do
        def errors
          @errors ||= Errors.new
        end
      end
    end

    unless method_defined?(:valid?)
      class_eval do
        def valid?
          validate!
          errors.empty?
        end
      end
    end
  end
end

.load_validator(name) ⇒ Object



4
5
6
7
8
9
# File 'lib/sexy_validations.rb', line 4

def self.load_validator(name)
  require "sexy_validations/validators/#{name}"
  "SexyValidations::Validators::#{name.to_s.camelize}".constantize
rescue LoadError
  "::#{name.to_s.camelize}Validator".constantize
end