Class: Rack::Multipart::Parser::Collector::MimePart
- Inherits:
-
Struct
- Object
- Struct
- Rack::Multipart::Parser::Collector::MimePart
- Defined in:
- lib/rack/multipart/parser.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#body ⇒ Object
Returns the value of attribute body.
-
#content_type ⇒ Object
Returns the value of attribute content_type.
-
#filename ⇒ Object
Returns the value of attribute filename.
-
#head ⇒ Object
Returns the value of attribute head.
-
#name ⇒ Object
Returns the value of attribute name.
Instance Method Summary collapse
Instance Attribute Details
#body ⇒ Object
Returns the value of attribute body
80 81 82 |
# File 'lib/rack/multipart/parser.rb', line 80 def body @body end |
#content_type ⇒ Object
Returns the value of attribute content_type
80 81 82 |
# File 'lib/rack/multipart/parser.rb', line 80 def content_type @content_type end |
#filename ⇒ Object
Returns the value of attribute filename
80 81 82 |
# File 'lib/rack/multipart/parser.rb', line 80 def filename @filename end |
#head ⇒ Object
Returns the value of attribute head
80 81 82 |
# File 'lib/rack/multipart/parser.rb', line 80 def head @head end |
#name ⇒ Object
Returns the value of attribute name
80 81 82 |
# File 'lib/rack/multipart/parser.rb', line 80 def name @name end |
Instance Method Details
#get_data {|data| ... } ⇒ Object
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
# File 'lib/rack/multipart/parser.rb', line 81 def get_data data = body if filename == "" # filename is blank which means no file has been selected return elsif filename body.rewind if body.respond_to?(:rewind) # Take the basename of the upload's original filename. # This handles the full Windows paths given by Internet Explorer # (and perhaps other broken user agents) without affecting # those which give the lone filename. fn = filename.split(/[\/\\]/).last data = {:filename => fn, :type => content_type, :name => name, :tempfile => body, :head => head} elsif !filename && content_type && body.is_a?(IO) body.rewind # Generic multipart cases, not coming from a form data = {:type => content_type, :name => name, :tempfile => body, :head => head} end yield data end |