Class: Grape::Validations::Types::File

Inherits:
Object
  • Object
show all
Defined in:
lib/grape/validations/types/file.rb

Overview

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.

Class Method Summary collapse

Class Method Details

.parse(input) ⇒ Object


11
12
13
14
15
16
17
18
19
# 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) ⇒ Boolean

Returns:

  • (Boolean)

21
22
23
24
25
26
# 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