guard 0.8.8 → 0.9.0

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 (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