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
374 375 376 377 378 379 380 |
# File 'lib/net/imap/command_data.rb', line 374 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
403 404 405 |
# File 'lib/net/imap/command_data.rb', line 403 def nstring(str) str.nil? ? nil : string(str) end |
.string(str) ⇒ Object
coerces using to_s
393 394 395 396 397 398 399 400 |
# File 'lib/net/imap/command_data.rb', line 393 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
388 389 390 |
# File 'lib/net/imap/command_data.rb', line 388 def valid_nstring?(str) str.nil? || valid_string?(str) end |
.valid_string?(str) ⇒ Boolean
Allows symbols in addition to strings
383 384 385 |
# File 'lib/net/imap/command_data.rb', line 383 def valid_string?(str) str.is_a?(Symbol) || str.respond_to?(:to_str) end |