guard 1.4.0 → 2.18.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 (89) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +1 -677
  3. data/LICENSE +4 -2
  4. data/README.md +91 -753
  5. data/bin/_guard-core +11 -0
  6. data/bin/guard +108 -3
  7. data/lib/guard/aruba_adapter.rb +59 -0
  8. data/lib/guard/cli/environments/bundler.rb +22 -0
  9. data/lib/guard/cli/environments/evaluate_only.rb +35 -0
  10. data/lib/guard/cli/environments/valid.rb +69 -0
  11. data/lib/guard/cli.rb +129 -128
  12. data/lib/guard/commander.rb +104 -0
  13. data/lib/guard/commands/all.rb +37 -0
  14. data/lib/guard/commands/change.rb +31 -0
  15. data/lib/guard/commands/notification.rb +26 -0
  16. data/lib/guard/commands/pause.rb +29 -0
  17. data/lib/guard/commands/reload.rb +36 -0
  18. data/lib/guard/commands/scope.rb +38 -0
  19. data/lib/guard/commands/show.rb +24 -0
  20. data/lib/guard/config.rb +18 -0
  21. data/lib/guard/deprecated/dsl.rb +45 -0
  22. data/lib/guard/deprecated/evaluator.rb +39 -0
  23. data/lib/guard/deprecated/guard.rb +328 -0
  24. data/lib/guard/deprecated/guardfile.rb +84 -0
  25. data/lib/guard/deprecated/watcher.rb +27 -0
  26. data/lib/guard/dsl.rb +332 -363
  27. data/lib/guard/dsl_describer.rb +132 -122
  28. data/lib/guard/dsl_reader.rb +51 -0
  29. data/lib/guard/group.rb +34 -14
  30. data/lib/guard/guardfile/evaluator.rb +232 -0
  31. data/lib/guard/guardfile/generator.rb +128 -0
  32. data/lib/guard/guardfile.rb +24 -60
  33. data/lib/guard/interactor.rb +31 -255
  34. data/lib/guard/internals/debugging.rb +68 -0
  35. data/lib/guard/internals/groups.rb +40 -0
  36. data/lib/guard/internals/helpers.rb +13 -0
  37. data/lib/guard/internals/plugins.rb +53 -0
  38. data/lib/guard/internals/queue.rb +51 -0
  39. data/lib/guard/internals/scope.rb +121 -0
  40. data/lib/guard/internals/session.rb +180 -0
  41. data/lib/guard/internals/state.rb +25 -0
  42. data/lib/guard/internals/tracing.rb +33 -0
  43. data/lib/guard/internals/traps.rb +10 -0
  44. data/lib/guard/jobs/base.rb +21 -0
  45. data/lib/guard/jobs/pry_wrapper.rb +336 -0
  46. data/lib/guard/jobs/sleep.rb +26 -0
  47. data/lib/guard/notifier.rb +46 -212
  48. data/lib/guard/options.rb +22 -0
  49. data/lib/guard/plugin.rb +303 -0
  50. data/lib/guard/plugin_util.rb +191 -0
  51. data/lib/guard/rake_task.rb +42 -0
  52. data/lib/guard/runner.rb +80 -140
  53. data/lib/guard/templates/Guardfile +14 -0
  54. data/lib/guard/terminal.rb +13 -0
  55. data/lib/guard/ui/colors.rb +56 -0
  56. data/lib/guard/ui/config.rb +70 -0
  57. data/lib/guard/ui/logger.rb +30 -0
  58. data/lib/guard/ui.rb +163 -128
  59. data/lib/guard/version.rb +1 -2
  60. data/lib/guard/watcher/pattern/deprecated_regexp.rb +45 -0
  61. data/lib/guard/watcher/pattern/match_result.rb +18 -0
  62. data/lib/guard/watcher/pattern/matcher.rb +33 -0
  63. data/lib/guard/watcher/pattern/pathname_path.rb +15 -0
  64. data/lib/guard/watcher/pattern/simple_path.rb +23 -0
  65. data/lib/guard/watcher/pattern.rb +24 -0
  66. data/lib/guard/watcher.rb +52 -95
  67. data/lib/guard.rb +108 -376
  68. data/lib/tasks/releaser.rb +116 -0
  69. data/man/guard.1 +12 -9
  70. data/man/guard.1.html +18 -12
  71. metadata +148 -77
  72. data/images/guard.png +0 -0
  73. data/lib/guard/guard.rb +0 -156
  74. data/lib/guard/hook.rb +0 -120
  75. data/lib/guard/interactors/coolline.rb +0 -64
  76. data/lib/guard/interactors/helpers/completion.rb +0 -32
  77. data/lib/guard/interactors/helpers/terminal.rb +0 -46
  78. data/lib/guard/interactors/readline.rb +0 -94
  79. data/lib/guard/interactors/simple.rb +0 -19
  80. data/lib/guard/notifiers/emacs.rb +0 -69
  81. data/lib/guard/notifiers/gntp.rb +0 -118
  82. data/lib/guard/notifiers/growl.rb +0 -99
  83. data/lib/guard/notifiers/growl_notify.rb +0 -92
  84. data/lib/guard/notifiers/libnotify.rb +0 -96
  85. data/lib/guard/notifiers/notifysend.rb +0 -84
  86. data/lib/guard/notifiers/rb_notifu.rb +0 -102
  87. data/lib/guard/notifiers/terminal_notifier.rb +0 -66
  88. data/lib/guard/notifiers/tmux.rb +0 -69
  89. data/lib/guard/version.rbc +0 -130
