Module: Hatch::ClassMethods
Defined Under Namespace
Modules: InvalidInstanceMethods
Constant Summary
collapse
- @@validations =
{}
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.extended(klass) ⇒ Object
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/hatch.rb', line 17
def self.extended(klass)
klass_symbol = klass.to_s.to_sym
@@validations[klass_symbol] = {}
invalid_class = Class.new do
include InvalidInstanceMethods
end
klass.const_set("Invalid#{klass.name.split('::').last}", invalid_class)
end
|
Instance Method Details
#certifies(attribute, validation, error = nil) ⇒ Object
32
33
34
|
# File 'lib/hatch.rb', line 32
def certifies(attribute, validation, error = nil)
@@validations[self.to_s.to_sym][attribute] = Validation.send(validation, error)
end
|
#certify(attribute, error, &block) ⇒ Object
28
29
30
|
# File 'lib/hatch.rb', line 28
def certify(attribute, error, &block)
@@validations[self.to_s.to_sym][attribute] = Validation.new(error, &block)
end
|
#hatch(args = {}) ⇒ Object
36
37
38
39
40
41
42
43
44
45
46
|
# File 'lib/hatch.rb', line 36
def hatch(args = {})
validated_attributes = []
@@validations[self.to_s.to_sym].each_pair do |attribute, validation|
validated_attributes << ValidatedAttribute.validate(attribute,
args[attribute],
validation.error,
&validation.block)
end
build(validated_attributes)
end
|