git-svn-id: https://dev.finn.de/svn/cockpit/branches/reporting_merge@1838 7926756e-e54e-46e6-9721-ed318f58905epull/6827/head
parent
e98365ee0e
commit
4efbd86b88
@ -1,31 +1,38 @@ |
|||||||
module CostQuery::Validation |
module CostQuery::Validation |
||||||
module CostQuery::Validation::DateValidation |
def register_validations(validation_methods) |
||||||
include CostQuery::Validation |
validation_methods.each do |val_method| |
||||||
|
const_name = val_method.to_s.camelize |
||||||
def validate(*values) |
begin |
||||||
errors.clear |
val_module = CostQuery::Validation.const_get const_name |
||||||
values.all? do |vals| |
metaclass.send(:include, val_module) |
||||||
vals = vals.is_a?(Array) ? vals : [vals] |
val_method = "validate_" + val_method.to_s |
||||||
vals.all? do |val| |
if method(val_method) |
||||||
begin |
validations << val_method |
||||||
!!val.to_dateish |
else |
||||||
rescue ArgumentError |
warn "#{val_module.name} does not define #{val_method}" |
||||||
validate(vals - [val]) |
|
||||||
errors << "\'#{val}\' is not a valid date!" |
|
||||||
false |
|
||||||
end |
|
||||||
end |
end |
||||||
|
rescue NameError |
||||||
|
warn "No Module CostQuery::Validation::#{const_name} found to validate #{val_method}" |
||||||
end |
end |
||||||
end |
end |
||||||
end |
end |
||||||
|
|
||||||
def validate(*values) |
|
||||||
true |
|
||||||
end |
|
||||||
|
|
||||||
def errors |
def errors |
||||||
@errors ||= [] |
@errors ||= [] |
||||||
@errors |
@errors |
||||||
end |
end |
||||||
|
|
||||||
|
def validations |
||||||
|
@validations ||= [] |
||||||
|
@validations |
||||||
|
end |
||||||
|
|
||||||
|
def validate(values = []) |
||||||
|
errors.clear |
||||||
|
return true if validations.empty? |
||||||
|
validations.all? do |validation| |
||||||
|
send(validation, values) unless values.empty? |
||||||
|
end |
||||||
|
end |
||||||
|
|
||||||
end |
end |
@ -0,0 +1,15 @@ |
|||||||
|
module CostQuery::Validation |
||||||
|
module Dates |
||||||
|
def validate_dates(values = []) |
||||||
|
values.all? do |val| |
||||||
|
begin |
||||||
|
!!val.to_dateish |
||||||
|
rescue ArgumentError |
||||||
|
validate_dates(values - [val]) |
||||||
|
errors << "\'#{val}\' is not a valid date!" |
||||||
|
false |
||||||
|
end |
||||||
|
end |
||||||
|
end |
||||||
|
end |
||||||
|
end |
@ -0,0 +1,7 @@ |
|||||||
|
module CostQuery::Validation |
||||||
|
module Numbers |
||||||
|
def validate_numbers(values = []) |
||||||
|
raise NotImplementedError, "Haven't done number validation just yet!" |
||||||
|
end |
||||||
|
end |
||||||
|
end |
@ -0,0 +1,7 @@ |
|||||||
|
module CostQuery::Validation |
||||||
|
module Sql |
||||||
|
def validate_sql(values = []) |
||||||
|
raise NotImplementedError, "Haven't done SQL validation just yet!" |
||||||
|
end |
||||||
|
end |
||||||
|
end |
Loading…
Reference in new issue