data/man/guard.1 CHANGED
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "GUARD" "1" "July 2012" "" ""
4
+ .TH "GUARD" "1" "November 2014" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBguard\fR \- Guard keeps an eye on your file modifications\.
@@ -27,10 +27,13 @@ The following options are available:
27
27
  \fB\-n\fR, \fB\-\-notify\fR \fIFLAG\fR Disable notifications (Growl or Libnotify depending on your system)\. Notifications can be disabled globally by setting a GUARD_NOTIFY environment variable to false\. FLAG can be \fBtrue\fR/\fBfalse\fR or \fBt\fR/\fBf\fR\.
28
28
  .
29
29
  .P
30
- \fB\-d\fR, \fB\-\-debug\fR Runs Guard in debug mode\.
30
+ \fB\-g\fR, \fB\-\-group\fR \fIGROUP1\fR \fIGROUP2\fR\.\.\. Scopes the Guard actions to the groups specified by GROUP1, GROUP2, etc\. Group names should be separated by spaces\. Plugins that don\'t belong to a group are considered global and are always run\.
31
31
  .
32
32
  .P
33
- \fB\-g\fR, \fB\-\-group\fR \fIGROUP1\fR \fIGROUP2\fR\.\.\. Runs only the groups specified by GROUP1, GROUP2 etc\. Groups name should be separated by spaces\. Guards that don\'t belong to a group are considered global and are always run\.
33
+ \fB\-P\fR, \fB\-\-plugin\fR \fIPLUGIN1\fR \fIPLUGIN2\fR\.\.\. Scopes the Guard actions to the plugins specified by PLUGIN1, PLUGIN2, etc\. Plugin names should be separated by spaces\.
34
+ .
35
+ .P
36
+ \fB\-d\fR, \fB\-\-debug\fR Runs Guard in debug mode\.
34
37
  .
35
38
  .P
36
39
  \fB\-w\fR, \fB\-\-watchdir\fR \fIPATH\fR Tells Guard to watch PATH instead of \fB\./\fR\.
@@ -45,14 +48,14 @@ The following options are available:
45
48
  \fB\-B\fR, \fB\-\-no\-bundler\-warning\fR Turn off warning when Bundler is not present\.
46
49
  .
47
50
  .P
48
- \fB\-\-show\-deprecations\fR Turn on deprecation warnings\.
49
- .
50
- .P
51
51
  \fB\-l\fR, \fB\-\-latency\fR Overwrite Listen\'s default latency\.
52
52
  .
53
53
  .P
54
54
  \fB\-p\fR, \fB\-\-force\-polling\fR Force usage of the Listen polling listener\.
55
55
  .
56
+ .P
57
+ \fB\-y\fR, \fB\-\-wait\-for\-delay\fR Overwrite Listen\'s default \fBwait_for_delay\fR, useful for kate\-like editors through ssh access\.
58
+ .
56
59
  .SS "init [GUARDS]"
