ruby-gmail 0.0.9 → 0.1.0
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.
- data/.gitignore +1 -0
- data/README.markdown +6 -0
- data/Rakefile +0 -9
- data/VERSION +1 -1
- data/lib/gmail.rb +3 -5
- data/lib/mime/entity.rb +10 -5
- data/lib/mime/entity_tmail.rb +6 -4
- data/ruby-gmail.gemspec +67 -0
- metadata +5 -3
data/.gitignore
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
pkg
|
data/README.markdown
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
# This fork
|
2
|
+
|
3
|
+
contains a fix to a bug in the initializer, which was discussed [here](http://github.com/dcparker/ruby-gmail/issues#issue/7/comment/141607)
|
4
|
+
|
5
|
+
* * * *
|
6
|
+
|
1
7
|
# ruby-gmail
|
2
8
|
|
3
9
|
* Homepage: [http://dcparker.github.com/ruby-gmail/](http://dcparker.github.com/ruby-gmail/)
|
data/Rakefile
CHANGED
@@ -1,15 +1,6 @@
|
|
1
1
|
# -*- ruby -*-
|
2
2
|
|
3
3
|
require 'rubygems'
|
4
|
-
require 'hoe'
|
5
|
-
|
6
|
-
Hoe.spec 'ruby-gmail' do
|
7
|
-
developer 'Daniel Parker', 'gems@behindlogic.com'
|
8
|
-
extra_deps << ['shared-mime-info', '>= 0']
|
9
|
-
self.readme_file = 'README.markdown'
|
10
|
-
self.url = "http://dcparker.github.com/ruby-gmail"
|
11
|
-
self.post_install_message = "\n\033[34mIf ruby-gmail saves you TWO hours of work, want to compensate me for, like, a half-hour?\nSupport me in making new and better gems:\033[0m \033[31;4mhttp://pledgie.com/campaigns/7087\033[0m\n\n"
|
12
|
-
end
|
13
4
|
|
14
5
|
begin
|
15
6
|
require 'jeweler'
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0
|
1
|
+
0.1.0
|
data/lib/gmail.rb
CHANGED
@@ -19,8 +19,8 @@ class Gmail
|
|
19
19
|
meta.username = username =~ /@/ ? username : username + '@gmail.com'
|
20
20
|
meta.password = password
|
21
21
|
@imap = Net::IMAP.new('imap.gmail.com',993,true,nil,false)
|
22
|
+
@imap.login(username, password)
|
22
23
|
if block_given?
|
23
|
-
@imap.login(username, password)
|
24
24
|
yield self
|
25
25
|
logout
|
26
26
|
end
|
@@ -55,10 +55,8 @@ class Gmail
|
|
55
55
|
|
56
56
|
# List the available labels
|
57
57
|
def labels
|
58
|
-
(@imap.list("", "%") + @imap.list("[Gmail]/", "%")).inject([])
|
59
|
-
label[:name].each_line { |l| labels << l }
|
60
|
-
labels
|
61
|
-
end
|
58
|
+
(@imap.list("", "%") + @imap.list("[Gmail]/", "%")).inject([]) { |labels,label|
|
59
|
+
label[:name].each_line { |l| labels << l }; labels }
|
62
60
|
end
|
63
61
|
|
64
62
|
def in_mailbox(mailbox, &block)
|
data/lib/mime/entity.rb
CHANGED
@@ -150,11 +150,16 @@ module MIME
|
|
150
150
|
# Renders this data structure into a string, encoded
|
151
151
|
def to_s
|
152
152
|
multipart_boundary # initialize the boundary if necessary
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
153
|
+
|
154
|
+
headers_string = {'charset' => 'utf-8', 'content-transfer-encoding' => @encoding} \
|
155
|
+
.merge(headers) \
|
156
|
+
.inject('') {|a,(k,v)| a << "#{MIME.capitalize_header(k)}: #{v}\r\n" }
|
157
|
+
|
158
|
+
content_string = content.is_a?(Array) ?
|
159
|
+
content.to_s :
|
160
|
+
content.collect {|part| "--#{multipart_boundary}\r\n#{part.to_s}\r\n" }.join + "--#{multipart_boundary}--\r\n"
|
161
|
+
|
162
|
+
[headers_string, content_string].join("\r\n")
|
158
163
|
end
|
159
164
|
|
160
165
|
# Converts this data structure into a string, but decoded if necessary
|
data/lib/mime/entity_tmail.rb
CHANGED
@@ -58,16 +58,18 @@ module MIME
|
|
58
58
|
end
|
59
59
|
raise ArgumentError, "Must pass in either: [an array with two elements: headers(hash) and content(string or array)] OR [a hash containing :type, :boundary, and :content(being the former or a string)]"
|
60
60
|
end
|
61
|
+
|
62
|
+
# Parse a tmail object into our Entity object
|
61
63
|
def from_tmail(tmail)
|
62
64
|
raise ArgumentError, "Expecting a TMail::Mail object." unless tmail.is_a?(TMail::Mail)
|
63
|
-
@headers ||= Hash.new {|h,k|
|
65
|
+
@headers ||= Hash.new {|h,k| tmail.header[k].to_s }
|
64
66
|
if multipart?
|
65
|
-
@content =
|
67
|
+
@content = tmail.parts.collect { |tpart| Entity.new.from_tmail(tpart) }
|
66
68
|
else
|
67
|
-
set_content
|
69
|
+
set_content tmail.body # TMail has already decoded it, but we need it still encoded
|
68
70
|
end
|
69
71
|
end
|
70
|
-
|
72
|
+
|
71
73
|
##############
|
72
74
|
# ATTRIBUTES #
|
73
75
|
|
data/ruby-gmail.gemspec
ADDED
@@ -0,0 +1,67 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{ruby-gmail}
|
8
|
+
s.version = "0.1.0"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["BehindLogic"]
|
12
|
+
s.date = %q{2010-05-05}
|
13
|
+
s.description = %q{A Rubyesque interface to Gmail, with all the tools you'll need. Search, read and send multipart emails; archive, mark as read/unread, delete emails; and manage labels.}
|
14
|
+
s.email = %q{gems@behindlogic.com}
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"README.markdown"
|
17
|
+
]
|
18
|
+
s.files = [
|
19
|
+
".autotest",
|
20
|
+
".gitignore",
|
21
|
+
"History.txt",
|
22
|
+
"Manifest.txt",
|
23
|
+
"README.markdown",
|
24
|
+
"Rakefile",
|
25
|
+
"VERSION",
|
26
|
+
"lib/gmail.rb",
|
27
|
+
"lib/gmail/mailbox.rb",
|
28
|
+
"lib/gmail/message.rb",
|
29
|
+
"lib/ietf/rfc2045.rb",
|
30
|
+
"lib/ietf/rfc822.rb",
|
31
|
+
"lib/mime/entity.rb",
|
32
|
+
"lib/mime/entity_tmail.rb",
|
33
|
+
"lib/mime/message.rb",
|
34
|
+
"lib/smtp_tls.rb",
|
35
|
+
"ruby-gmail.gemspec",
|
36
|
+
"test/test_gmail.rb",
|
37
|
+
"test/test_helper.rb"
|
38
|
+
]
|
39
|
+
s.homepage = %q{http://dcparker.github.com/ruby-gmail}
|
40
|
+
s.post_install_message = %q{
|
41
|
+
[34mIf ruby-gmail saves you TWO hours of work, want to compensate me for, like, a half-hour?
|
42
|
+
Support me in making new and better gems:[0m [31;4mhttp://pledgie.com/campaigns/7087[0m
|
43
|
+
|
44
|
+
}
|
45
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
46
|
+
s.require_paths = ["lib"]
|
47
|
+
s.rubygems_version = %q{1.3.6}
|
48
|
+
s.summary = %q{A Rubyesque interface to Gmail, with all the tools you'll need.}
|
49
|
+
s.test_files = [
|
50
|
+
"test/test_gmail.rb",
|
51
|
+
"test/test_helper.rb"
|
52
|
+
]
|
53
|
+
|
54
|
+
if s.respond_to? :specification_version then
|
55
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
56
|
+
s.specification_version = 3
|
57
|
+
|
58
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
59
|
+
s.add_runtime_dependency(%q<shared-mime-info>, [">= 0"])
|
60
|
+
else
|
61
|
+
s.add_dependency(%q<shared-mime-info>, [">= 0"])
|
62
|
+
end
|
63
|
+
else
|
64
|
+
s.add_dependency(%q<shared-mime-info>, [">= 0"])
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
+
- 1
|
7
8
|
- 0
|
8
|
-
|
9
|
-
version: 0.0.9
|
9
|
+
version: 0.1.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- BehindLogic
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-
|
17
|
+
date: 2010-05-05 00:00:00 -04:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -39,6 +39,7 @@ extra_rdoc_files:
|
|
39
39
|
- README.markdown
|
40
40
|
files:
|
41
41
|
- .autotest
|
42
|
+
- .gitignore
|
42
43
|
- History.txt
|
43
44
|
- Manifest.txt
|
44
45
|
- README.markdown
|
@@ -53,6 +54,7 @@ files:
|
|
53
54
|
- lib/mime/entity_tmail.rb
|
54
55
|
- lib/mime/message.rb
|
55
56
|
- lib/smtp_tls.rb
|
57
|
+
- ruby-gmail.gemspec
|
56
58
|
- test/test_gmail.rb
|
57
59
|
- test/test_helper.rb
|
58
60
|
has_rdoc: true
|