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::DateValidation |
||||
include CostQuery::Validation |
||||
|
||||
def validate(*values) |
||||
errors.clear |
||||
values.all? do |vals| |
||||
vals = vals.is_a?(Array) ? vals : [vals] |
||||
vals.all? do |val| |
||||
begin |
||||
!!val.to_dateish |
||||
rescue ArgumentError |
||||
validate(vals - [val]) |
||||
errors << "\'#{val}\' is not a valid date!" |
||||
false |
||||
end |
||||
def register_validations(validation_methods) |
||||
validation_methods.each do |val_method| |
||||
const_name = val_method.to_s.camelize |
||||
begin |
||||
val_module = CostQuery::Validation.const_get const_name |
||||
metaclass.send(:include, val_module) |
||||
val_method = "validate_" + val_method.to_s |
||||
if method(val_method) |
||||
validations << val_method |
||||
else |
||||
warn "#{val_module.name} does not define #{val_method}" |
||||
end |
||||
rescue NameError |
||||
warn "No Module CostQuery::Validation::#{const_name} found to validate #{val_method}" |
||||
end |
||||
end |
||||
end |
||||
|
||||
def validate(*values) |
||||
true |
||||
end |
||||
|
||||
|
||||
def errors |
||||
@errors ||= [] |
||||
@errors |
||||
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 |
@ -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