class Grape::Validations::Types::File

Implementation for parameters that are multipart file objects. Actual handling of these objects is provided by Rack::Request; this class is here only to assert that rack’s handling has succeeded.

Public Class Methods

parse(input) click to toggle source
# File lib/grape/validations/types/file.rb, line 11
def parse(input)
  return if input.nil?
  return InvalidValue.new unless parsed?(input)

  # Processing of multipart file objects
  # is already taken care of by Rack::Request.
  # Nothing to do here.
  input
end
parsed?(value) click to toggle source
# File lib/grape/validations/types/file.rb, line 21
def parsed?(value)
  # Rack::Request creates a Hash with filename,
  # content type and an IO object. Do a bit of basic
  # duck-typing.
  value.is_a?(::Hash) && value.key?(:tempfile) && value[:tempfile].is_a?(Tempfile)
end