Class: Skylight::Middleware::BodyProxy Private
- Defined in:
- lib/skylight/middleware.rb
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
Instance Method Summary collapse
- #close ⇒ Object private
- #closed? ⇒ Boolean private
-
#each ⇒ Object
private
N.B.
-
#initialize(body, &block) ⇒ BodyProxy
constructor
private
A new instance of BodyProxy.
- #method_missing(*args, &block) ⇒ Object private
- #respond_to_missing?(name, include_all = false) ⇒ Boolean private
Constructor Details
#initialize(body, &block) ⇒ BodyProxy
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of BodyProxy.
9 10 11 12 13 |
# File 'lib/skylight/middleware.rb', line 9 def initialize(body, &block) @body = body @block = block @closed = false end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(*args, &block) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
45 46 47 48 |
# File 'lib/skylight/middleware.rb', line 45 def method_missing(*args, &block) super if args.first.to_s =~ /^to_ary$/ @body.__send__(*args, &block) end |
Instance Method Details
#close ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
21 22 23 24 25 26 27 28 29 30 |
# File 'lib/skylight/middleware.rb', line 21 def close return if @closed @closed = true begin @body.close if @body.respond_to? :close ensure @block.call end end |
#closed? ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
32 33 34 |
# File 'lib/skylight/middleware.rb', line 32 def closed? @closed end |
#each ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
N.B. This method is a special case to address the bug described by github.com/rack/rack/issues/434. We are applying this special case for #each only. Future bugs of this class will be handled by requesting users to patch their ruby implementation, to save adding too many methods in this class.
41 42 43 |
# File 'lib/skylight/middleware.rb', line 41 def each(...) @body.each(...) end |
#respond_to_missing?(name, include_all = false) ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
15 16 17 18 19 |
# File 'lib/skylight/middleware.rb', line 15 def respond_to_missing?(name, include_all = false) return false if name.to_s =~ /^to_ary$/ @body.respond_to?(name, include_all) end |