Module: Validation::Rules
- Included in:
- Validator
- Defined in:
- lib/validation/rules.rb
Instance Method Summary collapse
- #validates(field, callback, message) ⇒ Object
- #validates_confirmation_of(field, message = '') ⇒ Object
- #validates_format_of(field, regex, message = '') ⇒ Object
- #validates_greather_or_equal_then(field, number, message = '') ⇒ Object
- #validates_greather_then(field, number, message = '') ⇒ Object
- #validates_length_of_within(field, min, max, message = '') ⇒ Object
- #validates_less_or_equal_then(field, number, message = '') ⇒ Object
- #validates_less_then(field, number, message = '') ⇒ Object
- #validates_numericality_of(field, message = '') ⇒ Object
- #validates_option_in(field, options, message = '') ⇒ Object
- #validates_presence_of(field, message = '') ⇒ Object
- #validates_presence_of_field(field, message = '') ⇒ Object
- #validates_url_format_of(field, message = '') ⇒ Object
Instance Method Details
#validates(field, callback, message) ⇒ Object
4 5 6 |
# File 'lib/validation/rules.rb', line 4 def validates(field, callback, ) @rules << {:callback => callback, :message => Error.new(field, )} end |
#validates_confirmation_of(field, message = '') ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/validation/rules.rb', line 30 def validates_confirmation_of(field, ='') validates_presence_of(field, ) callback = lambda do |data| field_confirmation = data.fetch("#{field}_confirmation", nil) if field_confirmation == data[field] true else false end end validates(field, callback, ) end |
#validates_format_of(field, regex, message = '') ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/validation/rules.rb', line 44 def validates_format_of(field, regex, ='') validates_presence_of(field, ) callback = lambda do |data| if data[field].to_s =~ regex true else false end end validates(field, callback, ) end |
#validates_greather_or_equal_then(field, number, message = '') ⇒ Object
74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/validation/rules.rb', line 74 def validates_greather_or_equal_then(field, number, ='') validates_numericality_of(field, ) callback = lambda do |data| if data[field] >= number true else false end end validates(field, callback, ) end |
#validates_greather_then(field, number, message = '') ⇒ Object
62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/validation/rules.rb', line 62 def validates_greather_then(field, number, ='') validates_numericality_of(field, ) callback = lambda do |data| if data[field] > number true else false end end validates(field, callback, ) end |
#validates_length_of_within(field, min, max, message = '') ⇒ Object
110 111 112 113 114 115 116 117 118 119 120 121 |
# File 'lib/validation/rules.rb', line 110 def validates_length_of_within(field, min, max, ='') validates_presence_of(field, ) callback = lambda do |data| length = data[field].length if length >= min && length <= max true else false end end validates(field, callback, ) end |
#validates_less_or_equal_then(field, number, message = '') ⇒ Object
98 99 100 101 102 103 104 105 106 107 108 |
# File 'lib/validation/rules.rb', line 98 def validates_less_or_equal_then(field, number, ='') validates_numericality_of(field, ) callback = lambda do |data| if data[field] <= number true else false end end validates(field, callback, ) end |
#validates_less_then(field, number, message = '') ⇒ Object
86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/validation/rules.rb', line 86 def validates_less_then(field, number, ='') validates_numericality_of(field, ) callback = lambda do |data| if data[field] < number true else false end end validates(field, callback, ) end |
#validates_numericality_of(field, message = '') ⇒ Object
57 58 59 60 |
# File 'lib/validation/rules.rb', line 57 def validates_numericality_of(field, ='') validates_presence_of(field, ) validates_format_of(field, /^\d+(\.\d+)?$/, ) end |
#validates_option_in(field, options, message = '') ⇒ Object
123 124 125 126 127 128 129 130 131 132 133 |
# File 'lib/validation/rules.rb', line 123 def validates_option_in(field, , ='') validates_presence_of(field, ) callback = lambda do |data| if .include? data[field] true else false end end validates(field, callback, ) end |
#validates_presence_of(field, message = '') ⇒ Object
19 20 21 22 23 24 25 26 27 28 |
# File 'lib/validation/rules.rb', line 19 def validates_presence_of(field, ='') callback = lambda do |data| if data.fetch(field, nil).to_s !~ /\A\s*\z/ true else false end end validates(field, callback, ) end |
#validates_presence_of_field(field, message = '') ⇒ Object
8 9 10 11 12 13 14 15 16 17 |
# File 'lib/validation/rules.rb', line 8 def validates_presence_of_field(field, ='') callback = lambda do |data| if data.has_key?(field) true else false end end validates(field, callback, ) end |
#validates_url_format_of(field, message = '') ⇒ Object
135 136 137 138 139 140 141 142 143 144 145 146 147 |
# File 'lib/validation/rules.rb', line 135 def validates_url_format_of(field, ='') require 'uri' validates_presence_of(field, ) callback = lambda do |data| url = URI.parse(data[field]) rescue nil if url.nil? false else true end end validates(field, callback, ) end |