123456789_123456789_123456789_123456789_123456789_

Class: Net::IMAP::Literal

Do not use. This class is for internal use only.
Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Subclasses:
Inherits: Object
Defined in: lib/net/imap/command_data.rb

Class Method Summary

Instance Method Summary

Constructor Details

.new(data:, non_sync: nil) ⇒ Literal

[ GitHub ]

  
# File 'lib/net/imap/command_data.rb', line 276

def initialize(data:, non_sync: nil)
  data = -String(data.to_str).b or
    raise DataFormatError, "#{self.class} expects string input"
  super
  validate
end

Class Method Details

.validate

[ GitHub ]

  
# File 'lib/net/imap/command_data.rb', line 270

def self.validate(...)
  data = new(...)
  data.validate
  data
end

Instance Method Details

#bytesize

[ GitHub ]

  
# File 'lib/net/imap/command_data.rb', line 283

def bytesize = data.bytesize

#send_data(imap, tag)

[ GitHub ]

  
# File 'lib/net/imap/command_data.rb', line 292

def send_data(imap, tag)
  imap.__send__(:send_literal, data, tag, non_sync:)
end

#validate

[ GitHub ]

  
# File 'lib/net/imap/command_data.rb', line 285

def validate
  if data.include?("\0")
    raise DataFormatError, "NULL byte not allowed in #{self.class}.  " \
      "Use #{Literal8} or a null-safe encoding."
  end
end