57
60
  If no Guardfile is present in the current directory, creates an empty Guardfile\.
58
61
  .
@@ -95,11 +98,11 @@ Thibaud Guillaume\-Gentil is the main author\.
95
98
  .P
96
99
  A list of contributors based on all commits can be found here: https://github\.com/guard/guard/contributors
97
100
  .
98
- .P
99
- For an exhaustive list of all the contributors, please see the CHANGELOG: https://github\.com/guard/guard/blob/master/CHANGELOG\.md
101
+ .SH "CHANGELOG"
102
+ The changelog can be found at: https://github\.com/guard/guard/blob/master/CHANGELOG\.md
100
103
  .
101
104
  .P
102
105
  This manual has been written by Remy Coutable\.
103
106
  .
104
107
  .SH "WWW"
105
- https://github\.com/guard/guard
108
+ http://guardgem\.org/
data/man/guard.1.html CHANGED
@@ -59,6 +59,7 @@
59
59
  <a href="#COMMANDS">COMMANDS</a>
60
60
  <a href="#EXAMPLES">EXAMPLES</a>
61
61
  <a href="#AUTHORS-CONTRIBUTORS">AUTHORS / CONTRIBUTORS</a>
62
+ <a href="#CHANGELOG">CHANGELOG</a>
62
63
  <a href="#WWW">WWW</a>
63
64
  </div>
64
65
 
@@ -97,14 +98,18 @@
97
98
  Notifications can be disabled globally by setting a GUARD_NOTIFY environment variable to false.
98
99
  FLAG can be <code>true</code>/<code>false</code> or <code>t</code>/<code>f</code>.</p>
99
100
 
101
+ <p><code>-g</code>, <code>--group</code> <var>GROUP1</var> <var>GROUP2</var>...
102
+ Scopes the Guard actions to the groups specified by GROUP1, GROUP2, etc.
103
+ Group names should be separated by spaces.
104
+ Plugins that don't belong to a group are considered global and are always run.</p>
105
+
106
+ <p><code>-P</code>, <code>--plugin</code> <var>PLUGIN1</var> <var>PLUGIN2</var>...
107
+ Scopes the Guard actions to the plugins specified by PLUGIN1, PLUGIN2, etc.
108
+ Plugin names should be separated by spaces.</p>
109
+
100
110
  <p><code>-d</code>, <code>--debug</code>
101
111
  Runs Guard in debug mode.</p>
102
112
 
103
- <p><code>-g</code>, <code>--group</code> <var>GROUP1</var> <var>GROUP2</var>...
104
- Runs only the groups specified by GROUP1, GROUP2 etc.
105
- Groups name should be separated by spaces.
106
- Guards that don't belong to a group are considered global and are always run.</p>
107
-
108
113
  <p><code>-w</code>, <code>--watchdir</code> <var>PATH</var>
109
114
  Tells Guard to watch PATH instead of <code>./</code>.</p>
110
115
 
@@ -117,15 +122,15 @@
117
122
  <p><code>-B</code>, <code>--no-bundler-warning</code>
118
123
  Turn off warning when Bundler is not present.</p>
119
124
 
120
- <p><code>--show-deprecations</code>
121
- Turn on deprecation warnings.</p>
122
-
123
125
  <p><code>-l</code>, <code>--latency</code>
124
126
  Overwrite Listen's default latency.</p>
125
127
 
126
128
  <p><code>-p</code>, <code>--force-polling</code>
127
129
  Force usage of the Listen polling listener.</p>
128
130
 
131
+ <p><code>-y</code>, <code>--wait-for-delay</code>
132
+ Overwrite Listen's default <code>wait_for_delay</code>, useful for kate-like editors through ssh access.</p>
133
+
129
134
  <h3 id="init-GUARDS-">init [GUARDS]</h3>
130
135
 
131
136
  <p>If no Guardfile is present in the current directory, creates an empty Guardfile.</p>
@@ -169,19 +174,20 @@ For instance to initialize guard-rspec, run <code>guard init rspec</code>.</p>
169
174
  <p>A list of contributors based on all commits can be found here:
