broom 0.3.2 → 0.3.3

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.
Files changed (3) hide show
  1. data/README.markdown +21 -2
  2. data/lib/broom.rb +10 -11
  3. metadata +5 -3
data/README.markdown CHANGED
@@ -18,8 +18,27 @@ using the 'success_dir' and 'failure_dir' options.
18
18
 
19
19
  gem install broom
20
20
 
21
- ## Example
21
+ ## Examples
22
22
 
23
23
  Broom.sweep('/dropbox') do |f|
24
24
  Resque.enqueue(Job, "#{File.dirname(f)}/_success/#{File.basename(f)}")
25
- end
25
+ end
26
+
27
+ ---
28
+
29
+ threads = []
30
+
31
+ threads << Thread.new do
32
+ Broom.sweep('/foo') do |f|
33
+ # do something
34
+ end
35
+ end
36
+
37
+ threads << Thread.new do
38
+ Broom.sweep('/bar') do |f|
39
+ # do something
40
+ end
41
+ end
42
+
43
+ threads.each { |x| x.join }
44
+
data/lib/broom.rb CHANGED
@@ -1,13 +1,7 @@
1
1
  require 'fileutils'
2
2
 
3
- Signal.trap('INT') do
4
- $stdout.puts "throwing in the towel..."
5
- exit
6
- end
7
-
8
3
  module Broom
9
-
10
- VERSION = '0.3.2'
4
+ VERSION = '0.3.3'
11
5
 
12
6
  class Directory
13
7
 
@@ -31,7 +25,7 @@ module Broom
31
25
  }
32
26
  files
33
27
  end
34
-
28
+
35
29
  end
36
30
 
37
31
  extend self
@@ -44,14 +38,19 @@ module Broom
44
38
  puts "#{Time.now.strftime('%Y-%m-%d %H:%M:%S')}: #{msg}" if options[:log]
45
39
  end
46
40
 
47
- loop do
41
+ Signal.trap('INT') do
42
+ log.call("stopping...")
43
+ @do_work = false
44
+ end
45
+
46
+ begin
48
47
  cache = dir.entries
49
48
  sleep(options[:sleep] || 1)
50
49
 
51
50
  cache.each do |file, modified_at|
52
51
  next if modified_at != File.mtime(file)
53
52
  begin
54
- yield(file)
53
+ yield(file, File.dirname(file), File.basename(file), File.extname(file))
55
54
  rescue Object => boom
56
55
  log.call("failure: #{File.basename(file)} [#{boom.message}]")
57
56
  FileUtils.mv(file, dir.failure_dir)
@@ -60,7 +59,7 @@ module Broom
60
59
  FileUtils.mv(file, dir.success_dir)
61
60
  end
62
61
  end
63
- end
62
+ end while @do_work
64
63
  end
65
64
 
66
65
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: broom
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.3.2
5
+ version: 0.3.3
6
6
  platform: ruby
7
7
  authors:
8
8
  - Daniel Johnston
@@ -10,7 +10,8 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-05-29 00:00:00 Z
13
+ date: 2011-08-14 00:00:00 -05:00
14
+ default_executable:
14
15
  dependencies: []
15
16
 
16
17
  description: " A small module for watching a directory for new files.\n"
@@ -26,6 +27,7 @@ files:
26
27
  - LICENSE
27
28
  - Rakefile
28
29
  - lib/broom.rb
30
+ has_rdoc: true
29
31
  homepage: https://github.com/drfeelngood/broom
30
32
  licenses: []
31
33
 
@@ -49,7 +51,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
49
51
  requirements: []
50
52
 
51
53
  rubyforge_project:
52
- rubygems_version: 1.7.2
54
+ rubygems_version: 1.6.2
53
55
  signing_key:
54
56
  specification_version: 3
55
57
  summary: Simple file picker-upper