em-imap 0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of em-imap might be problematic. Click here for more details.

@@ -0,0 +1,50 @@
1
+ module EventMachine
2
+ module IMAP
3
+ # Intercepts the receive_data event and generates receive_response events
4
+ # with parsed data.
5
+ module ResponseParser
6
+ def post_init
7
+ super
8
+ @parser = Net::IMAP::ResponseParser.new
9
+ @buffer = ""
10
+ end
11
+
12
+ # This is a translation of Net::IMAP#get_response
13
+ def receive_data(data)
14
+ @buffer += data
15
+
16
+ until @buffer.empty?
17
+
18
+ eol = @buffer.index(CRLF)
19
+
20
+ # Include IMAP literals on the same line.
21
+ # The format for a literal is "{8}\r\n........"
22
+ # so the size would be at the end of what we thought was the line.
23
+ # We then skip over that much, and try looking for the next newline.
24
+ # (The newline after a literal is the end of the actual line,
25
+ # there's no termination marker for literals).
26
+ while eol && @buffer[0, eol][/\{(\d+)\}\z/]
27
+ eol = @buffer.index(CRLF, eol + CRLF.size + $1.to_i)
28
+ end
29
+
30
+ # The current line is not yet complete, wait for more data.
31
+ return unless eol
32
+
33
+ line = @buffer.slice!(0, eol + CRLF.size)
34
+
35
+ receive_response parse(line)
36
+ end
37
+ end
38
+
39
+ # Callback used by receive data.
40
+ def receive_response(response); end
41
+
42
+ private
43
+
44
+ def parse(line)
45
+ @parser.parse(line)
46
+ end
47
+ end
48
+ end
49
+ end
50
+
metadata ADDED
@@ -0,0 +1,108 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: em-imap
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 1
8
+ version: "0.1"
9
+ platform: ruby
10
+ authors:
11
+ - Conrad Irwin
12
+ autorequire:
13
+ bindir: bin
14
+ cert_chain: []
15
+
16
+ date: 2011-05-02 00:00:00 -07:00
17
+ default_executable:
18
+ dependencies:
19
+ - !ruby/object:Gem::Dependency
20
+ name: eventmachine
21
+ prerelease: false
22
+ requirement: &id001 !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ segments:
27
+ - 0
28
+ version: "0"
29
+ type: :runtime
30
+ version_requirements: *id001
31
+ - !ruby/object:Gem::Dependency
32
+ name: deferrable_gratification
33
+ prerelease: false
34
+ requirement: &id002 !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ segments:
39
+ - 0
40
+ version: "0"
41
+ type: :runtime
42
+ version_requirements: *id002
43
+ - !ruby/object:Gem::Dependency
44
+ name: rspec
45
+ prerelease: false
46
+ requirement: &id003 !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ segments:
51
+ - 0
52
+ version: "0"
53
+ type: :development
54
+ version_requirements: *id003
55
+ description: Allows you to connect to an IMAP4rev1 server in a non-blocking fashion.
56
+ email:
57
+ - conrad@rapportive.com
58
+ executables: []
59
+
60
+ extensions: []
61
+
62
+ extra_rdoc_files: []
63
+
64
+ files:
65
+ - lib/em-imap.rb
66
+ - lib/em-imap/listener.rb
67
+ - lib/em-imap/client.rb
68
+ - lib/em-imap/continuation_synchronisation.rb
69
+ - lib/em-imap/response_parser.rb
70
+ - lib/em-imap/connection.rb
71
+ - lib/em-imap/command_sender.rb
72
+ - lib/em-imap/authenticators.rb
73
+ - LICENSE.MIT
74
+ - README.md
75
+ has_rdoc: true
76
+ homepage: http://github.com/rapportive-oss/em-imap
77
+ licenses:
78
+ - MIT
79
+ post_install_message:
80
+ rdoc_options: []
81
+
82
+ require_paths:
83
+ - lib
84
+ required_ruby_version: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ segments:
89
+ - 1
90
+ - 8
91
+ - 7
92
+ version: 1.8.7
93
+ required_rubygems_version: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ segments:
98
+ - 0
99
+ version: "0"
100
+ requirements: []
101
+
102
+ rubyforge_project:
103
+ rubygems_version: 1.3.6
104
+ signing_key:
105
+ specification_version: 3
106
+ summary: An EventMachine based IMAP client.
107
+ test_files: []
108
+