Module: Net::IMAP::StringFormatter
- Defined in:
- lib/net/imap/command_data.rb
Constant Summary collapse
- LITERAL_REGEX =
/[\x80-\xff\r\n]/n
Class Method Summary collapse
- .literal_or_literal8(input, name: "argument") ⇒ Object
-
.nstring(str) ⇒ Object
coerces non-nil using
to_s. -
.string(str) ⇒ Object
coerces using
to_s. -
.valid_nstring?(str) ⇒ Boolean
Allows nil, symbols, and strings.
-
.valid_string?(str) ⇒ Boolean
Allows symbols in addition to strings.
Class Method Details
.literal_or_literal8(input, name: "argument") ⇒ Object
414 415 416 417 418 419 420 |
# File 'lib/net/imap/command_data.rb', line 414 def literal_or_literal8(input, name: "argument") return input if input in Literal | Literal8 data = String.try_convert(input) \ or raise TypeError, "expected #{name} to be String, got #{input.class}" type = data.include?("\0") ? Literal8 : Literal type.new(data:) end |
.nstring(str) ⇒ Object
coerces non-nil using to_s
443 444 445 |
# File 'lib/net/imap/command_data.rb', line 443 def nstring(str) str.nil? ? nil : string(str) end |
.string(str) ⇒ Object
coerces using to_s
433 434 435 436 437 438 439 440 |
# File 'lib/net/imap/command_data.rb', line 433 def string(str) str = str.to_s if str =~ LITERAL_REGEX Literal.new(str) else QuotedString.new(str) end end |
.valid_nstring?(str) ⇒ Boolean
Allows nil, symbols, and strings
428 429 430 |
# File 'lib/net/imap/command_data.rb', line 428 def valid_nstring?(str) str.nil? || valid_string?(str) end |
.valid_string?(str) ⇒ Boolean
Allows symbols in addition to strings
423 424 425 |
# File 'lib/net/imap/command_data.rb', line 423 def valid_string?(str) str.is_a?(Symbol) || str.respond_to?(:to_str) end |