mailhandler 1.0.10 → 1.0.11

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a290f9049b44faf3abc87592583dfd76063c5442
4
- data.tar.gz: 61bdcf1d9d8c1355463d5e7bc0678158e7087864
3
+ metadata.gz: c27c5a6bcd4af8802a454e343c1e7978b655e237
4
+ data.tar.gz: eb4a2f4637c35f9b63c46727d190a0328eb9d210
5
5
  SHA512:
6
- metadata.gz: c9c6e5a41a9f4dbb9ec1631be903839104f52fd10a1aec1d182dd9a320131481b29b79ad22c5368d40b7e422b77699fd3a567e2c59f7002f0b48683234020007
7
- data.tar.gz: 6409f13a167cef7deaf8ebb9aac4be757626f5a39d148b77667f26e3da5025852d0f84a7d49078203d7c19e969a62aae525b7b1b810eb449b4ccc5075e23c56f
6
+ metadata.gz: 166964ab0416a5c07492eb73ec3626f041f77712dda85c3807372ba1472ceb658120c42e7f41af9aa92d2b3e4829fc0d8b909aefc52ab107144e75461e8be932
7
+ data.tar.gz: 6982dcdf0315ede236c6118c5f4af5270b3c91c4305f4e212fbe7126ac95b592079c6823af912573b7a34a49d4da14e5506df4854aad3775e2dcde97922ac1bf
@@ -10,5 +10,6 @@ module MailHandler
10
10
 
11
11
  class UnknownError < Error; end
12
12
  class TypeError < Error; end
13
+ class FileError < Error; end
13
14
 
14
15
  end
@@ -26,6 +26,7 @@ module MailHandler
26
26
  def find(options)
27
27
 
28
28
  verify_and_set_search_options(options)
29
+ verify_mailbox_folders
29
30
  email_files = find_files(search_options)
30
31
 
31
32
  unless email_files.empty?
@@ -42,7 +43,7 @@ module MailHandler
42
43
  private
43
44
 
44
45
  # filter options which need to be done by searching files
45
- FILE_SEARCH_OPTIONS = {
46
+ FILE_SEARCH_CLASSES = {
46
47
 
47
48
  :by_subject => Filter::ByContent,
48
49
  :by_content => Filter::ByContent,
@@ -67,7 +68,7 @@ module MailHandler
67
68
 
68
69
  end
69
70
 
70
- # find files by FILE_SEARCH_OPTIONS options
71
+ # find files by FILE_SEARCH_CLASSES options
71
72
  # this will ignore filter criteria options which can't be done on files directly
72
73
  def find_files(options)
73
74
 
@@ -75,7 +76,7 @@ module MailHandler
75
76
 
76
77
  options.each do |key, value|
77
78
 
78
- files = (files & FILE_SEARCH_OPTIONS[key].new(value).get(search_pattern)) if FILE_SEARCH_OPTIONS[key] != nil
79
+ files = (files & FILE_SEARCH_CLASSES[key].new(value).get(search_pattern)) if FILE_SEARCH_CLASSES[key] != nil
79
80
 
80
81
  end
81
82
 
@@ -85,33 +86,31 @@ module MailHandler
85
86
 
86
87
  def move_files(files)
87
88
 
88
- setup_inbox_folders
89
-
90
89
  files.each do |file|
91
90
 
92
91
  file = File.basename(file)
92
+ (inbox_folder == archive_folder)? delete_file(file) : archive_file(file)
93
93
 
94
- if inbox_folder != archive_folder
94
+ end
95
95
 
96
- FileUtils.mv("#{inbox_folder}/#{file}", "#{archive_folder}/#{file}")
96
+ end
97
97
 
98
- else
98
+ def archive_file(file)
99
99
 
100
- FileUtils.rm_r "#{inbox_folder}/#{file}", :force => true
100
+ FileUtils.mv("#{inbox_folder}/#{file}", "#{archive_folder}/#{file}")
101
101
 
102
- end
102
+ end
103
103
 
104
- end
104
+ def delete_file(file)
105
105
 
106
- end
106
+ FileUtils.rm_r "#{inbox_folder}/#{file}", :force => true
107
107
 
108
- # create folders if they don't exist
109
- def setup_inbox_folders
108
+ end
110
109
 
111
- raise MailHandler::Error, 'Folder variables are not set' if inbox_folder.nil? or archive_folder.nil?
110
+ def verify_mailbox_folders
112
111
 
113
- Dir::mkdir inbox_folder unless File.directory? inbox_folder
114
- Dir::mkdir archive_folder unless File.directory? archive_folder
112
+ raise MailHandler::Error, 'Folder variables are not set.' if inbox_folder.nil? or archive_folder.nil?
113
+ raise MailHandler::FileError, 'Mailbox folders do not exist.' unless File.directory? inbox_folder and File.directory? archive_folder
115
114
 
116
115
  end
117
116
 
@@ -122,6 +122,7 @@ module MailHandler
122
122
 
123
123
  else
124
124
 
125
+ # do nothing
125
126
 
126
127
  end
127
128
 
@@ -1,5 +1,5 @@
1
1
  module MailHandler
2
2
 
3
- VERSION = '1.0.10'
3
+ VERSION = '1.0.11'
4
4
 
5
5
  end
@@ -199,9 +199,15 @@ describe MailHandler::Receiving::FolderChecker do
199
199
 
200
200
  context 'archiving emails' do
201
201
 
202
+ before(:each) {
203
+
204
+ FileUtils.mkdir "#{data_folder}/checked" unless Dir.exists? "#{data_folder}/checked"
205
+
206
+ }
207
+
202
208
  after(:each) {
203
209
 
204
- FileUtils.rm_r "#{data_folder}/checked", :force => true
210
+ FileUtils.rm_r "#{data_folder}/checked", :force => false if Dir.exists? "#{data_folder}"
205
211
 
206
212
  }
207
213
 
@@ -235,7 +241,6 @@ describe MailHandler::Receiving::FolderChecker do
235
241
  checker_archive.find({:by_subject => mail.subject, :archive => true})
236
242
  expect(checker_archive.found_emails).to be_empty
237
243
 
238
-
239
244
  end
240
245
 
241
246
  end
@@ -246,4 +251,23 @@ describe MailHandler::Receiving::FolderChecker do
246
251
 
247
252
  end
248
253
 
254
+ context 'invalid folders' do
255
+
256
+ it 'inbox folder' do
257
+
258
+ checker = MailHandler::Receiving::FolderChecker.new('test', data_folder)
259
+ expect { checker.find :count => 1 }.to raise_error MailHandler::FileError
260
+
261
+ end
262
+
263
+ it 'archive folder' do
264
+
265
+ checker = MailHandler::Receiving::FolderChecker.new(data_folder, 'test')
266
+ expect { checker.find :count => 1 }.to raise_error MailHandler::FileError
267
+
268
+ end
269
+
270
+ end
271
+
272
+
249
273
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mailhandler
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.10
4
+ version: 1.0.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Igor Balos