class ContentDisposition
Constants
- ATTACHMENT
- DEFAULT_TO_ASCII
- INLINE
- RFC_5987_ESCAPED_CHAR
- TRADITIONAL_ESCAPED_CHAR
- VERSION
Attributes
to_ascii[RW]
disposition[R]
filename[R]
to_ascii[R]
Public Class Methods
attachment(filename = nil)
click to toggle source
# File lib/content_disposition.rb, line 14 def attachment(filename = nil) format(disposition: ATTACHMENT, filename: filename) end
format(**options)
click to toggle source
# File lib/content_disposition.rb, line 22 def format(**options) new(**options).to_s end
Also aliased as: call
inline(filename = nil)
click to toggle source
# File lib/content_disposition.rb, line 18 def inline(filename = nil) format(disposition: INLINE, filename: filename) end
new(disposition:, filename:, to_ascii: nil)
click to toggle source
# File lib/content_disposition.rb, line 32 def initialize(disposition:, filename:, to_ascii: nil) unless [ATTACHMENT, INLINE].include?(disposition.to_s) fail ArgumentError, "unknown disposition: #{disposition.inspect}" end @disposition = disposition @filename = filename @to_ascii = to_ascii || self.class.to_ascii || DEFAULT_TO_ASCII end
Public Instance Methods
ascii_filename()
click to toggle source
# File lib/content_disposition.rb, line 52 def ascii_filename 'filename="' + percent_escape(to_ascii[filename], TRADITIONAL_ESCAPED_CHAR) + '"' end
to_s()
click to toggle source
# File lib/content_disposition.rb, line 42 def to_s if filename "#{disposition}; #{ascii_filename}; #{utf8_filename}" else "#{disposition}" end end
utf8_filename()
click to toggle source
# File lib/content_disposition.rb, line 58 def utf8_filename "filename*=UTF-8''" + percent_escape(filename, RFC_5987_ESCAPED_CHAR) end
Private Instance Methods
percent_escape(string, pattern)
click to toggle source
# File lib/content_disposition.rb, line 64 def percent_escape(string, pattern) string.gsub(pattern) do |char| char.bytes.map { |byte| "%%%02X" % byte }.join end end