Class: Rack::LargeUploads
- Inherits:
-
Object
- Object
- Rack::LargeUploads
show all
- Defined in:
- lib/rack/large-uploads.rb,
lib/rack/large-uploads/version.rb,
lib/rack/large-uploads/uploaded_file.rb,
lib/rack/large-uploads/uploaded_chunk.rb
Defined Under Namespace
Classes: UploadedChunk, UploadedFile
Constant Summary
collapse
- VERSION =
"0.0.2"
Instance Method Summary
collapse
Constructor Details
#initialize(app, options = {}, &block) ⇒ LargeUploads
Returns a new instance of LargeUploads.
13
14
15
16
17
18
19
20
21
22
23
24
|
# File 'lib/rack/large-uploads.rb', line 13
def initialize(app, options = {}, &block)
@app = app
@filters = {}
if block
if block.arity == 1
block.call(self)
else
instance_eval(&block)
end
end
end
|
Instance Method Details
#after(&block) ⇒ Object
54
55
56
|
# File 'lib/rack/large-uploads.rb', line 54
def after(&block)
@filters[:after] = block
end
|
#before(&block) ⇒ Object
50
51
52
|
# File 'lib/rack/large-uploads.rb', line 50
def before(&block)
@filters[:before] = block
end
|
#call(env) ⇒ Object
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
# File 'lib/rack/large-uploads.rb', line 26
def call(env)
request = Rack::Request.new(env)
params = request.params
if request.post? && request.form_data?
files = (request, params)
end
if files.present?
if files.all? { |f| f.is_a?(Rack::LargeUploads::UploadedFile) }
filter(:before, env, files)
response = @app.call(env)
filter(:after, env, files)
return response
else
return [202, {}, []]
end
else
@app.call(env)
end
end
|