guard 0.8.8 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. data/CHANGELOG.md +16 -1
  2. data/README.md +665 -293
  3. data/bin/fsevent_watch_guard +0 -0
  4. data/lib/guard.rb +66 -31
  5. data/lib/guard/cli.rb +9 -3
  6. data/lib/guard/dsl.rb +32 -5
  7. data/lib/guard/dsl_describer.rb +3 -2
  8. data/lib/guard/guard.rb +2 -2
  9. data/lib/guard/interactor.rb +179 -48
  10. data/lib/guard/listener.rb +32 -17
  11. data/lib/guard/listeners/darwin.rb +5 -9
  12. data/lib/guard/listeners/linux.rb +6 -10
  13. data/lib/guard/listeners/windows.rb +4 -2
  14. data/lib/guard/notifier.rb +171 -258
  15. data/lib/guard/notifiers/gntp.rb +114 -0
  16. data/lib/guard/notifiers/growl.rb +98 -0
  17. data/lib/guard/notifiers/growl_notify.rb +91 -0
  18. data/lib/guard/notifiers/libnotify.rb +96 -0
  19. data/lib/guard/notifiers/rb_notifu.rb +101 -0
  20. data/lib/guard/ui.rb +2 -2
  21. data/lib/guard/version.rb +1 -1
  22. data/lib/guard/watcher.rb +1 -1
  23. data/lib/vendor/darwin/Gemfile +6 -0
  24. data/lib/vendor/darwin/Guardfile +8 -0
  25. data/lib/vendor/darwin/LICENSE +20 -0
  26. data/lib/vendor/darwin/README.rdoc +254 -0
  27. data/lib/vendor/darwin/Rakefile +21 -0
  28. data/lib/vendor/darwin/ext/extconf.rb +61 -0
  29. data/lib/vendor/darwin/ext/fsevent/fsevent_watch.c +226 -0
  30. data/lib/vendor/darwin/lib/rb-fsevent.rb +2 -0
  31. data/lib/vendor/darwin/lib/rb-fsevent/fsevent.rb +105 -0
  32. data/lib/vendor/darwin/lib/rb-fsevent/version.rb +3 -0
  33. data/lib/vendor/darwin/rb-fsevent.gemspec +24 -0
  34. data/lib/vendor/darwin/spec/fixtures/folder1/file1.txt +0 -0
  35. data/lib/vendor/darwin/spec/fixtures/folder1/folder2/file2.txt +0 -0
  36. data/lib/vendor/darwin/spec/rb-fsevent/fsevent_spec.rb +75 -0
  37. data/lib/vendor/darwin/spec/spec_helper.rb +24 -0
  38. data/lib/vendor/linux/MIT-LICENSE +20 -0
  39. data/lib/vendor/linux/README.md +66 -0
  40. data/lib/vendor/linux/Rakefile +54 -0
  41. data/lib/vendor/linux/VERSION +1 -0
  42. data/lib/vendor/linux/lib/rb-inotify.rb +17 -0
  43. data/lib/vendor/linux/lib/rb-inotify/event.rb +139 -0
  44. data/lib/vendor/linux/lib/rb-inotify/native.rb +31 -0
  45. data/lib/vendor/linux/lib/rb-inotify/native/flags.rb +89 -0
  46. data/lib/vendor/linux/lib/rb-inotify/notifier.rb +308 -0
  47. data/lib/vendor/linux/lib/rb-inotify/watcher.rb +83 -0
  48. data/lib/vendor/linux/rb-inotify.gemspec +53 -0
  49. data/lib/vendor/windows/Gemfile +4 -0
  50. data/lib/vendor/windows/README.md +34 -0
  51. data/lib/vendor/windows/Rakefile +18 -0
  52. data/lib/vendor/windows/lib/rb-fchange.rb +14 -0
  53. data/lib/vendor/windows/lib/rb-fchange/event.rb +29 -0
  54. data/lib/vendor/windows/lib/rb-fchange/native.rb +45 -0
  55. data/lib/vendor/windows/lib/rb-fchange/native/flags.rb +78 -0
  56. data/lib/vendor/windows/lib/rb-fchange/notifier.rb +149 -0
  57. data/lib/vendor/windows/lib/rb-fchange/version.rb +3 -0
  58. data/lib/vendor/windows/lib/rb-fchange/watcher.rb +99 -0
  59. data/lib/vendor/windows/rb-fchange.gemspec +34 -0
  60. data/lib/vendor/windows/spec/fixtures/folder1/file1.txt +0 -0
  61. data/lib/vendor/windows/spec/fixtures/folder1/folder2/file2.txt +0 -0
  62. data/lib/vendor/windows/spec/rb-fchange/fchange_spec.rb +119 -0
  63. data/lib/vendor/windows/spec/spec_helper.rb +21 -0
  64. metadata +87 -22
  65. data/lib/guard/version.rbc +0 -180
