Class: Hermeneutics::Contents
- Inherits:
-
Dictionary
- Object
- Dictionary
- Hermeneutics::Contents
- Defined in:
- lib/hermeneutics/contents.rb
Overview
A parser for header fields in Content-Type style
Example
content_disposition = Contents.new "form-data", name: "mycontrol"
content_type = Contents.parse "text/html; boundary=0123456"
content_type.caption #=> "text/html"
content_type[ :boundary] #=> "0123456"
# (Subclass ContentType even splits the caption into type/subtype.)
Direct Known Subclasses
Constant Summary
Constants inherited from Dictionary
Dictionary::REA, Dictionary::RES, Dictionary::SEA, Dictionary::SEP, Dictionary::TSPECIAL
Instance Attribute Summary collapse
-
#caption ⇒ Object
readonly
Returns the value of attribute caption.
Attributes inherited from Dictionary
Class Method Summary collapse
-
.parse(line) ⇒ Object
Create a
Contentsobject out of a string from a mail header field.
Instance Method Summary collapse
- #=~(re) ⇒ Object
- #encoded_parts ⇒ Object
-
#initialize(caption, hash = nil) ⇒ Contents
constructor
Create a
Contentsobject from a value and a hash. - #quoted_parts ⇒ Object
Methods inherited from Dictionary
#[], #encode, #keys, #to_s, urltext
Constructor Details
#initialize(caption, hash = nil) ⇒ Contents
Create a Contents object from a value and a hash.
c = Contents.new "text/html", boundary: "0123456"
251 252 253 254 255 256 257 |
# File 'lib/hermeneutics/contents.rb', line 251 def initialize caption, hash = nil if caption =~ RES or caption =~ REA then raise "Invalid content caption '#{caption}'." end @caption = caption.new_string super hash end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Hermeneutics::Dictionary
Instance Attribute Details
#caption ⇒ Object (readonly)
Returns the value of attribute caption.
245 246 247 |
# File 'lib/hermeneutics/contents.rb', line 245 def caption @caption end |
Class Method Details
.parse(line) ⇒ Object
Create a Contents object out of a string from a mail header field.
c = Contents.parse "text/html; boundary=0123456"
c.caption #=> "text/html"
c[ :boundary] #=> "0123456"
236 237 238 239 240 241 |
# File 'lib/hermeneutics/contents.rb', line 236 def parse line rest = line.strip caption, rest = rest.split Dictionary::RES, 2 hash = parse_hash rest new caption, hash end |
Instance Method Details
#=~(re) ⇒ Object
259 260 261 |
# File 'lib/hermeneutics/contents.rb', line 259 def =~ re @caption =~ re end |
#encoded_parts ⇒ Object
270 271 272 273 274 |
# File 'lib/hermeneutics/contents.rb', line 270 def encoded_parts r = [ "#@caption"] r.concat super r end |
#quoted_parts ⇒ Object
264 265 266 267 268 |
# File 'lib/hermeneutics/contents.rb', line 264 def quoted_parts r = [ "#@caption"] r.concat super r end |