Sha256: 9ffc5baf6dba70ceed9628973298baade42f495343520259f904050d6918ea6f

Contents?: true

Size: 1.08 KB

Versions: 25

Compression:

Stored size: 1.08 KB

Contents

# -*- coding: binary -*-
module Rex
module MIME
class Part

  require 'rex/mime/header'
  require 'rex/mime/encoding'

  include Rex::MIME::Encoding

  attr_accessor :header, :content

  def initialize
    self.header = Rex::MIME::Header.new
    self.content = ''
  end

  def to_s
    self.header.to_s + "\r\n" + content_encoded + "\r\n"
  end

  # Returns the part content with any necessary encoding or transformation
  # applied.
  #
  # @return [String] Content with encoding or transformations applied.
  def content_encoded
    binary_content? ? content : force_crlf(content)
  end

  # Answers if the part content is binary.
  #
  # @return [Boolean] true if the part content is binary, false otherwise.
  def binary_content?
    transfer_encoding && transfer_encoding == 'binary'
  end

  # Returns the Content-Transfer-Encoding of the part.
  #
  # @return [nil] if the part hasn't Content-Transfer-Encoding.
  # @return [String] The Content-Transfer-Encoding or the part.
  def transfer_encoding
    h = header.find('Content-Transfer-Encoding')
    return nil if h.nil?

    h[1]
  end

end
end
end

Version data entries

25 entries across 25 versions & 4 rubygems

Version Path
rex-2.0.3 lib/rex/mime/part.rb
librex-0.0.999 lib/rex/mime/part.rb
rex-2.0.2 lib/rex/mime/part.rb
librex-0.0.71 lib/rex/mime/part.rb
librex-0.0.70 lib/rex/mime/part.rb