module Net::IMAP::NumValidator

Common validators of number and nz_number types

Constants

Address

Net::IMAP::Address represents electronic mail addresses.

Fields:

name

Returns the phrase from [RFC-822] mailbox.

route

Returns the route from [RFC-822] route-addr.

mailbox

nil indicates end of [RFC-822] group. If non-nil and host is nil, returns [RFC-822] group name. Otherwise, returns [RFC-822] local-part.

host

nil indicates [RFC-822] group syntax. Otherwise, returns [RFC-822] domain name.

ContentDisposition

Net::IMAP::ContentDisposition represents Content-Disposition fields.

Fields:

dsp_type

Returns the disposition type.

param

Returns a hash that represents parameters of the Content-Disposition field.

ContinuationRequest

Net::IMAP::ContinuationRequest represents command continuation requests.

The command continuation request response is indicated by a “+” token instead of a tag. This form of response indicates that the server is ready to accept the continuation of a command from the client. The remainder of this response is a line of text.

continue_req    ::= "+" SPACE (resp_text / base64)

Fields:

data

Returns the data (Net::IMAP::ResponseText).

raw_data

Returns the raw data string.

Envelope

Net::IMAP::Envelope represents envelope structures of messages.

Fields:

date

Returns a string that represents the date.

subject

Returns a string that represents the subject.

from

Returns an array of Net::IMAP::Address that represents the from.

sender

Returns an array of Net::IMAP::Address that represents the sender.

reply_to

Returns an array of Net::IMAP::Address that represents the reply-to.

to

Returns an array of Net::IMAP::Address that represents the to.

cc

Returns an array of Net::IMAP::Address that represents the cc.

bcc

Returns an array of Net::IMAP::Address that represents the bcc.

in_reply_to

Returns a string that represents the in-reply-to.

message_id

Returns a string that represents the message-id.

FetchData

Net::IMAP::FetchData represents the contents of the FETCH response.

Fields:

seqno

Returns the message sequence number. (Note: not the unique identifier, even for the UID command response.)

attr

Returns a hash. Each key is a data item name, and each value is its value.

The current data items are:

BODY

A form of BODYSTRUCTURE without extension data.

String#capitalize.

INTERNALDATE

A string representing the internal date of the message.

RFC822

Equivalent to BODY[].

RFC822.HEADER

Equivalent to BODY.PEEK.

RFC822.SIZE

A number expressing the [RFC-822] size of the message.

RFC822.TEXT

Equivalent to BODY.

UID

A number expressing the unique identifier of the message.

MailboxACLItem

Net::IMAP::MailboxACLItem represents the response from GETACL.

acl_data        ::= "ACL" SPACE mailbox *(SPACE identifier SPACE rights)

identifier      ::= astring

rights          ::= astring

Fields:

user

Login name that has certain rights to the mailbox that was specified with the getacl command.

rights

The access rights the indicated user has to the mailbox.

MailboxList

Net::IMAP::MailboxList represents contents of the LIST response.

mailbox_list    ::= "(" #("\Marked" / "\Noinferiors" /
                    "\Noselect" / "\Unmarked" / flag_extension) ")"
                    SPACE (<"> QUOTED_CHAR <"> / nil) SPACE mailbox

Fields:

attr

Returns the name attributes. Each name attribute is a symbol capitalized by String#capitalize, such as :Noselect (not :NoSelect).

delim

Returns the hierarchy delimiter.

name

Returns the mailbox name.

MailboxQuota

Net::IMAP::MailboxQuota represents contents of GETQUOTA response. This object can also be a response to GETQUOTAROOT. In the syntax specification below, the delimiter used with the “#” construct is a single space (SPACE).

quota_list      ::= "(" #quota_resource ")"

quota_resource  ::= atom SPACE number SPACE number

quota_response  ::= "QUOTA" SPACE astring SPACE quota_list

Fields:

mailbox

The mailbox with the associated quota.

usage

Current storage usage of the mailbox.

quota

Quota limit imposed on the mailbox.

MailboxQuotaRoot

Net::IMAP::MailboxQuotaRoot represents part of the GETQUOTAROOT response. (GETQUOTAROOT can also return Net::IMAP::MailboxQuota.)

quotaroot_response ::= "QUOTAROOT" SPACE astring *(SPACE astring)

Fields:

mailbox

The mailbox with the associated quota.

quotaroots

Zero or more quotaroots that affect the quota on the specified mailbox.

ResponseCode

Net::IMAP::ResponseCode represents response codes.

