mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* lib/net/imap.rb (xlist): supported the XLIST command, which is an
extension by Apple and Google. patch by Geoff Youngs. [ruby-core:33521] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30108 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
e806b0fed7
commit
fd019a5cbd
3 changed files with 48 additions and 1 deletions
|
@ -1,3 +1,9 @@
|
|||
Tue Dec 7 17:03:16 2010 Shugo Maeda <shugo@ruby-lang.org>
|
||||
|
||||
* lib/net/imap.rb (xlist): supported the XLIST command, which is an
|
||||
extension by Apple and Google. patch by Geoff Youngs.
|
||||
[ruby-core:33521]
|
||||
|
||||
Tue Dec 7 08:00:44 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* configure.in, win32/Makefile.sub (WERRORFLAG): flag to treat
|
||||
|
|
|
@ -528,6 +528,38 @@ module Net
|
|||
end
|
||||
end
|
||||
|
||||
# Sends a XLIST command, and returns a subset of names from
|
||||
# the complete set of all names available to the client.
|
||||
# +refname+ provides a context (for instance, a base directory
|
||||
# in a directory-based mailbox hierarchy). +mailbox+ specifies
|
||||
# a mailbox or (via wildcards) mailboxes under that context.
|
||||
# Two wildcards may be used in +mailbox+: '*', which matches
|
||||
# all characters *including* the hierarchy delimiter (for instance,
|
||||
# '/' on a UNIX-hosted directory-based mailbox hierarchy); and '%',
|
||||
# which matches all characters *except* the hierarchy delimiter.
|
||||
#
|
||||
# If +refname+ is empty, +mailbox+ is used directly to determine
|
||||
# which mailboxes to match. If +mailbox+ is empty, the root
|
||||
# name of +refname+ and the hierarchy delimiter are returned.
|
||||
#
|
||||
# The XLIST command is like the LIST command except that the flags
|
||||
# returned refer to the function of the folder/mailbox, e.g. :Sent
|
||||
#
|
||||
# The return value is an array of +Net::IMAP::MailboxList+. For example:
|
||||
#
|
||||
# imap.create("foo/bar")
|
||||
# imap.create("foo/baz")
|
||||
# p imap.xlist("", "foo/%")
|
||||
# #=> [#<Net::IMAP::MailboxList attr=[:Noselect], delim="/", name="foo/">, \\
|
||||
# #<Net::IMAP::MailboxList attr=[:Noinferiors, :Marked], delim="/", name="foo/bar">, \\
|
||||
# #<Net::IMAP::MailboxList attr=[:Noinferiors], delim="/", name="foo/baz">]
|
||||
def xlist(refname, mailbox)
|
||||
synchronize do
|
||||
send_command("XLIST", refname, mailbox)
|
||||
return @responses.delete("XLIST")
|
||||
end
|
||||
end
|
||||
|
||||
# Sends the GETQUOTAROOT command along with specified +mailbox+.
|
||||
# This command is generally available to both admin and user.
|
||||
# If mailbox exists, returns an array containing objects of
|
||||
|
@ -2071,7 +2103,7 @@ module Net
|
|||
return response_cond
|
||||
when /\A(?:FLAGS)\z/ni
|
||||
return flags_response
|
||||
when /\A(?:LIST|LSUB)\z/ni
|
||||
when /\A(?:LIST|LSUB|XLIST)\z/ni
|
||||
return list_response
|
||||
when /\A(?:QUOTA)\z/ni
|
||||
return getquota_response
|
||||
|
|
|
@ -56,6 +56,15 @@ EOF
|
|||
end
|
||||
end
|
||||
|
||||
def test_flag_xlist_inbox
|
||||
parser = Net::IMAP::ResponseParser.new
|
||||
response = parser.parse(<<EOF.gsub(/\n/, "\r\n").taint)
|
||||
* XLIST (\\Inbox) "." "INBOX"
|
||||
EOF
|
||||
assert_equal [:Inbox], response.attr.data
|
||||
end
|
||||
|
||||
|
||||
def test_resp_text_code
|
||||
parser = Net::IMAP::ResponseParser.new
|
||||
response = parser.parse(<<EOF.gsub(/\n/, "\r\n").taint)
|
||||
|
|
Loading…
Reference in a new issue