170
175
  https://github.com/guard/guard/contributors</p>
171
176
 
172
- <p>For an exhaustive list of all the contributors, please see the CHANGELOG:
173
- https://github.com/guard/guard/blob/master/CHANGELOG.md</p>
177
+ <h2 id="CHANGELOG">CHANGELOG</h2>
178
+
179
+ <p>The changelog can be found at: https://github.com/guard/guard/blob/master/CHANGELOG.md</p>
174
180
 
175
181
  <p>This manual has been written by Remy Coutable.</p>
176
182
 
177
183
  <h2 id="WWW">WWW</h2>
178
184
 
179
- <p>https://github.com/guard/guard</p>
185
+ <p>http://guardgem.org/</p>
180
186
 
181
187
 
182
188
  <ol class='man-decor man-foot man foot'>
183
189
  <li class='tl'></li>
184
- <li class='tc'>July 2012</li>
190
+ <li class='tc'>November 2014</li>
185
191
  <li class='tr'>guard(1)</li>
186
192
  </ol>
187
193
 
metadata CHANGED
@@ -1,170 +1,241 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: guard
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
5
- prerelease:
4
+ version: 2.18.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Thibaud Guillaume-Gentil
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-09-26 00:00:00.000000000 Z
11
+ date: 2021-07-19 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: thor
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
- version: 0.14.6
19
+ version: 0.18.1
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - ">="
28
25
  - !ruby/object:Gem::Version
29
- version: 0.14.6
26
+ version: 0.18.1
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: listen
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
- version: 0.4.2
33
+ version: '2.7'
34
+ - - "<"
35
+ - !ruby/object:Gem::Version
36
+ version: '4.0'
37
+ type: :runtime
38
+ prerelease: false
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: '2.7'
44
+ - - "<"
45
+ - !ruby/object:Gem::Version
46
+ version: '4.0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: pry
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 0.13.0
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 0.13.0
61
+ - !ruby/object:Gem::Dependency
62
+ name: lumberjack
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: 1.0.12
68
+ - - "<"
69
+ - !ruby/object:Gem::Version
70
+ version: '2.0'
71
+ type: :runtime
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: 1.0.12
78
+ - - "<"
79
+ - !ruby/object:Gem::Version
80
+ version: '2.0'
81
+ - !ruby/object:Gem::Dependency
82
+ name: formatador
83
+ requirement: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: 0.2.4
38
88
  type: :runtime
39
89
  prerelease: false
40
90
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
91
  requirements:
43
- - - ! '>='
92
+ - - ">="
44
93
  - !ruby/object:Gem::Version
45
- version: 0.4.2
94
+ version: 0.2.4
46
95
  - !ruby/object:Gem::Dependency
47
- name: bundler
96
+ name: nenv
48
97
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
98
  requirements:
51
- - - ! '>='
99
+ - - "~>"
52
100
  - !ruby/object:Gem::Version
53
- version: '0'
54
- type: :development
101
+ version: '0.1'
102
+ type: :runtime
55
103
  prerelease: false
56
104
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
105
  requirements:
59
- - - ! '>='
106
+ - - "~>"
60
107
  - !ruby/object:Gem::Version
61
- version: '0'
108
+ version: '0.1'
62
109
  - !ruby/object:Gem::Dependency
63
- name: rspec
110
+ name: shellany
64
111
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
112
  requirements:
67
- - - ~>
113
+ - - "~>"
68
114
  - !ruby/object:Gem::Version
69
- version: 2.11.0
70
- type: :development
115
+ version: '0.0'
116
+ type: :runtime
71
117
  prerelease: false
72
118
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
119
  requirements:
75
- - - ~>
120
+ - - "~>"
76
121
  - !ruby/object:Gem::Version
77
- version: 2.11.0
122
+ version: '0.0'
78
123
  - !ruby/object:Gem::Dependency
79
- name: guard-rspec
124
+ name: notiffany
80
125
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
126
  requirements:
83
- - - ~>
127
+ - - "~>"
84
128
  - !ruby/object:Gem::Version
85
- version: 1.2.1
86
- type: :development
129
+ version: '0.0'
130
+ type: :runtime
87
131
  prerelease: false
