imap-filter 0.0.2 → 0.0.3

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: bd4508c320978c8e671d778d278acb636f4e53a4
4
- data.tar.gz: 2d7b0f4d4002bb82aaaf369e8d4d79b4f7ad6dea
3
+ metadata.gz: 2c399442d61849b86b6ab7f58a8d8e5e8e01566f
4
+ data.tar.gz: d19e15efc6dc6fdd1ad25a547fd2abac18cc1d95
5
5
  SHA512:
6
- metadata.gz: fdd58ff83f6b8ff66e942bb44f42eb11ebd68d508540fdc24ab25e3bd17658424edfe589cce2a55cb5978e9a43610512617e359f9f6d4858a067f827655f2e14
7
- data.tar.gz: 7f7acc334eb004be3eb61c71dd1d9a7c4c06db4816246a8e9097fc18e3ffda81c0fc93d0489e7da8293834e6885299d1709796ca59ebd216a7ee7333030bcd52
6
+ metadata.gz: c8d3cc7800137f896ba21e5cb838b222379673a8d968060f1c530af56a572a2b75650bccba54336294725cefd6ddaeaa36dca1eebc694149ecc3877b43bf2bb4
7
+ data.tar.gz: 76210364367885058ab7bb22adf455579383d60d580f598b53758b4b7e1ee11174c478034c1f6d18b91cfdd4ddad64ac6619e19f2436f5cafd8f06dff20a0afb
data/.semver CHANGED
@@ -1,5 +1,5 @@
1
1
  ---
2
2
  :major: 0
3
3
  :minor: 0
4
- :patch: 2
4
+ :patch: 3
5
5
  :special: ''
data/Gemfile CHANGED
@@ -5,6 +5,7 @@ gem "awesome_print", "~> 1"
5
5
  gem "text-table", "~> 1"
6
6
  gem "thor", "~> 0"
7
7
  gem "colorize", "~> 0"
8
+ gem "aspector", "~> 0"
8
9
 
9
10
  # Add dependencies to develop your gem here.
10
11
  # Include everything needed to run rake, tests, features, etc.
data/Gemfile.lock CHANGED
@@ -2,17 +2,18 @@ GEM
2
2
  remote: https://rubygems.org/
3
3
  specs:
4
4
  addressable (2.4.0)
5
+ aspector (0.14.0)
5
6
  awesome_print (1.7.0)
6
7
  binding_of_caller (0.7.2)
7
8
  debug_inspector (>= 0.0.1)
8
9
  builder (3.2.2)
9
- byebug (9.0.5)
10
+ byebug (9.0.6)
10
11
  coderay (1.1.1)
11
12
  colorize (0.8.1)
12
13
  debug_inspector (0.0.2)
13
14
  descendants_tracker (0.0.4)
14
15
  thread_safe (~> 0.3, >= 0.3.1)
15
- diff-lcs (1.1.3)
16
+ diff-lcs (1.2.5)
16
17
  docile (1.1.5)
17
18
  faraday (0.9.2)
18
19
  multipart-post (>= 1.2, < 3)
@@ -76,14 +77,14 @@ GEM
76
77
  rake (11.3.0)
77
78
  rdoc (3.12.2)
78
79
  json (~> 1.4)
79
- rspec (2.8.0)
80
- rspec-core (~> 2.8.0)
81
- rspec-expectations (~> 2.8.0)
82
- rspec-mocks (~> 2.8.0)
83
- rspec-core (2.8.0)
84
- rspec-expectations (2.8.0)
85
- diff-lcs (~> 1.1.2)
86
- rspec-mocks (2.8.0)
80
+ rspec (2.99.0)
81
+ rspec-core (~> 2.99.0)
82
+ rspec-expectations (~> 2.99.0)
83
+ rspec-mocks (~> 2.99.0)
84
+ rspec-core (2.99.2)
85
+ rspec-expectations (2.99.2)
86
+ diff-lcs (>= 1.1.3, < 2.0)
87
+ rspec-mocks (2.99.4)
87
88
  semver (1.0.1)
88
89
  simplecov (0.12.0)
89
90
  docile (~> 1.1.0)
@@ -100,6 +101,7 @@ PLATFORMS
100
101
  ruby
101
102
 
102
103
  DEPENDENCIES
104
+ aspector (~> 0)
103
105
  awesome_print (~> 1)
104
106
  bundler (~> 1)
105
107
  colorize (~> 0)
data/README.org CHANGED
@@ -223,7 +223,7 @@
223
223
  to do is search a single field, like in this case, the From
224
224
  field.
225
225
 
226
- Others are obvios: to:, cc:, subject: will all work here.
226
+ Others are obvios: to:, cc:, subject: will all work here.no-expand
227
227
 
228
228
  *** Environment variables
229
229
  | Variable | Description |
@@ -279,9 +279,11 @@
279
279
 
280
280
  ** Release Notes and Known Issues
281
281
  *** Release Notes
282
- | Version | Breif | Description |
283
- |---------+-----------------+-------------|
284
- | v0.0.2 | Initial Release | |
282
+ | Version | Breif | Description |
283
+ |---------+------------------------+--------------------------------------------------------------------------------------------------------------------------------|
284
+ | v0.0.2 | Initial Release | |
285
+ | v0.0.3 | Fixed bug with timeout | On some lengthy remove copy/move operations, the source account can timeout. We do a simple NOOP to keep the connection alive. |
286
+
285
287
  *** Known Issues
286
288
  | Date | Description |
287
289
  |------------+----------------------------------------------------------------|
@@ -319,3 +321,10 @@
319
321
  acc.imap.fetch(1..2, 'BODY[TEXT]') -- the entire text, flags as well.
320
322
  acc.imap.fetch(1..2, 'BODY[HEADER.FIELDS (SUBJECT)]')
