Class: JQuery::FileUpload::Rails::Middleware
- Inherits:
-
Object
- Object
- JQuery::FileUpload::Rails::Middleware
show all
- Defined in:
- lib/jquery/fileupload/rails/middleware.rb
Instance Method Summary
collapse
Constructor Details
Returns a new instance of Middleware.
5
6
7
|
# File 'lib/jquery/fileupload/rails/middleware.rb', line 5
def initialize(app)
@app = app
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args) ⇒ Object
53
54
55
|
# File 'lib/jquery/fileupload/rails/middleware.rb', line 53
def method_missing(method, *args)
@response.send(method.intern, *args)
end
|
Instance Method Details
#_call(env) ⇒ Object
13
14
15
16
17
18
19
20
21
22
23
|
# File 'lib/jquery/fileupload/rails/middleware.rb', line 13
def _call(env)
@status, @headers, @response = @app.call(env)
@request = Rack::Request.new(env)
if iframe_transport?
@headers['Content-Type'] = 'text/html'
[@status, @headers, self]
else
[@status, @headers, @response]
end
end
|
#call(env) ⇒ Object
9
10
11
|
# File 'lib/jquery/fileupload/rails/middleware.rb', line 9
def call(env)
dup._call(env)
end
|
#each(&block) ⇒ Object
25
26
27
28
29
|
# File 'lib/jquery/fileupload/rails/middleware.rb', line 25
def each(&block)
block.call(html_document_left) if iframe_transport?
@response.each(&block)
block.call(html_document_right) if iframe_transport?
end
|
#html_document_left ⇒ Object
35
36
37
|
# File 'lib/jquery/fileupload/rails/middleware.rb', line 35
def html_document_left
"<!DOCTYPE html><html><body><textarea #{metadata}>"
end
|
#html_document_right ⇒ Object
39
40
41
|
# File 'lib/jquery/fileupload/rails/middleware.rb', line 39
def html_document_right
"</textarea></body></html>"
end
|
#iframe_transport? ⇒ Boolean
31
32
33
|
# File 'lib/jquery/fileupload/rails/middleware.rb', line 31
def iframe_transport?
@request.params['X-Requested-With'] == 'IFrame'
end
|
43
44
45
46
47
48
49
|
# File 'lib/jquery/fileupload/rails/middleware.rb', line 43
def metadata
meta = {}
meta['data-status'] = @response.status if @response.respond_to? :status
meta['data-statusText'] = @response.status_message if @response.respond_to? :status_message
meta['data-type'] = @headers['Content-Type'] if @headers.has_key?('Content-Type')
meta.map {|key,value| "#{key}='#{value}'" }.join(' ')
end
|