@@ -0,0 +1,34 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "rb-fchange/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = %q{rb-fchange}
7
+ s.version = FChange::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["stereobooster"]
10
+ s.date = %q{2011-05-15}
11
+ s.description = %q{A Ruby wrapper for Windows Kernel functions for monitoring the specified directory or subtree}
12
+ s.email = ["stereobooster@gmail.com"]
13
+ s.extra_rdoc_files = [
14
+ "README.md"
15
+ ]
16
+ s.files = [
17
+ "README.md",
18
+ "Rakefile",
19
+ "lib/rb-fchange.rb",
20
+ "lib/rb-fchange/event.rb",
21
+ "lib/rb-fchange/native.rb",
22
+ "lib/rb-fchange/native/flags.rb",
23
+ "lib/rb-fchange/notifier.rb",
24
+ "lib/rb-fchange/watcher.rb",
25
+ "rb-fchange.gemspec"
26
+ ]
27
+ s.homepage = %q{http://github.com/stereobooster/rb-fchange}
28
+ s.require_paths = ["lib"]
29
+ s.rubygems_version = %q{1.3.7}
30
+ s.summary = %q{A Ruby wrapper for Windows Kernel functions for monitoring the specified directory or subtree}
31
+ s.add_dependency 'ffi'
32
+ s.add_development_dependency 'bundler'
33
+ s.add_development_dependency 'rspec'
34
+ end
@@ -0,0 +1,119 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require 'spec_helper'
3
+
4
+ describe FChange do
5
+
6
+ before(:each) do
7
+ @results = []
8
+ @notifier = FChange::Notifier.new
9
+ @notifier.watch(@fixture_path.to_s) do |event|
10
+ @results += [event.watcher.path]
11
+ end
12
+ end
13
+
14
+ it "should work with path with an apostrophe" do
15
+ custom_path = @fixture_path.join("custom 'path")
16
+ file = custom_path.join("newfile.rb").to_s
17
+ File.delete file if File.exists? file
18
+ run
19
+ FileUtils.touch file
20
+ stop
21
+ File.delete file
22
+ @results.should == [@fixture_path.to_s, @fixture_path.to_s]
23
+ end
24
+
25
+ it "should catch new file" do
26
+ file = @fixture_path.join("newfile.rb")
27
+ File.delete file if File.exists? file
28
+ run
29
+ FileUtils.touch file
30
+ stop
31
+ File.delete file
32
+ @results.should == [@fixture_path.to_s]
33
+ end
34
+
35
+ it "should catch file update" do
36
+ file = @fixture_path.join("folder1/file1.txt")
37
+ File.exists?(file).should be_true
38
+ run
39
+ FileUtils.touch file
40
+ stop
41
+ @results.should == [@fixture_path.to_s]
42
+ end
43
+
44
+ it "should catch files update" do
45
+ file1 = @fixture_path.join("folder1/file1.txt")
46
+ file2 = @fixture_path.join("folder1/folder2/file2.txt")
47
+ File.exists?(file1).should be_true
48
+ File.exists?(file2).should be_true
49
+ run
50
+ FileUtils.touch file1
51
+ FileUtils.touch file2
52
+ stop
53
+ @results.should == [@fixture_path.to_s, @fixture_path.to_s]
54
+ end
55
+
56
+ it "should catch new directory" do
57
+ dir = @fixture_path.join("new_dir")
58
+ Dir.delete dir if Dir.exists? dir
59
+ Dir.exists?(dir).should be_false
60
+ run
61
+ Dir.mkdir dir
62
+ stop
63
+ Dir.delete dir
64
+ @results.should == [@fixture_path.to_s]
65
+ end
66
+
67
+ it "should catch directory rename" do
68
+ dir = @fixture_path.join("new_dir")
69
+ dir_new = @fixture_path.join("new_dir1")
70
+ Dir.mkdir dir unless Dir.exists? dir
71
+ Dir.delete dir_new if Dir.exists? dir_new
72
+ run
73
+ File.rename(dir, dir_new)
74
+ stop
75
+ Dir.delete(dir_new)
76
+ @results.should == [@fixture_path.to_s, @fixture_path.to_s]
77
+ end
78
+
79
+ it "should catch file rename" do
80
+ file = @fixture_path.join("folder1/file1.txt")
81
+ file_new = @fixture_path.join("folder1/file3.txt")
82
+ File.exists?(file).should be_true
83
+ File.exists?(file_new).should be_false
84
+ run
85
+ File.rename(file, file_new)
86
+ stop
87
+ File.rename(file_new, file)
88
+ @results.should == [@fixture_path.to_s, @fixture_path.to_s]
89
+ end
90
+
91
+ # it "should work with none-ANSI path" do
92
+ # dir = @fixture_path.join("../тест")
93
+ # Dir.mkdir dir unless Dir.exists? dir
94
+ # file = dir.join("тест");
95
+ # File.delete file if File.exists? file
96
+ # File.exists?(file).should be_false
97
+ # @notifier.watch(dir.to_s, :all_events, :recursive) do |event|
98
+ # @results += [event.watcher.path]
99
+ # end
100
+ # run
101
+ # FileUtils.touch file
102
+ # stop
103
+ # File.delete file
104
+ # Dir.delete dir
105
+ # @results.should == [@fixture_path.to_s, @fixture_path.to_s]
106
+ # end
107
+
108
+ def run
109
+ sleep 0.6
110
+ Thread.new { @notifier.run }
111
+ sleep 0.6
112
+ end
113
+
114
+ def stop
115
+ sleep 0.6
116
+ @notifier.stop
117
+ end
118
+
119
+ end
@@ -0,0 +1,21 @@
1
+ require 'rspec'
2
+ require 'rb-fchange'
3
+
4
+ RSpec.configure do |config|
5
+ # config.color_enabled = true
6
+ config.filter_run :focus => true
7
+ config.run_all_when_everything_filtered = true
8
+
9
+ config.before(:each) do
10
+ @fixture_path = Pathname.new(File.expand_path('../fixtures/', __FILE__))
11
+ end
12
+
13
+ config.before(:all) do
14
+
15
+ end
16
+
17
+ config.after(:all) do
18
+ gem_root = Pathname.new(File.expand_path('../../', __FILE__))
19
+ end
20
+
21
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: guard
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.8
4
+ version: 0.9.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-10-21 00:00:00.000000000Z
12
+ date: 2011-12-19 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: thor
16
- requirement: &2154664540 !ruby/object:Gem::Requirement
16
+ requirement: &70141887669800 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,21 @@ dependencies:
21
21
  version: 0.14.6
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2154664540
24
+ version_requirements: *70141887669800
25
+ - !ruby/object:Gem::Dependency
26
+ name: ffi
27
+ requirement: &70141887668820 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: 0.5.0
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *70141887668820
25
36
  - !ruby/object:Gem::Dependency
26
37
  name: bundler
27
- requirement: &2154664100 !ruby/object:Gem::Requirement
38
+ requirement: &70141887668060 !ruby/object:Gem::Requirement
28
39
  none: false
29
40
  requirements:
30
41
  - - ! '>='
@@ -32,21 +43,21 @@ dependencies:
32
43
  version: '0'
33
44
  type: :development
34
45
  prerelease: false
35
- version_requirements: *2154664100
46
+ version_requirements: *70141887668060
36
47
  - !ruby/object:Gem::Dependency
37
48
  name: rspec
38
- requirement: &2154663380 !ruby/object:Gem::Requirement
49
+ requirement: &70141887652680 !ruby/object:Gem::Requirement
39
50
  none: false
40
51
  requirements:
41
52
  - - ~>
42
53
  - !ruby/object:Gem::Version
43
- version: 2.6.0
54
+ version: 2.7.0
44
55
  type: :development
45
56
  prerelease: false
46
- version_requirements: *2154663380
57
+ version_requirements: *70141887652680
47
58
  - !ruby/object:Gem::Dependency
48
59
  name: guard-rspec
49
- requirement: &2154662720 !ruby/object:Gem::Requirement
60
+ requirement: &70141887651580 !ruby/object:Gem::Requirement
50
61
  none: false
51
62
  requirements:
52
63
  - - ~>
@@ -54,29 +65,40 @@ dependencies:
54
65
  version: 0.5.0
55
66
  type: :development
56
67
  prerelease: false
57
- version_requirements: *2154662720
68
+ version_requirements: *70141887651580
58
69
  - !ruby/object:Gem::Dependency
59
70
  name: yard
60
- requirement: &2154662020 !ruby/object:Gem::Requirement
71
+ requirement: &70141887650780 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ~>
75
+ - !ruby/object:Gem::Version
76
+ version: 0.7.3
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *70141887650780
80
+ - !ruby/object:Gem::Dependency
81
+ name: redcarpet
82
+ requirement: &70141887649460 !ruby/object:Gem::Requirement
61
83
  none: false
62
84
  requirements:
63
85
  - - ~>
64
86
  - !ruby/object:Gem::Version
65
- version: 0.7.2
87
+ version: 1.17.2
66
88
  type: :development
67
89
  prerelease: false
68
- version_requirements: *2154662020
90
+ version_requirements: *70141887649460
69
91
  - !ruby/object:Gem::Dependency
70
- name: kramdown
71
- requirement: &2154661180 !ruby/object:Gem::Requirement
92
+ name: pry
93
+ requirement: &70141887648300 !ruby/object:Gem::Requirement
72
94
  none: false
73
95
  requirements:
74
96
  - - ~>
75
97
  - !ruby/object:Gem::Version
76
- version: 0.13.3
98
+ version: 0.9.6.2
77
99
  type: :development
78
100
  prerelease: false
79
- version_requirements: *2154661180
101
+ version_requirements: *70141887648300
80
102
  description: Guard is a command line tool to easily handle events on file system modifications.
81
103
  email:
82
104
  - thibaud@thibaud.me
@@ -85,6 +107,7 @@ executables:
85
107
  extensions: []
86
108
  extra_rdoc_files: []
87
109
  files:
110
+ - bin/fsevent_watch_guard
88
111
  - bin/guard
89
112
  - images/failed.png
90
113
  - images/pending.png
@@ -102,12 +125,57 @@ files:
102
125
  - lib/guard/listeners/polling.rb
103
126
  - lib/guard/listeners/windows.rb
104
127
  - lib/guard/notifier.rb
128
+ - lib/guard/notifiers/gntp.rb
129
+ - lib/guard/notifiers/growl.rb
130
+ - lib/guard/notifiers/growl_notify.rb
131
+ - lib/guard/notifiers/libnotify.rb
132
+ - lib/guard/notifiers/rb_notifu.rb
105
133
  - lib/guard/templates/Guardfile
106
134
  - lib/guard/ui.rb
107
135
  - lib/guard/version.rb
108
- - lib/guard/version.rbc
109
136
  - lib/guard/watcher.rb
110
137
  - lib/guard.rb
138
+ - lib/vendor/darwin/ext/extconf.rb
139
+ - lib/vendor/darwin/ext/fsevent/fsevent_watch.c
140
+ - lib/vendor/darwin/Gemfile
141
+ - lib/vendor/darwin/Guardfile
142
+ - lib/vendor/darwin/lib/rb-fsevent/fsevent.rb
143
+ - lib/vendor/darwin/lib/rb-fsevent/version.rb
144
+ - lib/vendor/darwin/lib/rb-fsevent.rb
145
+ - lib/vendor/darwin/LICENSE
146
+ - lib/vendor/darwin/Rakefile
147
+ - lib/vendor/darwin/rb-fsevent.gemspec
148
+ - lib/vendor/darwin/README.rdoc
149
+ - lib/vendor/darwin/spec/fixtures/folder1/file1.txt
150
+ - lib/vendor/darwin/spec/fixtures/folder1/folder2/file2.txt
151
+ - lib/vendor/darwin/spec/rb-fsevent/fsevent_spec.rb
152
+ - lib/vendor/darwin/spec/spec_helper.rb
153
+ - lib/vendor/linux/lib/rb-inotify/event.rb
154
+ - lib/vendor/linux/lib/rb-inotify/native/flags.rb
155
+ - lib/vendor/linux/lib/rb-inotify/native.rb
156
+ - lib/vendor/linux/lib/rb-inotify/notifier.rb
157
+ - lib/vendor/linux/lib/rb-inotify/watcher.rb
158
+ - lib/vendor/linux/lib/rb-inotify.rb
159
+ - lib/vendor/linux/MIT-LICENSE
160
+ - lib/vendor/linux/Rakefile
161
+ - lib/vendor/linux/rb-inotify.gemspec
162
+ - lib/vendor/linux/README.md
163
+ - lib/vendor/linux/VERSION
164
+ - lib/vendor/windows/Gemfile
165
+ - lib/vendor/windows/lib/rb-fchange/event.rb
166
+ - lib/vendor/windows/lib/rb-fchange/native/flags.rb
167
+ - lib/vendor/windows/lib/rb-fchange/native.rb
168
+ - lib/vendor/windows/lib/rb-fchange/notifier.rb
169
+ - lib/vendor/windows/lib/rb-fchange/version.rb
170
+ - lib/vendor/windows/lib/rb-fchange/watcher.rb
171
+ - lib/vendor/windows/lib/rb-fchange.rb
172
+ - lib/vendor/windows/Rakefile
173
+ - lib/vendor/windows/rb-fchange.gemspec
174
+ - lib/vendor/windows/README.md
175
+ - lib/vendor/windows/spec/fixtures/folder1/file1.txt
176
+ - lib/vendor/windows/spec/fixtures/folder1/folder2/file2.txt
177
+ - lib/vendor/windows/spec/rb-fchange/fchange_spec.rb
178
+ - lib/vendor/windows/spec/spec_helper.rb
111
179
  - CHANGELOG.md
112
180
  - LICENSE
113
181
  - man/guard.1
@@ -125,9 +193,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
125
193
  - - ! '>='
126
194
  - !ruby/object:Gem::Version
127
195
  version: '0'
128
- segments:
129
- - 0
130
- hash: 2058607326340993912
131
196
  required_rubygems_version: !ruby/object:Gem::Requirement
132
197
  none: false
133
198
  requirements:
@@ -1,180 +0,0 @@
1
- !RBIX
2
- 16846133056282117387
3
- x
4
- M
5
- 1
6
- n
7
- n
8
- x
9
- 10
10
- __script__
11
- i
12
- 28
13
- 99
14
- 7
15
- 0
16
- 65
17
- 49
18
- 1
19
- 2
20
- 13
21
- 99
22
- 12
23
- 7
24
- 2
25
- 12
26
- 7
27
- 3
28
- 12
29
- 65
30
- 12
31
- 49
32
- 4
33
- 4
34
- 15
35
- 49
36
- 2
37
- 0
38
- 15
39
- 2
40
- 11
41
- I
42
- 6
43
- I
44
- 0
45
- I
46
- 0
47
- I
48
- 0
49
- n
50
- p
51
- 5
52
- x
53
- 5
54
- Guard
55
- x
56
- 11
57
- open_module
58
- x
59
- 15
60
- __module_init__
61
- M
62
- 1
63
- n
64
- n
65
- x
66
- 5
67
- Guard
68
- i
69
- 48
70
- 5
71
- 66
72
- 26
73
- 93
74
- 0
75
- 15
76
- 29
77
- 21
78
- 0
79
- 45
80
- 0
81
- 1
82
- 7
83
- 2
84
- 3
85
- 98
86
- 3
87
- 3
88
- 30
89
- 8
90
- 27
91
- 25
92
- 92
93
- 0
94
- 27
95
- 8
96
- 32
97
- 15
98
- 7
99
- 4
100
- 8
101
- 33
102
- 1
103
- 9
104
- 38
105
- 1
106
- 8
107
- 47
108
- 65
109
- 7
110
- 2
111
- 7
112
- 5
113
- 64
114
- 49
115
- 6
116
- 2
117
- 11
118
- I
119
- 4
120
- I
121
- 0
122
- I
123
- 0
124
- I
125
- 0
126
- n
127
- p
128
- 7
129
- x
130
- 5
131
- Guard
132
- n
133
- x
134
- 7
135
- VERSION
136
- x
137
- 22
138
- vm_const_defined_under
139
- s
140
- 8
141
- constant
142
- s
143
- 5
144
- 0.6.3
145
- x
146
- 9
147
- const_set
148
- p
149
- 5
150
- I
151
- 2
152
- I
153
- 2
154
- I
155
- 2f
156
- I
157
- 0
158
- I
159
- 30
160
- x
161
- 66
162
- /Users/remy/Development/Ruby/Gems/guard/guard/lib/guard/version.rb
163
- p
164
- 0
165
- x
166
- 13
167
- attach_method
168
- p
169
- 3
170
- I
171
- 0
172
- I
173
- 1
174
- I
175
- 1c
176
- x
177
- 66
178
- /Users/remy/Development/Ruby/Gems/guard/guard/lib/guard/version.rb
179
- p
180
- 0