321
323
  :END:
324
+
325
+
326
+ :Syswrite:
327
+ IOError: closed stream
328
+ from 2.3.1/lib/ruby/2.3.0/openssl/buffering.rb:322:in `syswrite'
329
+ :END:
330
+
@@ -49,6 +49,12 @@ filter :neat, 'yahoo:NEAT', :unseen do
49
49
  mark :seen
50
50
  end
51
51
 
52
+ filter :science, 'yahoo:Wissenschaft', :unseen do
53
+ cp 'gmx:Lists/Wissenschaft'
54
+ mark :seen
55
+ end
56
+
57
+
52
58
  filter :spam, 'gmx:INBOX', from: ['news.brgmedia.com', 'travel.hoteltravel-email.com'] do
53
59
  delete
54
60
  end
data/imap-filter.gemspec CHANGED
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: imap-filter 0.0.2 ruby lib
5
+ # stub: imap-filter 0.0.3 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "imap-filter"
9
- s.version = "0.0.2"
9
+ s.version = "0.0.3"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["Fred Mitchell"]
14
- s.date = "2016-09-25"
14
+ s.date = "2016-10-01"
15
15
  s.description = "\n imap-filter is a Ruby implementation of an IMAP filtering application.\n it can handle multiple IMAP accounts, and create IMAP folders automatically\n where none exists.\n\n The imap-filter DSL makes it easy to filter. You can also do \"dry-runs\"\n to make sure what happens is what is expected."
16
16
  s.email = "fred.mitchell@gmx.de"
17
17
  s.executables = ["imap-filter"]
@@ -56,6 +56,7 @@ Gem::Specification.new do |s|
56
56
  s.add_runtime_dependency(%q<text-table>, ["~> 1"])
57
57
  s.add_runtime_dependency(%q<thor>, ["~> 0"])
58
58
  s.add_runtime_dependency(%q<colorize>, ["~> 0"])
59
+ s.add_runtime_dependency(%q<aspector>, ["~> 0"])
59
60
  s.add_development_dependency(%q<rspec>, ["~> 2"])
60
61
  s.add_development_dependency(%q<yard>, ["~> 0"])
61
62
  s.add_development_dependency(%q<rdoc>, ["~> 3"])
@@ -74,6 +75,7 @@ Gem::Specification.new do |s|
74
75
  s.add_dependency(%q<text-table>, ["~> 1"])
75
76
  s.add_dependency(%q<thor>, ["~> 0"])
76
77
  s.add_dependency(%q<colorize>, ["~> 0"])
78
+ s.add_dependency(%q<aspector>, ["~> 0"])
77
79
  s.add_dependency(%q<rspec>, ["~> 2"])
78
80
  s.add_dependency(%q<yard>, ["~> 0"])
79
81
  s.add_dependency(%q<rdoc>, ["~> 3"])
@@ -93,6 +95,7 @@ Gem::Specification.new do |s|
93
95
  s.add_dependency(%q<text-table>, ["~> 1"])
94
96
  s.add_dependency(%q<thor>, ["~> 0"])
95
97
  s.add_dependency(%q<colorize>, ["~> 0"])
98
+ s.add_dependency(%q<aspector>, ["~> 0"])
96
99
  s.add_dependency(%q<rspec>, ["~> 2"])
97
100
  s.add_dependency(%q<yard>, ["~> 0"])
98
101
  s.add_dependency(%q<rdoc>, ["~> 3"])
data/lib/imap-filter.rb CHANGED
@@ -6,6 +6,7 @@ require 'colorize'
6
6
  require 'awesome_print'
7
7
  require 'net/imap'
8
8
  require 'forwardable'
9
+ require 'aspector'
9
10
 
10
11
  module ImapFilter
11
12
  end
@@ -77,6 +77,7 @@ module ImapFilter
77
77
  else
78
78
  @imap = Net::IMAP.new(fqdn, ssl: use_ssl)
79
79
  end
80
+ @imap.account = self
80
81
 
81
82
  print "\n *** auth #{userid} pass #{pass}...".light_cyan unless _options[:verbose] < 2
82
83
  imap.authenticate(auth_type, userid, pass)
@@ -79,6 +79,7 @@ module ImapFilter
79
79
  end
80
80
  raw = fdat.attr['ENVELOPE'].email_header + fdat.attr[BODYTEXT]
81
81
  dest_acc.imap.append dest_mbox, raw, fdat.attr['FLAGS']
82
+ acc.imap.noop # just to keep this account open TODO: we do not need a noop on every iteration
82
83
  end
83
84
  rescue => e
84
85
  puts "ERROR: #{e} -- perhaps you did a move or delete operation before copy?".light_red
@@ -116,6 +117,7 @@ module ImapFilter
116
117
 
117
118
  def mark *flags
118
119
  puts " mark #{flags} in #{acc.name}".light_blue unless _options[:verbose] < 1
120
+ puts "DISCONNECTED".light_red if acc.imap.disconnected?
119
121
  acc.imap.store seq, '+FLAGS.SILENT', flags unless seq.empty? or _options[:dryrun]
120
122
  end
121
123
 
@@ -34,4 +34,16 @@ class Net::IMAP::Envelope
34
34
  end
35
35
  end
36
36
 
37
+ class Net::IMAP
38
+ def account= acc
39
+ @account = acc
40
+ end
41
+ def account
42
+ @account
43
+ end
44
+ end
45
+
46
+ class IMAPHooks < Aspector::Base
47
+ default private_methods: true
48
+ end
37
49
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: imap-filter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fred Mitchell
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-25 00:00:00.000000000 Z
11
+ date: 2016-10-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: semver
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: aspector
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: rspec
85
99
  requirement: !ruby/object:Gem::Requirement