Class: Net::POP3Command
- Inherits:
-
Object
- Object
- Net::POP3Command
- Defined in:
- lib/net/pop.rb
Overview
:nodoc: internal use only
Instance Attribute Summary collapse
-
#socket ⇒ Object
readonly
Returns the value of attribute socket.
Instance Method Summary collapse
- #apop(account, password) ⇒ Object
- #auth(account, password) ⇒ Object
- #dele(num) ⇒ Object
-
#initialize(sock) ⇒ POP3Command
constructor
A new instance of POP3Command.
- #inspect ⇒ Object
- #list ⇒ Object
- #quit ⇒ Object
- #retr(num, &block) ⇒ Object
- #rset ⇒ Object
- #stat ⇒ Object
- #top(num, lines = 0, &block) ⇒ Object
- #uidl(num = nil) ⇒ Object
Constructor Details
#initialize(sock) ⇒ POP3Command
Returns a new instance of POP3Command.
891 892 893 894 895 896 |
# File 'lib/net/pop.rb', line 891 def initialize(sock) @socket = sock @error_occurred = false res = check_response(critical { recv_response() }) @apop_stamp = res.slice(/<[!-~]+@[!-~]+>/) end |
Instance Attribute Details
#socket ⇒ Object (readonly)
Returns the value of attribute socket.
898 899 900 |
# File 'lib/net/pop.rb', line 898 def socket @socket end |
Instance Method Details
#apop(account, password) ⇒ Object
911 912 913 914 915 916 917 918 919 |
# File 'lib/net/pop.rb', line 911 def apop(account, password) raise POPAuthenticationError, 'not APOP server; cannot login' \ unless @apop_stamp check_response_auth(critical { get_response('APOP %s %s', account, Digest::MD5.hexdigest(@apop_stamp + password)) }) end |
#auth(account, password) ⇒ Object
904 905 906 907 908 909 |
# File 'lib/net/pop.rb', line 904 def auth(account, password) check_response_auth(critical { check_response_auth(get_response('USER %s', account)) get_response('PASS %s', password) }) end |
#dele(num) ⇒ Object
959 960 961 |
# File 'lib/net/pop.rb', line 959 def dele(num) check_response(critical { get_response('DELE %d', num) }) end |
#inspect ⇒ Object
900 901 902 |
# File 'lib/net/pop.rb', line 900 def inspect +"#<#{self.class} socket=#{@socket}>" end |
#list ⇒ Object
921 922 923 924 925 926 927 928 929 930 931 932 |
# File 'lib/net/pop.rb', line 921 def list critical { getok 'LIST' list = [] @socket.each_list_item do |line| m = /\A(\d+)[ \t]+(\d+)/.match(line) or raise POPBadResponse, "bad response: #{line}" list.push [m[1].to_i, m[2].to_i] end return list } end |
#quit ⇒ Object
980 981 982 |
# File 'lib/net/pop.rb', line 980 def quit check_response(critical { get_response('QUIT') }) end |
#retr(num, &block) ⇒ Object
952 953 954 955 956 957 |
# File 'lib/net/pop.rb', line 952 def retr(num, &block) critical { getok('RETR %d', num) @socket.(&block) } end |
#rset ⇒ Object
941 942 943 |
# File 'lib/net/pop.rb', line 941 def rset check_response(critical { get_response('RSET') }) end |
#stat ⇒ Object
934 935 936 937 938 939 |
# File 'lib/net/pop.rb', line 934 def stat res = check_response(critical { get_response('STAT') }) m = /\A\+OK\s+(\d+)\s+(\d+)/.match(res) or raise POPBadResponse, "wrong response format: #{res}" [m[1].to_i, m[2].to_i] end |
#top(num, lines = 0, &block) ⇒ Object
945 946 947 948 949 950 |
# File 'lib/net/pop.rb', line 945 def top(num, lines = 0, &block) critical { getok('TOP %d %d', num, lines) @socket.(&block) } end |
#uidl(num = nil) ⇒ Object
963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 |
# File 'lib/net/pop.rb', line 963 def uidl(num = nil) if num res = check_response(critical { get_response('UIDL %d', num) }) return res.split(/ /)[1] else critical { getok('UIDL') table = {} @socket.each_list_item do |line| num, uid = line.split(' ') table[num.to_i] = uid end return table } end end |