broom 0.3.1 → 0.3.2

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 (4) hide show
  1. data/README.markdown +9 -10
  2. data/Rakefile +4 -4
  3. data/lib/broom.rb +11 -5
  4. metadata +5 -18
data/README.markdown CHANGED
@@ -1,5 +1,5 @@
1
- Broom
2
- =====
1
+ # Broom
2
+
3
3
  A simple module to help monitor a directory for new files and perform an action
4
4
  on each new file. Broom periodically sweeps a directory, caching each file and its
5
5
  last modification time. After each sweep, Broom iterates through the cache and
@@ -14,13 +14,12 @@ using the 'success_dir' and 'failure_dir' options.
14
14
  /path/to/directory/_success
15
15
  /path/to/directory/_failure
16
16
 
17
- Installation
18
- ============
19
- gem install broom
17
+ ## Installation
18
+
19
+ gem install broom
20
20
 
21
- Examples
22
- ========
21
+ ## Example
23
22
 
24
- Broom.sweep('/tmp', :pattern => '*.pdf') do |file|
25
- Resque.enqueue(Job, file)
26
- end
23
+ Broom.sweep('/dropbox') do |f|
24
+ Resque.enqueue(Job, "#{File.dirname(f)}/_success/#{File.basename(f)}")
25
+ end
data/Rakefile CHANGED
@@ -5,14 +5,14 @@ $:.unshift(File.dirname(__FILE__))
5
5
  require 'lib/broom'
6
6
 
7
7
  desc "Publish gem and source."
8
- task :publish => :build do
8
+ task :publish => :gem do
9
9
  sh "gem push broom-#{Broom::VERSION}.gem"
10
10
  sh "git tag v#{Broom::VERSION}"
11
11
  sh "git push origin v#{Broom::VERSION}"
12
12
  sh "git push origin master"
13
13
  end
14
14
 
15
- desc "Build gem."
16
- task :build do
17
- puts "gem build broom.gemspec"
15
+ desc "Build broom gem."
16
+ task :gem do
17
+ sh "gem build broom.gemspec"
18
18
  end
data/lib/broom.rb CHANGED
@@ -7,7 +7,7 @@ end
7
7
 
8
8
  module Broom
9
9
 
10
- VERSION = '0.3.1'
10
+ VERSION = '0.3.2'
11
11
 
12
12
  class Directory
13
13
 
@@ -37,20 +37,26 @@ module Broom
37
37
  extend self
38
38
 
39
39
  def sweep(path, options={}, &block)
40
+ options[:log] ||= true
41
+
40
42
  dir = Directory.new(path, options)
43
+ log = lambda do |msg|
44
+ puts "#{Time.now.strftime('%Y-%m-%d %H:%M:%S')}: #{msg}" if options[:log]
45
+ end
46
+
41
47
  loop do
42
48
  cache = dir.entries
43
- sleep options[:sleep] || 1
44
-
49
+ sleep(options[:sleep] || 1)
50
+
45
51
  cache.each do |file, modified_at|
46
52
  next if modified_at != File.mtime(file)
47
53
  begin
48
54
  yield(file)
49
55
  rescue Object => boom
50
- puts "#{Time.now} : #{boom.class}: #{boom.message}"
51
- puts boom.backtrace.join("\n")
56
+ log.call("failure: #{File.basename(file)} [#{boom.message}]")
52
57
  FileUtils.mv(file, dir.failure_dir)
53
58
  else
59
+ log.call("success: #{File.basename(file)}")
54
60
  FileUtils.mv(file, dir.success_dir)
55
61
  end
56
62
  end
metadata CHANGED
@@ -1,13 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: broom
3
3
  version: !ruby/object:Gem::Version
4
- hash: 17
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 3
9
- - 1
10
- version: 0.3.1
4
+ prerelease:
5
+ version: 0.3.2
11
6
  platform: ruby
12
7
  authors:
13
8
  - Daniel Johnston
@@ -15,8 +10,7 @@ autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
12
 
18
- date: 2011-01-08 00:00:00 -06:00
19
- default_executable:
13
+ date: 2011-05-29 00:00:00 Z
20
14
  dependencies: []
21
15
 
22
16
  description: " A small module for watching a directory for new files.\n"
@@ -32,8 +26,7 @@ files:
32
26
  - LICENSE
33
27
  - Rakefile
34
28
  - lib/broom.rb
35
- has_rdoc: true
36
- homepage: http://github.com/djohnston/broom
29
+ homepage: https://github.com/drfeelngood/broom
37
30
  licenses: []
38
31
 
39
32
  post_install_message:
@@ -46,23 +39,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
46
39
  requirements:
47
40
  - - ">="
48
41
  - !ruby/object:Gem::Version
49
- hash: 3
50
- segments:
51
- - 0
52
42
  version: "0"
53
43
  required_rubygems_version: !ruby/object:Gem::Requirement
54
44
  none: false
55
45
  requirements:
56
46
  - - ">="
57
47
  - !ruby/object:Gem::Version
58
- hash: 3
59
- segments:
60
- - 0
61
48
  version: "0"
62
49
  requirements: []
63
50
 
64
51
  rubyforge_project:
65
- rubygems_version: 1.3.7
52
+ rubygems_version: 1.7.2
66
53
  signing_key:
67
54
  specification_version: 3
68
55
  summary: Simple file picker-upper