88
132
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
133
  requirements:
91
- - - ~>
134
+ - - "~>"
92
135
  - !ruby/object:Gem::Version
93
- version: 1.2.1
136
+ version: '0.0'
94
137
  description: Guard is a command line tool to easily handle events on file system modifications.
95
138
  email:
96
- - thibaud@thibaud.me
139
+ - thibaud@thibaud.gg
97
140
  executables:
98
141
  - guard
142
+ - _guard-core
99
143
  extensions: []
100
144
  extra_rdoc_files: []
101
145
  files:
146
+ - CHANGELOG.md
147
+ - LICENSE
148
+ - README.md
149
+ - bin/_guard-core
102
150
  - bin/guard
103
151
  - images/failed.png
104
- - images/guard.png
105
152
  - images/pending.png
106
153
  - images/success.png
154
+ - lib/guard.rb
155
+ - lib/guard/aruba_adapter.rb
107
156
  - lib/guard/cli.rb
157
+ - lib/guard/cli/environments/bundler.rb
158
+ - lib/guard/cli/environments/evaluate_only.rb
159
+ - lib/guard/cli/environments/valid.rb
160
+ - lib/guard/commander.rb
161
+ - lib/guard/commands/all.rb
162
+ - lib/guard/commands/change.rb
163
+ - lib/guard/commands/notification.rb
164
+ - lib/guard/commands/pause.rb
165
+ - lib/guard/commands/reload.rb
166
+ - lib/guard/commands/scope.rb
167
+ - lib/guard/commands/show.rb
168
+ - lib/guard/config.rb
169
+ - lib/guard/deprecated/dsl.rb
170
+ - lib/guard/deprecated/evaluator.rb
171
+ - lib/guard/deprecated/guard.rb
172
+ - lib/guard/deprecated/guardfile.rb
173
+ - lib/guard/deprecated/watcher.rb
108
174
  - lib/guard/dsl.rb
109
175
  - lib/guard/dsl_describer.rb
176
+ - lib/guard/dsl_reader.rb
110
177
  - lib/guard/group.rb
111
- - lib/guard/guard.rb
112
178
  - lib/guard/guardfile.rb
113
- - lib/guard/hook.rb
179
+ - lib/guard/guardfile/evaluator.rb
180
+ - lib/guard/guardfile/generator.rb
114
181
  - lib/guard/interactor.rb
115
- - lib/guard/interactors/coolline.rb
116
- - lib/guard/interactors/helpers/completion.rb
117
- - lib/guard/interactors/helpers/terminal.rb
118
- - lib/guard/interactors/readline.rb
119
- - lib/guard/interactors/simple.rb
182
+ - lib/guard/internals/debugging.rb
183
+ - lib/guard/internals/groups.rb
184
+ - lib/guard/internals/helpers.rb
185
+ - lib/guard/internals/plugins.rb
186
+ - lib/guard/internals/queue.rb
187
+ - lib/guard/internals/scope.rb
188
+ - lib/guard/internals/session.rb
189
+ - lib/guard/internals/state.rb
190
+ - lib/guard/internals/tracing.rb
191
+ - lib/guard/internals/traps.rb
192
+ - lib/guard/jobs/base.rb
193
+ - lib/guard/jobs/pry_wrapper.rb
194
+ - lib/guard/jobs/sleep.rb
120
195
  - lib/guard/notifier.rb
121
- - lib/guard/notifiers/emacs.rb
122
- - lib/guard/notifiers/gntp.rb
123
- - lib/guard/notifiers/growl.rb
124
- - lib/guard/notifiers/growl_notify.rb
125
- - lib/guard/notifiers/libnotify.rb
126
- - lib/guard/notifiers/notifysend.rb
127
- - lib/guard/notifiers/rb_notifu.rb
128
- - lib/guard/notifiers/terminal_notifier.rb
129
- - lib/guard/notifiers/tmux.rb
196
+ - lib/guard/options.rb
197
+ - lib/guard/plugin.rb
198
+ - lib/guard/plugin_util.rb
199
+ - lib/guard/rake_task.rb
130
200
  - lib/guard/runner.rb
131
201
  - lib/guard/templates/Guardfile
