X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;ds=sidebyside;f=doc%2Fclasses%2FMCollective%2FValidator.html;fp=doc%2Fclasses%2FMCollective%2FValidator.html;h=6c4c70a3900a0f8a7cceb74005584af9bfa88403;hb=d1f1649ba43c5cbc43c4beb2380096ba051d646a;hp=0000000000000000000000000000000000000000;hpb=8a3fe7daeecccf43dd71c59371c5005400d35101;p=packages%2Fprecise%2Fmcollective.git diff --git a/doc/classes/MCollective/Validator.html b/doc/classes/MCollective/Validator.html new file mode 100644 index 0000000..6c4c70a --- /dev/null +++ b/doc/classes/MCollective/Validator.html @@ -0,0 +1,342 @@ + + + + +
+Module | +MCollective::Validator | +
In: | +
+
+ lib/mcollective/validator.rb
+
+ + |
+
+Returns and instance of the Plugin class from which objects can be created. +Valid plugin names are +
++ :valplugin + "valplugin" + "ValpluginValidator" ++ +
+ # File lib/mcollective/validator.rb, line 18 +18: def self.[](klass) +19: if klass.is_a?(Symbol) +20: klass = validator_class(klass) +21: elsif !(klass.match(/.*Validator$/)) +22: klass = validator_class(klass) +23: end +24: +25: const_get(klass) +26: end ++
+ # File lib/mcollective/validator.rb, line 37 +37: def self.has_validator?(validator) +38: const_defined?(validator_class(validator)) +39: end ++
+Loads the validator plugins. Validators will only be loaded every 5 minutes +
+ ++ # File lib/mcollective/validator.rb, line 6 + 6: def self.load_validators + 7: if load_validators? + 8: @last_load = Time.now.to_i + 9: PluginManager.find_and_load("validator") +10: end +11: end ++
+ # File lib/mcollective/validator.rb, line 45 +45: def self.load_validators? +46: return true if @last_load.nil? +47: +48: (@last_load - Time.now.to_i) > 300 +49: end ++
+Allows validation plugins to be called like module methods : Validator.validate() +
+ ++ # File lib/mcollective/validator.rb, line 29 +29: def self.method_missing(method, *args, &block) +30: if has_validator?(method) +31: validator = Validator[method].validate(*args) +32: else +33: raise ValidatorError, "Unknown validator: '#{method}'." +34: end +35: end ++
+Generic validate method that will call +the correct validator plugin based on the type of the validation parameter +
+ ++ # File lib/mcollective/validator.rb, line 53 +53: def self.validate(validator, validation) +54: Validator.load_validators +55: +56: begin +57: if [:integer, :boolean, :float, :number, :string].include?(validation) +58: Validator.typecheck(validator, validation) +59: +60: else +61: case validation +62: when Regexp,String +63: Validator.regex(validator, validation) +64: +65: when Symbol +66: Validator.send(validation, validator) +67: +68: when Array +69: Validator.array(validator, validation) +70: +71: when Class +72: Validator.typecheck(validator, validation) +73: end +74: end +75: rescue => e +76: raise ValidatorError, e.to_s +77: end +78: end ++