redimap 0.3.1 → 0.4.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.
- checksums.yaml +4 -4
- data/README.md +6 -10
- data/bin/redimap +86 -4
- data/lib/redimap/base.rb +3 -1
- data/lib/redimap/config.rb +11 -12
- data/lib/redimap/version.rb +1 -1
- data/lib/redimap.rb +1 -0
- data/spec/lib/redimap/config_spec.rb +46 -39
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8ba76df09385c366a60e9b398d4b4609a26aa651
|
4
|
+
data.tar.gz: 7c513536095b241ea1614e84efb333c26845bc4f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e9d01fb5a28bba8e1df681f42708550e7af1d76ff1ebafd15a8ee77f4af14220e149e8427f5f0b29f9d183023fa95caf259d9d475fbf0c182817a0c2ee478583
|
7
|
+
data.tar.gz: 0da97e1f2f3328fdbec7d8cb4b678c3ef01a25a5249fc289dc5d5cd0ffc72ecc19d34935f2ff7f76742a15e969412aec33ba1b28c95b8ea323b43b541406f399
|
data/README.md
CHANGED
@@ -18,21 +18,17 @@ Install using:
|
|
18
18
|
|
19
19
|
## Usage
|
20
20
|
|
21
|
-
|
22
|
-
Foreman. You'll probably want to at least set:
|
21
|
+
View the available options:
|
23
22
|
|
24
|
-
|
25
|
-
IMAP_USERNAME=username@example.com
|
26
|
-
IMAP_PASSWORD=ssssshhhhhhh
|
27
|
-
IMAP_MAILBOXES=["INBOX","Sent"]
|
23
|
+
$ bundle exec redimap --help
|
28
24
|
|
29
|
-
|
25
|
+
Most settings have defaults, but it is necessary to at least set up IMAP.
|
30
26
|
|
31
|
-
|
27
|
+
Check and queue new messages and quit:
|
32
28
|
|
33
|
-
|
29
|
+
$ bundle exec redimap --host mail.example.com --user a@example.com --password helpimacarrot
|
34
30
|
|
35
|
-
|
31
|
+
Use `--eternal` to run eternally.
|
36
32
|
|
37
33
|
|
38
34
|
## Contributions
|
data/bin/redimap
CHANGED
@@ -6,8 +6,6 @@ require 'optparse'
|
|
6
6
|
|
7
7
|
require File.expand_path(File.dirname(__FILE__) + '/../lib/redimap')
|
8
8
|
|
9
|
-
@logger = Redimap.logger
|
10
|
-
|
11
9
|
|
12
10
|
# = Parse opts
|
13
11
|
|
@@ -16,12 +14,96 @@ options = {}
|
|
16
14
|
OptionParser.new do |opts|
|
17
15
|
opts.banner = "Usage: redimap [options]"
|
18
16
|
|
19
|
-
opts.
|
20
|
-
|
17
|
+
opts.separator ""
|
18
|
+
opts.separator "Polling:"
|
19
|
+
|
20
|
+
opts.on("-e", "--[no-]eternal", "Run eternally") do |o|
|
21
|
+
options[:eternal] = o
|
22
|
+
end
|
23
|
+
|
24
|
+
opts.on("--polling-interval [N]", "Poll every N seconds when --eternal") do |o|
|
25
|
+
options[:polling_interval] = o
|
26
|
+
end
|
27
|
+
|
28
|
+
opts.separator ""
|
29
|
+
opts.separator "IMAP:"
|
30
|
+
|
31
|
+
opts.on("-h", "--imap-host HOST", "Connect IMAP with HOST") do |o|
|
32
|
+
options[:imap_host] = o
|
33
|
+
end
|
34
|
+
|
35
|
+
opts.on("--imap-port [PORT]", Integer, "Connect IMAP with PORT") do |o|
|
36
|
+
options[:imap_port] = o
|
37
|
+
end
|
38
|
+
|
39
|
+
opts.on("-u", "--imap-username USERNAME", "Connect IMAP with USERNAME") do |o|
|
40
|
+
options[:imap_username] = o
|
41
|
+
end
|
42
|
+
|
43
|
+
opts.on("-p", "--imap-password PASSWORD", "Connect IMAP with PASSWORD") do |o|
|
44
|
+
options[:imap_password] = o
|
45
|
+
end
|
46
|
+
|
47
|
+
opts.on("--imap-mailboxes [INBOX,IN]", Array, "Read IMAP MAILBOXES") do |o|
|
48
|
+
options[:imap_mailboxes] = o
|
49
|
+
end
|
50
|
+
|
51
|
+
opts.separator ""
|
52
|
+
opts.separator "Redis:"
|
53
|
+
|
54
|
+
opts.on("--redis-url [URL]", "Connect Redis to URL") do |o|
|
55
|
+
options[:redis_url] = o
|
56
|
+
end
|
57
|
+
|
58
|
+
opts.on("--redis-ns-redimap [NS]", "Namespace Redis 'redimap:' as NS") do |o|
|
59
|
+
options[:redis_ns_redimap] = o
|
60
|
+
end
|
61
|
+
|
62
|
+
opts.on("--redis-ns-queue [NS]", "Namespace Redis 'resque:' as NS") do |o|
|
63
|
+
options[:redis_ns_queue] = o
|
64
|
+
end
|
65
|
+
|
66
|
+
opts.separator ""
|
67
|
+
opts.separator "Other:"
|
68
|
+
|
69
|
+
opts.on("-v", "--[no-]verbose", "Be somewhat verbose") do |o|
|
70
|
+
options[:verbose] = o
|
71
|
+
end
|
72
|
+
|
73
|
+
opts.on_tail("--help", "Show this message") do
|
74
|
+
puts opts
|
75
|
+
exit
|
76
|
+
end
|
77
|
+
|
78
|
+
opts.on_tail("--version", "Show version") do
|
79
|
+
puts "Redimap version:#{Redimap::VERSION}"
|
80
|
+
exit
|
21
81
|
end
|
22
82
|
end.parse!
|
23
83
|
|
24
84
|
|
85
|
+
# = Configure
|
86
|
+
|
87
|
+
Redimap.configure do |c|
|
88
|
+
c.log_level = 'DEBUG' if options[:verbose]
|
89
|
+
|
90
|
+
c.imap_host = options[:imap_host] if options[:imap_host]
|
91
|
+
c.imap_port = options[:imap_port] if options[:imap_port]
|
92
|
+
c.imap_username = options[:imap_username] if options[:imap_username]
|
93
|
+
c.imap_password = options[:imap_password] if options[:imap_password]
|
94
|
+
|
95
|
+
c.imap_mailboxes = options[:imap_mailboxes] if options[:imap_mailboxes]
|
96
|
+
|
97
|
+
c.redis_url = options[:redis_url] if options[:redis_url]
|
98
|
+
c.redis_ns_redimap = options[:redis_ns_redimap] if options[:redis_ns_redimap]
|
99
|
+
c.redis_ns_queue = options[:redis_ns_queue] if options[:redis_ns_queue]
|
100
|
+
|
101
|
+
c.polling_interval = options[:polling_interval] if options[:polling_interval]
|
102
|
+
end
|
103
|
+
|
104
|
+
@logger = Redimap.logger
|
105
|
+
|
106
|
+
|
25
107
|
# = Main loop
|
26
108
|
|
27
109
|
loop do
|
data/lib/redimap/base.rb
CHANGED
@@ -9,13 +9,15 @@ module Redimap
|
|
9
9
|
|
10
10
|
def self.configure
|
11
11
|
yield self.config
|
12
|
+
|
13
|
+
Redimap.logger.debug { "Configured #{Redimap.config.to_s}" }
|
12
14
|
end
|
13
15
|
|
14
16
|
def self.logger
|
15
17
|
unless @logger
|
16
18
|
@logger = Logger.new($stdout)
|
17
19
|
|
18
|
-
@logger.level = Logger.const_get(
|
20
|
+
@logger.level = Logger.const_get(Redimap.config.log_level)
|
19
21
|
@logger.progname = :Redimap
|
20
22
|
end
|
21
23
|
|
data/lib/redimap/config.rb
CHANGED
@@ -4,6 +4,8 @@ require 'json'
|
|
4
4
|
module Redimap
|
5
5
|
class Config
|
6
6
|
|
7
|
+
attr_accessor :log_level
|
8
|
+
|
7
9
|
attr_accessor :imap_host
|
8
10
|
attr_accessor :imap_port
|
9
11
|
attr_accessor :imap_username
|
@@ -18,26 +20,23 @@ module Redimap
|
|
18
20
|
attr_accessor :polling_interval
|
19
21
|
|
20
22
|
def initialize
|
21
|
-
@
|
22
|
-
|
23
|
-
@imap_host = ENV['IMAP_HOST']
|
24
|
-
@imap_port = ENV['IMAP_PORT'] || 993
|
25
|
-
@imap_username = ENV['IMAP_USERNAME']
|
26
|
-
@imap_password = ENV['IMAP_PASSWORD']
|
23
|
+
@log_level = 'INFO'
|
27
24
|
|
28
|
-
@
|
25
|
+
@imap_port = 993
|
29
26
|
|
30
|
-
@
|
31
|
-
@redis_ns_redimap = ENV['REDIS_NS_REDIMAP'] || "redimap"
|
32
|
-
@redis_ns_queue = ENV['REDIS_NS_QUEUE'] || "resque"
|
27
|
+
@imap_mailboxes = ['INBOX']
|
33
28
|
|
34
|
-
@
|
29
|
+
@redis_url = 'redis://127.0.0.1:6379/0'
|
30
|
+
@redis_ns_redimap = 'redimap'
|
31
|
+
@redis_ns_queue = 'resque'
|
35
32
|
|
36
|
-
@
|
33
|
+
@polling_interval = 60
|
37
34
|
end
|
38
35
|
|
39
36
|
def to_s
|
40
37
|
{
|
38
|
+
:log_level => @log_level,
|
39
|
+
|
41
40
|
:imap_host => @imap_host,
|
42
41
|
:imap_port => @imap_port,
|
43
42
|
:imap_username => @imap_username,
|
data/lib/redimap/version.rb
CHANGED
data/lib/redimap.rb
CHANGED
@@ -4,86 +4,93 @@ require 'spec_helper'
|
|
4
4
|
describe Redimap::Config do
|
5
5
|
|
6
6
|
context "Defaults" do
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
@config = Redimap::Config.new
|
7
|
+
it "log_level should default to INFO" do
|
8
|
+
Redimap.config.log_level.should == "INFO"
|
11
9
|
end
|
12
10
|
|
13
11
|
it "imap_port should default to 993" do
|
14
|
-
|
12
|
+
Redimap.config.imap_port.should == 993
|
15
13
|
end
|
16
14
|
|
17
15
|
it "imap_mailboxes should default to [INBOX]" do
|
18
|
-
|
16
|
+
Redimap.config.imap_mailboxes.should == ['INBOX']
|
19
17
|
end
|
20
18
|
|
21
19
|
it "redis_url should default to redis://127.0.0.1:6379/0" do
|
22
|
-
|
20
|
+
Redimap.config.redis_url.should == "redis://127.0.0.1:6379/0"
|
23
21
|
end
|
24
22
|
|
25
23
|
it "redis_ns_redimap should default to redimap" do
|
26
|
-
|
24
|
+
Redimap.config.redis_ns_redimap.should == "redimap"
|
27
25
|
end
|
28
26
|
|
29
27
|
it "redis_ns_queue should default to resque" do
|
30
|
-
|
28
|
+
Redimap.config.redis_ns_queue.should == "resque"
|
31
29
|
end
|
32
30
|
|
33
31
|
it "polling_interval should default to 60 seconds" do
|
34
|
-
|
32
|
+
Redimap.config.polling_interval.should == 60
|
35
33
|
end
|
36
34
|
end
|
37
35
|
|
38
36
|
context "Non-defaults" do
|
39
37
|
before(:each) do
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
38
|
+
Redimap.configure do |c|
|
39
|
+
c.log_level = "WARN"
|
40
|
+
|
41
|
+
c.imap_host = "imap.carrot.localhost"
|
42
|
+
c.imap_port = 666
|
43
|
+
c.imap_username = "Pachelbel"
|
44
|
+
c.imap_password = "Canon"
|
45
|
+
|
46
|
+
c.imap_mailboxes = ['INBOX', 'SENT']
|
47
|
+
|
48
|
+
c.redis_url = "redis://127.0.0.1:6379/1"
|
49
|
+
c.redis_ns_redimap = "brekyread"
|
50
|
+
c.redis_ns_queue = "sidekiq"
|
51
|
+
|
52
|
+
c.polling_interval = 300
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
it "log_level should get set" do
|
57
|
+
Redimap.config.log_level.should == "WARN"
|
51
58
|
end
|
52
59
|
|
53
|
-
it "imap_host should get set
|
54
|
-
|
60
|
+
it "imap_host should get set" do
|
61
|
+
Redimap.config.imap_host.should == "imap.carrot.localhost"
|
55
62
|
end
|
56
63
|
|
57
|
-
it "imap_port should get set
|
58
|
-
|
64
|
+
it "imap_port should get set" do
|
65
|
+
Redimap.config.imap_port.should == 666
|
59
66
|
end
|
60
67
|
|
61
|
-
it "imap_username should get set
|
62
|
-
|
68
|
+
it "imap_username should get set" do
|
69
|
+
Redimap.config.imap_username.should == "Pachelbel"
|
63
70
|
end
|
64
71
|
|
65
|
-
it "imap_password should get set
|
66
|
-
|
72
|
+
it "imap_password should get set" do
|
73
|
+
Redimap.config.imap_password.should == "Canon"
|
67
74
|
end
|
68
75
|
|
69
|
-
it "imap_mailboxes should get set
|
70
|
-
|
76
|
+
it "imap_mailboxes should get set" do
|
77
|
+
Redimap.config.imap_mailboxes.should == ['INBOX', 'SENT']
|
71
78
|
end
|
72
79
|
|
73
|
-
it "redis_url should get set
|
74
|
-
|
80
|
+
it "redis_url should get set" do
|
81
|
+
Redimap.config.redis_url.should == "redis://127.0.0.1:6379/1"
|
75
82
|
end
|
76
83
|
|
77
|
-
it "redis_ns_redimap should get set
|
78
|
-
|
84
|
+
it "redis_ns_redimap should get set" do
|
85
|
+
Redimap.config.redis_ns_redimap.should == "brekyread"
|
79
86
|
end
|
80
87
|
|
81
|
-
it "redis_ns_queue should get set
|
82
|
-
|
88
|
+
it "redis_ns_queue should get set" do
|
89
|
+
Redimap.config.redis_ns_queue.should == "sidekiq"
|
83
90
|
end
|
84
91
|
|
85
|
-
it "polling_interval should get set
|
86
|
-
|
92
|
+
it "polling_interval should get set" do
|
93
|
+
Redimap.config.polling_interval.should == 300
|
87
94
|
end
|
88
95
|
end
|
89
96
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redimap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- tiredpixel
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-04-
|
11
|
+
date: 2013-04-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: redis
|