202
+ - lib/guard/terminal.rb
132
203
  - lib/guard/ui.rb
204
+ - lib/guard/ui/colors.rb
205
+ - lib/guard/ui/config.rb
206
+ - lib/guard/ui/logger.rb
133
207
  - lib/guard/version.rb
134
- - lib/guard/version.rbc
135
208
  - lib/guard/watcher.rb
136
- - lib/guard.rb
137
- - CHANGELOG.md
138
- - LICENSE
209
+ - lib/guard/watcher/pattern.rb
210
+ - lib/guard/watcher/pattern/deprecated_regexp.rb
211
+ - lib/guard/watcher/pattern/match_result.rb
212
+ - lib/guard/watcher/pattern/matcher.rb
213
+ - lib/guard/watcher/pattern/pathname_path.rb
214
+ - lib/guard/watcher/pattern/simple_path.rb
215
+ - lib/tasks/releaser.rb
139
216
  - man/guard.1
140
217
  - man/guard.1.html
141
- - README.md
142
- homepage: https://github.com/guard/guard
143
- licenses: []
218
+ homepage: http://guardgem.org
219
+ licenses:
220
+ - MIT
221
+ metadata: {}
144
222
  post_install_message:
145
223
  rdoc_options: []
146
224
  require_paths:
147
225
  - lib
148
226
  required_ruby_version: !ruby/object:Gem::Requirement
149
- none: false
150
227
  requirements:
151
- - - ! '>='
228
+ - - ">="
152
229
  - !ruby/object:Gem::Version
153
- version: '0'
154
- segments:
155
- - 0
156
- hash: 1379407495203457243
230
+ version: 1.9.3
157
231
  required_rubygems_version: !ruby/object:Gem::Requirement
158
- none: false
159
232
  requirements:
160
- - - ! '>='
233
+ - - ">="
161
234
  - !ruby/object:Gem::Version
162
- version: 1.3.6
235
+ version: '0'
163
236
  requirements: []
164
- rubyforge_project: guard
165
- rubygems_version: 1.8.24
237
+ rubygems_version: 3.1.4
166
238
  signing_key:
167
- specification_version: 3
239
+ specification_version: 4
168
240
  summary: Guard keeps an eye on your file modifications
169
241
  test_files: []
