Module: Dao::Validations::Base
- Defined in:
- lib/dao/validations/base.rb
Overview
objects must have and errors object and a status object to use this mixin
Instance Method Summary collapse
- #forcing_validity? ⇒ Boolean
- #is_valid(*bool) ⇒ Object
- #is_valid=(boolean) ⇒ Object
- #valid! ⇒ Object
- #valid?(*args) ⇒ Boolean
- #validate(*args, &block) ⇒ Object
-
#validate!(*args, &block) ⇒ Object
TODO - consider how to factor out this throw…
- #validates(*args, &block) ⇒ Object
- #validations ⇒ Object
Instance Method Details
#forcing_validity? ⇒ Boolean
23 24 25 |
# File 'lib/dao/validations/base.rb', line 23 def forcing_validity? defined?(@forcing_validity) and @forcing_validity end |
#is_valid(*bool) ⇒ Object
13 14 15 16 17 |
# File 'lib/dao/validations/base.rb', line 13 def is_valid(*bool) @is_valid ||= nil @is_valid = !!bool.first unless bool.empty? @is_valid end |
#is_valid=(boolean) ⇒ Object
9 10 11 |
# File 'lib/dao/validations/base.rb', line 9 def is_valid=(boolean) @is_valid = !!boolean end |
#valid! ⇒ Object
19 20 21 |
# File 'lib/dao/validations/base.rb', line 19 def valid! @forcing_validity = true end |
#valid?(*args) ⇒ Boolean
27 28 29 30 31 32 33 34 35 36 |
# File 'lib/dao/validations/base.rb', line 27 def valid?(*args) if forcing_validity? true else = Dao.(args) validate unless validations.ran? validate if [:validate] errors.empty? and status.ok? end end |
#validate(*args, &block) ⇒ Object
38 39 40 41 42 43 44 45 46 |
# File 'lib/dao/validations/base.rb', line 38 def validate(*args, &block) if !args.empty? validations.add(*args, &block) else validations.run status.update(420) if(status.ok? and !errors.empty?) errors.empty? and status.ok? end end |
#validate!(*args, &block) ⇒ Object
TODO - consider how to factor out this throw…
50 51 52 53 54 55 56 57 58 |
# File 'lib/dao/validations/base.rb', line 50 def validate!(*args, &block) if !args.empty? validations.add(*args, &block) end @forcing_validity = false validations.run! status.update(420) if(status.ok? and !errors.empty?) throw(:result, nil) unless(errors.empty? and status.ok?) end |
#validates(*args, &block) ⇒ Object
60 61 62 |
# File 'lib/dao/validations/base.rb', line 60 def validates(*args, &block) validations.add(*args, &block) end |
#validations ⇒ Object
5 6 7 |
# File 'lib/dao/validations/base.rb', line 5 def validations @validations ||= Validations.for(self) end |