Module: Net::IMAP::NumValidator
| Relationships & Source Files | |
| Defined in: | lib/net/imap/data_encoding.rb |
Overview
Common validators of number and nz_number types
Constant Summary
-
NUMBER_RE =
# File 'lib/net/imap/data_encoding.rb', line 158
:nodoc/\A(?:0|[1-9]\d*)\z/
Class Method Summary
-
.coerce_mod_sequence_value(num)
mod_func
Like #ensure_mod_sequence_value, but usable with numeric String input.
-
.coerce_mod_sequence_valzer(num)
mod_func
Like #ensure_mod_sequence_valzer, but usable with numeric String input.
-
.coerce_number(num)
mod_func
Like #ensure_number, but usable with numeric String input.
-
.coerce_nz_number(num)
mod_func
Like #ensure_nz_number, but usable with numeric String input.
-
.ensure_mod_sequence_value(num)
mod_func
Ensure argument is ‘mod-sequence-value’ or raise
DataFormatError. -
.ensure_mod_sequence_valzer(num)
mod_func
Ensure argument is ‘mod-sequence-valzer’ or raise
DataFormatError. -
.ensure_number(num)
mod_func
Ensure argument is ‘number’ or raise
DataFormatError. -
.ensure_nz_number(num)
mod_func
Ensure argument is ‘nz-number’ or raise
DataFormatError. -
.valid_mod_sequence_value?(num) ⇒ Boolean
mod_func
Check if argument is a valid ‘mod-sequence-value’ according to RFC 4551.
-
.valid_mod_sequence_valzer?(num) ⇒ Boolean
mod_func
Check if argument is a valid ‘mod-sequence-valzer’ according to RFC 4551.
-
.valid_number?(num) ⇒ Boolean
mod_func
Check if argument is a valid ‘number’ according to RFC 3501.
-
.valid_nz_number?(num) ⇒ Boolean
mod_func
Check if argument is a valid ‘nz-number’ according to RFC 3501.
Class Method Details
.coerce_mod_sequence_value(num) (mod_func)
Like #ensure_mod_sequence_value, but usable with numeric String input.
# File 'lib/net/imap/data_encoding.rb', line 241
def coerce_mod_sequence_value(num) case num when Integer then ensure_mod_sequence_value num when NUMBER_RE then ensure_mod_sequence_value Integer num else raise DataFormatError, "%p is not a valid mod-sequence-value" % [num] end end
.coerce_mod_sequence_valzer(num) (mod_func)
Like #ensure_mod_sequence_valzer, but usable with numeric String input.
# File 'lib/net/imap/data_encoding.rb', line 251
def coerce_mod_sequence_valzer(num) case num when Integer then ensure_mod_sequence_valzer num when NUMBER_RE then ensure_mod_sequence_valzer Integer num else raise DataFormatError, "%p is not a valid mod-sequence-valzer" % [num] end end
.coerce_number(num) (mod_func)
Like #ensure_number, but usable with numeric String input.
# File 'lib/net/imap/data_encoding.rb', line 221
def coerce_number(num) case num when Integer then ensure_number num when NUMBER_RE then ensure_number Integer num else raise DataFormatError, "%p is not a valid number" % [num] end end
.coerce_nz_number(num) (mod_func)
Like #ensure_nz_number, but usable with numeric String input.
# File 'lib/net/imap/data_encoding.rb', line 231
def coerce_nz_number(num) case num when Integer then ensure_nz_number num when NUMBER_RE then ensure_nz_number Integer num else raise DataFormatError, "%p is not a valid nz-number" % [num] end end
.ensure_mod_sequence_value(num) (mod_func)
Ensure argument is ‘mod-sequence-value’ or raise DataFormatError
# File 'lib/net/imap/data_encoding.rb', line 207
def ensure_mod_sequence_value(num) return num if valid_mod_sequence_value?(num) raise DataFormatError, "mod-sequence-value must be non-zero unsigned 64-bit integer: #{num}" end
.ensure_mod_sequence_valzer(num) (mod_func)
Ensure argument is ‘mod-sequence-valzer’ or raise DataFormatError
# File 'lib/net/imap/data_encoding.rb', line 214
def ensure_mod_sequence_valzer(num) return num if valid_mod_sequence_valzer?(num) raise DataFormatError, "mod-sequence-valzer must be unsigned 64-bit integer: #{num}" end
.ensure_number(num) (mod_func)
Ensure argument is ‘number’ or raise DataFormatError
# File 'lib/net/imap/data_encoding.rb', line 193
def ensure_number(num) return num if valid_number?(num) raise DataFormatError, "number must be unsigned 32-bit integer: #{num}" end
.ensure_nz_number(num) (mod_func)
Ensure argument is ‘nz-number’ or raise DataFormatError
# File 'lib/net/imap/data_encoding.rb', line 200
def ensure_nz_number(num) return num if valid_nz_number?(num) raise DataFormatError, "nz-number must be non-zero unsigned 32-bit integer: #{num}" end
.valid_mod_sequence_value?(num) ⇒ Boolean (mod_func)
Check if argument is a valid ‘mod-sequence-value’ according to RFC 4551
mod-sequence-value = 1*DIGIT
; Positive unsigned 64-bit integer
; (mod-sequence)
; (1 <= n < 18,446,744,073,709,551,615)
# File 'lib/net/imap/data_encoding.rb', line 182
def valid_mod_sequence_value?(num) 1 <= num && num < 0xffff_ffff_ffff_ffff end
.valid_mod_sequence_valzer?(num) ⇒ Boolean (mod_func)
Check if argument is a valid ‘mod-sequence-valzer’ according to RFC 4551
mod-sequence-valzer = "0" / mod-sequence-value
# File 'lib/net/imap/data_encoding.rb', line 188
def valid_mod_sequence_valzer?(num) 0 <= num && num < 0xffff_ffff_ffff_ffff end
.valid_number?(num) ⇒ Boolean (mod_func)
Check if argument is a valid ‘number’ according to RFC 3501
number = 1*DIGIT
; Unsigned 32-bit integer
; (0 <= n < 4,294,967,296)
# File 'lib/net/imap/data_encoding.rb', line 165
def valid_number?(num) 0 <= num && num <= 0xffff_ffff end
.valid_nz_number?(num) ⇒ Boolean (mod_func)
Check if argument is a valid ‘nz-number’ according to RFC 3501
nz-number = digit-nz *DIGIT
; Non-zero unsigned 32-bit integer
; (0 < n < 4,294,967,296)
# File 'lib/net/imap/data_encoding.rb', line 173
def valid_nz_number?(num) 0 < num && num <= 0xffff_ffff end