mailman 0.5.3 → 0.5.4

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/README.md CHANGED
@@ -14,8 +14,6 @@ end
14
14
 
15
15
  See the [User Guide](https://github.com/titanous/mailman/blob/master/USER_GUIDE.md) for more information.
16
16
 
17
- There is also a great [Getting Started Guide](http://dansowter.com/mailman-guide/) written by Dan Sowter.
18
-
19
17
 
20
18
  ## Installation
21
19
 
@@ -42,6 +40,7 @@ and my mentor was [Steven Soroka](http://github.com/ssoroka).
42
40
 
43
41
  - [Nicolas Aguttes](http://github.com/tranquiliste)
44
42
  - [Nathan Broadbent](https://github.com/ndbroadbent)
43
+ - [John Cant](https://github.com/johncant)
45
44
  - [Tim Carey-Smith](http://github.com/halorgium)
46
45
  - [Dan Cheail](https://github.com/DanCheail)
47
46
  - [Francis Chong](https://github.com/siuying)
@@ -18,10 +18,17 @@ module Mailman
18
18
  # @param [Hash] options the application options
19
19
  # @option options [true,false] :graceful_death catch interrupt signal and don't die until end of poll
20
20
  # @param [Proc] block a block with routes
21
+
21
22
  def initialize(&block)
22
23
  @router = Mailman::Router.new
23
24
  @processor = MessageProcessor.new(:router => @router)
24
- instance_eval(&block)
25
+
26
+ if Mailman.config.maildir
27
+ require 'maildir'
28
+ @maildir = Maildir.new(Mailman.config.maildir)
29
+ end
30
+
31
+ instance_eval(&block) if block_given?
25
32
  end
26
33
 
27
34
  def polling?
@@ -37,10 +44,12 @@ module Mailman
37
44
  def run
38
45
  Mailman.logger.info "Mailman v#{Mailman::VERSION} started"
39
46
 
40
- rails_env = File.join(Mailman.config.rails_root, 'config', 'environment.rb')
41
- if Mailman.config.rails_root && File.exist?(rails_env) && !(defined?(Rails) && Rails.env)
42
- Mailman.logger.info "Rails root found in #{Mailman.config.rails_root}, requiring environment..."
43
- require rails_env
47
+ if Mailman.config.rails_root
48
+ rails_env = File.join(Mailman.config.rails_root, 'config', 'environment.rb')
49
+ if File.exist?(rails_env) && !(defined?(Rails) && Rails.env)
50
+ Mailman.logger.info "Rails root found in #{Mailman.config.rails_root}, requiring environment..."
51
+ require rails_env
52
+ end
44
53
  end
45
54
 
46
55
  if Mailman.config.graceful_death
@@ -67,36 +76,31 @@ module Mailman
67
76
 
68
77
  # Maildir
69
78
  elsif Mailman.config.maildir
70
- require 'maildir'
71
79
 
72
80
  Mailman.logger.info "Maildir receiver enabled (#{Mailman.config.maildir})."
73
- @maildir = Maildir.new(Mailman.config.maildir)
74
81
 
75
- process_maildir
82
+ Mailman.logger.debug "Processing new message queue..."
83
+ @maildir.list(:new).each do |message|
84
+ @processor.process_maildir_message(message)
85
+ end
76
86
 
77
87
  if Mailman.config.watch_maildir
78
88
  require 'listen'
79
89
  Mailman.logger.debug "Monitoring the Maildir for new messages..."
80
90
 
81
91
  callback = Proc.new do |modified, added, removed|
82
- process_maildir
92
+ added.each do |new_file|
93
+ message = Maildir::Message.new(@maildir, "new/#{new_file}")
94
+ @processor.process_maildir_message(message)
95
+ end
83
96
  end
84
97
 
85
- @listener = Listen.to(File.join(Mailman.config.maildir, 'new')).change(&callback)
98
+ @listener = Listen.to(File.join(@maildir.path, 'new'), :relative_paths => true).change(&callback)
86
99
  @listener.start
87
100
  end
88
101
  end
89
102
  end
90
103
 
91
- # List all message in Maildir new directory and process it
92
- def process_maildir
93
- # Process messages queued in the new directory
94
- Mailman.logger.debug "Processing new message queue..."
95
- @maildir.list(:new).each do |message|
96
- @processor.process_maildir_message(message)
97
- end
98
- end
99
-
100
104
  private
101
105
 
102
106
  # Run the polling loop for the email inbox connection
@@ -38,11 +38,11 @@ module Mailman
38
38
  class BodyCondition < Condition
39
39
  def match(message)
40
40
  if message.multipart?
41
+ result = nil
41
42
  message.parts.each do |part|
42
- if result = @matcher.match(part.decoded)
43
- return result
44
- end
43
+ break if result = @matcher.match(part.decoded)
45
44
  end
45
+ return result
46
46
  else
47
47
  @matcher.match(message.body.decoded)
48
48
  end
@@ -1,3 +1,3 @@
1
1
  module Mailman
2
- VERSION = '0.5.3'
2
+ VERSION = '0.5.4'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mailman
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.3
4
+ version: 0.5.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-30 00:00:00.000000000 Z
12
+ date: 2013-01-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mail