resp_text_code  ::= "ALERT" / "PARSE" /
                    "PERMANENTFLAGS" SPACE "(" #(flag / "\*") ")" /
                    "READ-ONLY" / "READ-WRITE" / "TRYCREATE" /
                    "UIDVALIDITY" SPACE nz_number /
                    "UNSEEN" SPACE nz_number /
                    atom [SPACE 1*<any TEXT_CHAR except "]">]

Fields:

name

Returns the name, such as “ALERT”, “PERMANENTFLAGS”, or “UIDVALIDITY”.

data

Returns the data, if it exists.

ResponseText

Net::IMAP::ResponseText represents texts of responses. The text may be prefixed by the response code.

resp_text       ::= ["[" resp_text_code "]" SPACE] (text_mime2 / text)
                    ;; text SHOULD NOT begin with "[" or "="

Fields:

code

Returns the response code. See ((<Net::IMAP::ResponseCode>)).

text

Returns the text.

StatusData

Net::IMAP::StatusData represents the contents of the STATUS response.

Fields:

mailbox

Returns the mailbox name.

attr

Returns a hash. Each key is one of “MESSAGES”, “RECENT”, “UIDNEXT”, “UIDVALIDITY”, “UNSEEN”. Each value is a number.

TaggedResponse

Net::IMAP::TaggedResponse represents tagged responses.

The server completion result response indicates the success or failure of the operation. It is tagged with the same tag as the client command which began the operation.

response_tagged ::= tag SPACE resp_cond_state CRLF

tag             ::= 1*<any ATOM_CHAR except "+">

resp_cond_state ::= ("OK" / "NO" / "BAD") SPACE resp_text

Fields:

tag

Returns the tag.

name

Returns the name, one of “OK”, “NO”, or “BAD”.

data

Returns the data. See ((<Net::IMAP::ResponseText>)).

raw_data

Returns the raw data string.

ThreadMember

Net::IMAP::ThreadMember represents a thread-node returned by Net::IMAP#thread.

Fields:

seqno

The sequence number of this message.

children

An array of Net::IMAP::ThreadMember objects for mail items that are children of this in the thread.

UntaggedResponse

Net::IMAP::UntaggedResponse represents untagged responses.

Data transmitted by the server to the client and status responses that do not indicate command completion are prefixed with the token “*”, and are called untagged responses.

response_data   ::= "*" SPACE (resp_cond_state / resp_cond_bye /
                    mailbox_data / message_data / capability_data)

Fields:

name

Returns the name, such as “FLAGS”, “LIST”, or “FETCH”.

data

Returns the data such as an array of flag symbols, a ((<Net::IMAP::MailboxList>)) object.

raw_data

Returns the raw data string.

Public Class Methods

ensure_number(num) click to toggle source

Ensure argument is 'number' or raise DataFormatError

# File lib/net/imap.rb, line 1634
    def ensure_number(num)
      return if valid_number?(num)

      msg = "number must be unsigned 32-bit integer: #{num}"
      raise DataFormatError, msg
    end

    # Ensure argument is 'nz_number' or raise DataFormatError
    def ensure_nz_number(num)
      return if valid_nz_number?(num)

      msg = "nz_number must be non-zero unsigned 32-bit integer: #{num}"
      raise DataFormatError, msg
    end
  end
end
ensure_nz_number(num) click to toggle source

Ensure argument is 'nz_number' or raise DataFormatError

# File lib/net/imap.rb, line 1642
  def ensure_nz_number(num)
    return if valid_nz_number?(num)

    msg = "nz_number must be non-zero unsigned 32-bit integer: #{num}"
    raise DataFormatError, msg
  end
end
valid_number?(num) click to toggle source

Check is passed argument valid 'number' in RFC 3501 terminology

# File lib/net/imap.rb, line 1616
def valid_number?(num)
  # [RFC 3501]
  # number          = 1*DIGIT
  #                    ; Unsigned 32-bit integer
  #                    ; (0 <= n < 4,294,967,296)
  num >= 0 && num < 4294967296
end
valid_nz_number?(num) click to toggle source

Check is passed argument valid 'nz_number' in RFC 3501 terminology

# File lib/net/imap.rb, line 1625
def valid_nz_number?(num)
  # [RFC 3501]
  # nz-number       = digit-nz *DIGIT
  #                    ; Non-zero unsigned 32-bit integer
  #                    ; (0 < n < 4,294,967,296)
  num != 0 && valid_number?(num)
end