filewatcher 0.2.0 → 0.2.1

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 18429964b2631c8f50fc42b2a919d3dd859608cd
4
+ data.tar.gz: e1206dff831c1bb8d2495cc4110b21971c2e6c33
5
+ SHA512:
6
+ metadata.gz: 38c927c846a8844443afb7cb0b403ede8eac5205f3d6833a4220d1e5e6bece967e33602adcdba5b44b922e12bf3300e5043acfb35922067d7cce486de50ddd77
7
+ data.tar.gz: 6d732bb3d0cfae8f6c57f5477077ccbc9a3b43b631ec58336f8b5953186233b9cdf8bec08fe136e857d747d6f08b1e9a45b7b9ac799e76c3119c1f4f67e0bda1
@@ -29,7 +29,7 @@ Run any javascript in current folder when it is updated on Linux/OSX:
29
29
 
30
30
  In Windows Powershell:
31
31
 
32
- > filewatcher *.js "node %FILENAME%"
32
+ > filewatcher *.js "node %FILENAME%"
33
33
 
34
34
  Run the ruby script when it is changed:
35
35
 
@@ -81,12 +81,23 @@ Print the names of files beeing watched before we begin:
81
81
  => Watching files:
82
82
  lib/filewatcher.rb
83
83
 
84
- To check for changes more often than once every second:
84
+ To check for changes more often than the default once every second:
85
85
 
86
86
  FileWatcher.new(["README.rdoc"]).watch(0.5) do |filename|
87
87
  puts "Updated " + filename
88
88
  end
89
89
 
90
+ To detect if a file is updated or deleted:
91
+
92
+ FileWatcher.new(["README.rdoc"]).watch() do |filename, event|
93
+ if(event == :changed)
94
+ puts "Updated " + filename
95
+ end
96
+ if(event == :deleted)
97
+ puts "Deleted " + filename
98
+ end
99
+ end
100
+
90
101
  = TODO
91
102
 
92
103
  The Ruby API is fairly well tested but the command line program is buggy at the time beeing.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.0
1
+ 0.2.1
@@ -4,7 +4,7 @@
4
4
  class FileWatcher
5
5
 
6
6
  def self.VERSION
7
- return "0.2.0"
7
+ return "0.2.1"
8
8
  end
9
9
 
10
10
  def initialize(filenames,print_filelist=false)
@@ -31,6 +31,7 @@ class FileWatcher
31
31
  @last_mtimes[filename] = File.stat(filename).mtime
32
32
  end
33
33
  @filenames = filenames
34
+ @deleted_files = []
34
35
  end
35
36
 
36
37
  def watch(sleep=1, &on_update)
@@ -40,23 +41,31 @@ class FileWatcher
40
41
  rescue SystemExit,Interrupt
41
42
  Kernel.exit
42
43
  end
43
- yield @updated_file
44
+ yield @updated_file, @event
44
45
  end
45
46
  end
46
47
 
47
48
  def file_updated?
48
49
  @filenames.each do |filename|
49
- begin
50
+
51
+ if(not(@deleted_files.include?(filename)))
52
+
53
+ if(not(File.exist?(filename)))
54
+ @deleted_files << filename
55
+ @updated_file = filename
56
+ @event = :delete
57
+ return true
58
+ end
50
59
  mtime = File.stat(filename).mtime
51
- rescue Errno::ENOENT
52
- puts "filewatcher: File not found: " + filename
53
- exit(66)
54
- end
55
- updated = @last_mtimes[filename] < mtime
56
- @last_mtimes[filename] = mtime
57
- if(updated)
58
- @updated_file = filename
59
- return true
60
+
61
+ updated = @last_mtimes[filename] < mtime
62
+ @last_mtimes[filename] = mtime
63
+ if(updated)
64
+ @updated_file = filename
65
+ @event = :changed
66
+ return true
67
+ end
68
+
60
69
  end
61
70
  end
62
71
  return false
@@ -5,8 +5,10 @@ class TestFilewatcher < Test::Unit::TestCase
5
5
 
6
6
  should "should detect directories and extract filenames" do
7
7
 
8
- FileWatcher.new(["test/"],"Watching files. Ctrl-C to abort.").watch(0.1) do |filename|
9
- puts "updated: " + filename
8
+ puts " "
9
+
10
+ FileWatcher.new(["test/"],"Watching files. Ctrl-C to abort.").watch(0.1) do |filename, event|
11
+ puts "updated: " + filename.to_s + " event:" + event.to_s
10
12
  end
11
13
 
12
14
  FileWatcher.new(["./test/", "Rakefile", "lib"]).watch(0.1) do |filename|
metadata CHANGED
@@ -1,38 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: filewatcher
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
5
- prerelease:
4
+ version: 0.2.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Thomas Flemming
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-10-15 00:00:00.000000000 Z
11
+ date: 2013-12-04 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: thoughtbot-shoulda
16
- requirement: &70093896970560 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :development
23
21
  prerelease: false
24
- version_requirements: *70093896970560
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
25
27
  - !ruby/object:Gem::Dependency
26
28
  name: trollop
27
- requirement: &70093896970060 !ruby/object:Gem::Requirement
28
- none: false
29
+ requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
- - - ! '>='
31
+ - - '>='
31
32
  - !ruby/object:Gem::Version
32
33
  version: 1.16.2
33
34
  type: :runtime
34
35
  prerelease: false
35
- version_requirements: *70093896970060
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: 1.16.2
36
41
  description: Detect changes in files.
37
42
  email: thomas.flemming@gmail.com
38
43
  executables:
@@ -52,26 +57,25 @@ files:
52
57
  - test/test_filewatcher.rb
53
58
  homepage: http://github.com/thomasfl/filewatcher
54
59
  licenses: []
60
+ metadata: {}
55
61
  post_install_message:
56
62
  rdoc_options: []
57
63
  require_paths:
58
64
  - lib
59
65
  required_ruby_version: !ruby/object:Gem::Requirement
60
- none: false
61
66
  requirements:
62
- - - ! '>='
67
+ - - '>='
63
68
  - !ruby/object:Gem::Version
64
69
  version: '0'
65
70
  required_rubygems_version: !ruby/object:Gem::Requirement
66
- none: false
67
71
  requirements:
68
- - - ! '>='
72
+ - - '>='
69
73
  - !ruby/object:Gem::Version
70
74
  version: '0'
71
75
  requirements: []
72
76
  rubyforge_project:
73
- rubygems_version: 1.8.11
77
+ rubygems_version: 2.0.0
74
78
  signing_key:
75
- specification_version: 3
79
+ specification_version: 4
76
80
  summary: Simple filewatcher.
77
81
  test_files: []