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 def self.[](klass) if klass.is_a?(Symbol) klass = validator_class(klass) elsif !(klass.match(/.*Validator$/)) klass = validator_class(klass) end const_get(klass) end
# File lib/mcollective/validator.rb, line 37 def self.has_validator?(validator) const_defined?(validator_class(validator)) end
Loads the validator plugins. Validators will only be loaded every 5 minutes
# File lib/mcollective/validator.rb, line 6 def self.load_validators if load_validators? @last_load = Time.now.to_i PluginManager.find_and_load("validator") end end
# File lib/mcollective/validator.rb, line 45 def self.load_validators? return true if @last_load.nil? (@last_load - Time.now.to_i) > 300 end
Allows validation plugins to be called like module methods : Validator.validate()
# File lib/mcollective/validator.rb, line 29 def self.method_missing(method, *args, &block) if has_validator?(method) validator = Validator[method].validate(*args) else raise ValidatorError, "Unknown validator: '#{method}'." end 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 def self.validate(validator, validation) Validator.load_validators begin if [:integer, :boolean, :float, :number, :string].include?(validation) Validator.typecheck(validator, validation) else case validation when Regexp,String Validator.regex(validator, validation) when Symbol Validator.send(validation, validator) when Array Validator.array(validator, validation) when Class Validator.typecheck(validator, validation) end end rescue => e raise ValidatorError, e.to_s end end
Generated with the Darkfish Rdoc Generator 2.