170
- has_rdoc:
data/images/guard.png DELETED
Binary file
data/lib/guard/guard.rb DELETED
@@ -1,156 +0,0 @@
1
- module Guard
2
-
3
- # Base class that every Guard plugin implementation must inherit from.
4
- #
5
- # Guard will trigger the `start`, `stop`, `reload`, `run_all` and `run_on_changes`
6
- # (`run_on_additions`, `run_on_modifications` and `run_on_removals`) task methods
7
- # depending on user interaction and file modification.
8
- #
9
- # `run_on_changes` could be implemented to handle all the changes task case (additions,
10
- # modifications, removals) in once, or each task can be implemented separatly with a
11
- # specific behavior.
12
- #
13
- # In each of these Guard task methods you have to implement some work when you want to
14
- # support this kind of task. The return value of each Guard task method is not evaluated
15
- # by Guard, but I'll be passed to the "_end" hook for further evaluation. You can
16
- # throw `:task_has_failed` to indicate that your Guard plugin method was not successful,
17
- # and successive Guard plugin tasks will be aborted when the group has set the `:halt_on_fail`
18
- # option.
19
- #
20
- # @see Guard::Hook
21
- # @see Guard::Group
22
- #
23
- # @example Throw :task_has_failed
24
- #
25
- # def run_all
26
- # if !runner.run(['all'])
27
- # throw :task_has_failed
28
- # end
29
- # end
30
- #
31
- # Each Guard plugin should provide a template Guardfile located within the Gem
32
- # at `lib/guard/guard-name/templates/Guardfile`.
33
- #
34
- # By default all watchers for a Guard plugin have to return strings of paths to the
35
- # Guard, but if your Guard plugin wants to allow any return value from a watcher,
36
- # you can set the `any_return` option to true.
37
- #
38
- # If one of those methods raise an exception other than `:task_has_failed`,
39
- # the Guard::GuardName instance will be removed from the active guards.
40
- #
41
- class Guard
42
- require 'guard/hook'
43
- require 'guard/ui'
44
-
45
- include ::Guard::Hook
46
-
47
- attr_accessor :watchers, :options, :group
48
-
49
- # Initializes a Guard plugin.
50
- #
51
- # @param [Array<Guard::Watcher>] watchers the Guard plugin file watchers
52
- # @param [Hash] options the custom Guard plugin options
53
- # @option options [Symbol] group the group this Guard plugin belongs to
54
- # @option options [Boolean] any_return allow any object to be returned from a watcher
55
- #
56
- def initialize(watchers = [], options = {})
57
- @group = options[:group] ? options.delete(:group).to_sym : :default
58
- @watchers, @options = watchers, options
59
- end
60
-
61
- # Initialize the Guard plugin. This will copy the Guardfile template inside the Guard plugin gem.
62
- # The template Guardfile must be located within the Gem at `lib/guard/guard-name/templates/Guardfile`.
63
- #
64
- # @param [String] name the name of the Guard plugin
65
- #
66
- def self.init(name)
67
- if ::Guard::Dsl.guardfile_include?(name)
68
- ::Guard::UI.info "Guardfile already includes #{ name } guard"
69
- else
70
- content = File.read('Guardfile')
71
- guard = File.read("#{ ::Guard.locate_guard(name) }/lib/guard/#{ name }/templates/Guardfile")
72
-
73
- File.open('Guardfile', 'wb') do |f|
74
- f.puts(content)
75
- f.puts("")
76
- f.puts(guard)
77
- end
78
-
79
- ::Guard::UI.info "#{ name } guard added to Guardfile, feel free to edit it"
80
- end
81
- end
82
-
83
- # Call once when Guard starts. Please override initialize method to init stuff.
84
- #
85
- # @raise [:task_has_failed] when start has failed
86
- # @return [Object] the task result
87
- #
88
- # @!method start
89
-
90
- # Called when `stop|quit|exit|s|q|e + enter` is pressed (when Guard quits).
91
- #
92
- # @raise [:task_has_failed] when stop has failed
93
- # @return [Object] the task result
94
- #
95
- # @!method stop
96
-
97
- # Called when `reload|r|z + enter` is pressed.
98
- # This method should be mainly used for "reload" (really!) actions like reloading passenger/spork/bundler/...
99
- #
100
- # @raise [:task_has_failed] when reload has failed
101
- # @return [Object] the task result
102
- #
103
- # @!method reload
104
-
105
- # Called when just `enter` is pressed
106
- # This method should be principally used for long action like running all specs/tests/...
107
- #
108
- # @raise [:task_has_failed] when run_all has failed
109
- # @return [Object] the task result
110
- #
111
- # @!method run_all
112
-
113
- # Default behaviour on file(s) changes that the Guard plugin watches.
114
- #
115
- # @param [Array<String>] paths the changes files or paths
116
- # @raise [:task_has_failed] when run_on_changes has failed
117
- # @return [Object] the task result
118
- #
119
- # @!method run_on_changes(paths)
120
-
121
- # Called on file(s) additions that the Guard plugin watches.
122
- #
123
- # @param [Array<String>] paths the changes files or paths
124
- # @raise [:task_has_failed] when run_on_additions has failed
125
- # @return [Object] the task result
126
- #
127
- # @!method run_on_additions(paths)
128
-
129
- # Called on file(s) modifications that the Guard plugin watches.
130
- #
131
- # @param [Array<String>] paths the changes files or paths
132
- # @raise [:task_has_failed] when run_on_modifications has failed
133
- # @return [Object] the task result
134
- #
135
- # @!method run_on_modifications(paths)
136
-
137
- # Called on file(s) removals that the Guard plugin watches.
138
- #
139
- # @param [Array<String>] paths the changes files or paths
140
- # @raise [:task_has_failed] when run_on_removals has failed
141
- # @return [Object] the task result
142
- #
143
- # @!method run_on_removals(paths)
144
-
145
- # Convert plugin to string representation. The
146
- # default just uses the plugin class name.
147
- #
148
- # @return [String] the string representation
149
- #
150
- def to_s
151
- self.class.to_s
152
- end
153
-
154
- end
155
-
156
- end