class Rosebud::Validations::TypeValidator
Public Instance Methods
validate_param(name, value, type)
click to toggle source
# File lib/rosebud/validations/type_validator.rb, line 4 def validate_param(name, value, type) coerced_value = coerce_value(type, value) error!(:type, param: name) unless valid_type?(type, coerced_value) end
Private Instance Methods
coerce_value(type, value)
click to toggle source
# File lib/rosebud/validations/type_validator.rb, line 10 def coerce_value(type, value) coercer = Virtus::Attribute.build(type) coercer.coerce(value) end
valid_type?(type, value)
click to toggle source
# File lib/rosebud/validations/type_validator.rb, line 15 def valid_type?(type, value) return true if value.nil? if type == Virtus::Attribute::Boolean value.is_a?(TrueClass) || value.is_a?(FalseClass) elsif type == Rack::Multipart::UploadedFile value.key?(:tempfile) else value.is_a?(type) end end