X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=plugins%2Fmcollective%2Fvalidator%2Ftypecheck_validator.rb;fp=plugins%2Fmcollective%2Fvalidator%2Ftypecheck_validator.rb;h=1664aa90e91b1ae1219cfd8d1795275139f266f2;hb=b87d2f4e68281062df1913440ca5753ae63314a9;hp=0000000000000000000000000000000000000000;hpb=ab0ea530b8ac956091f17b104ab2311336cfc250;p=packages%2Fprecise%2Fmcollective.git diff --git a/plugins/mcollective/validator/typecheck_validator.rb b/plugins/mcollective/validator/typecheck_validator.rb new file mode 100644 index 0000000..1664aa9 --- /dev/null +++ b/plugins/mcollective/validator/typecheck_validator.rb @@ -0,0 +1,28 @@ +module MCollective + module Validator + class TypecheckValidator + def self.validate(validator, validation_type) + raise ValidatorError, "value should be a #{validation_type.to_s}" unless check_type(validator, validation_type) + end + + def self.check_type(validator, validation_type) + case validation_type + when Class + validator.is_a?(validation_type) + when :integer + validator.is_a?(Fixnum) + when :float + validator.is_a?(Float) + when :number + validator.is_a?(Numeric) + when :string + validator.is_a?(String) + when :boolean + [TrueClass, FalseClass].include?(validator.class) + else + false + end + end + end + end +end