guard 0.8.0 → 0.8.1

Sign up to get free protection for your applications and to get access to all the features.
data/lib/guard/version.rb CHANGED
@@ -1,6 +1,6 @@
1
- module Guard
2
- unless defined? Guard::VERSION
3
- # The current gem version of Guard
4
- VERSION = '0.8.0'
5
- end
6
- end
1
+ module Guard
2
+ unless defined? Guard::VERSION
3
+ # The current gem version of Guard
4
+ VERSION = '0.8.1'
5
+ end
6
+ end
data/lib/guard/watcher.rb CHANGED
@@ -1,110 +1,110 @@
1
- module Guard
2
-
3
- # The watcher defines a RegExp that will be matched against file system modifications.
4
- # When a watcher matches a change, an optional action block is executed to enable
5
- # processing the file system change result.
6
- #
7
- class Watcher
8
-
9
- attr_accessor :pattern, :action
10
-
11
- # Initialize a file watcher.
12
- #
13
- # @param [String, Regexp] pattern the pattern to be watched by the guard
14
- # @param [Block] action the action to execute before passing the result to the Guard
15
- #
16
- def initialize(pattern, action = nil)
17
- @pattern, @action = pattern, action
18
- @@warning_printed ||= false
19
-
20
- # deprecation warning
21
- if @pattern.is_a?(String) && @pattern =~ /(^(\^))|(>?(\\\.)|(\.\*))|(\(.*\))|(\[.*\])|(\$$)/
22
- unless @@warning_printed
23
- UI.info "*"*20 + "\nDEPRECATION WARNING!\n" + "*"*20
24
- UI.info <<-MSG
25
- You have a string in your Guardfile watch patterns that seem to represent a Regexp.
26
- Guard matches String with == and Regexp with Regexp#match.
27
- You should either use plain String (without Regexp special characters) or real Regexp.
28
- MSG
29
- @@warning_printed = true
30
- end
31
-
32
- UI.info "\"#{@pattern}\" has been converted to #{ Regexp.new(@pattern).inspect }\n"
33
- @pattern = Regexp.new(@pattern)
34
- end
35
- end
36
-
37
- # Finds the files that matches a Guard.
38
- #
39
- # @param [Guard::Guard] guard the guard which watchers are used
40
- # @param [Array<String>] files the changed files
41
- # @return [Array<String>] the matched files
42
- #
43
- def self.match_files(guard, files)
44
- guard.watchers.inject([]) do |paths, watcher|
45
- files.each do |file|
46
- if matches = watcher.match_file?(file)
47
- if watcher.action
48
- result = watcher.call_action(matches)
49
- paths << Array(result) if result.respond_to?(:empty?) && !result.empty?
50
- else
51
- paths << matches[0]
52
- end
53
- end
54
- end
55
-
56
- paths.flatten.map { |p| p.to_s }
57
- end
58
- end
59
-
60
- # Test if a file would be matched by any of the Guards watchers.
61
- #
62
- # @param [Array<Guard::Guard>] guards the guards to use the watchers from
63
- # @param [Array<String>] files the files to test
64
- # @return [Boolean] Whether a file matches
65
- #
66
- def self.match_files?(guards, files)
67
- guards.any? do |guard|
68
- guard.watchers.any? do |watcher|
69
- files.any? { |file| watcher.match_file?(file) }
70
- end
71
- end
72
- end
73
-
74
- # Test the watchers pattern against a file.
75
- #
76
- # @param [String] file the file to test
77
- # @return [Boolean] whether the given file is matched
78
- #
79
- def match_file?(file)
80
- if @pattern.is_a?(Regexp)
81
- file.match(@pattern)
82
- else
83
- file == @pattern ? [file] : nil
84
- end
85
- end
86
-
87
- # Test if any of the files is the Guardfile.
88
- #
89
- # @param [Array<String>] the files to test
90
- # @return [Boolean] whether one of these files is the Guardfile
91
- #
92
- def self.match_guardfile?(files)
93
- files.any? { |file| "#{ Dir.pwd }/#{ file }" == Dsl.guardfile_path }
94
- end
95
-
96
- # Executes a watcher action.
97
- #
98
- # @param [String, MatchData] the matched path or the match from the Regex
99
- # @return [String] the final paths
100
- #
101
- def call_action(matches)
102
- begin
103
- @action.arity > 0 ? @action.call(matches) : @action.call
104
- rescue Exception => e
105
- UI.error "Problem with watch action!\n#{ e.message }\n\n#{ e.backtrace.join("\n") }"
106
- end
107
- end
108
-
109
- end
110
- end
1
+ module Guard
2
+
3
+ # The watcher defines a RegExp that will be matched against file system modifications.
4
+ # When a watcher matches a change, an optional action block is executed to enable
5
+ # processing the file system change result.
6
+ #
7
+ class Watcher
8
+
9
+ attr_accessor :pattern, :action
10
+
11
+ # Initialize a file watcher.
12
+ #
13
+ # @param [String, Regexp] pattern the pattern to be watched by the guard
14
+ # @param [Block] action the action to execute before passing the result to the Guard
15
+ #
16
+ def initialize(pattern, action = nil)
17
+ @pattern, @action = pattern, action
18
+ @@warning_printed ||= false
19
+
20
+ # deprecation warning
21
+ if @pattern.is_a?(String) && @pattern =~ /(^(\^))|(>?(\\\.)|(\.\*))|(\(.*\))|(\[.*\])|(\$$)/
22
+ unless @@warning_printed
23
+ UI.info "*"*20 + "\nDEPRECATION WARNING!\n" + "*"*20
24
+ UI.info <<-MSG
25
+ You have a string in your Guardfile watch patterns that seem to represent a Regexp.
26
+ Guard matches String with == and Regexp with Regexp#match.
27
+ You should either use plain String (without Regexp special characters) or real Regexp.
28
+ MSG
29
+ @@warning_printed = true
30
+ end
31
+
32
+ UI.info "\"#{@pattern}\" has been converted to #{ Regexp.new(@pattern).inspect }\n"
33
+ @pattern = Regexp.new(@pattern)
34
+ end
35
+ end
36
+
37
+ # Finds the files that matches a Guard.
38
+ #
39
+ # @param [Guard::Guard] guard the guard which watchers are used
40
+ # @param [Array<String>] files the changed files
41
+ # @return [Array<String>] the matched files
42
+ #
43
+ def self.match_files(guard, files)
44
+ guard.watchers.inject([]) do |paths, watcher|
45
+ files.each do |file|
46
+ if matches = watcher.match_file?(file)
47
+ if watcher.action
48
+ result = watcher.call_action(matches)
49
+ paths << Array(result) if result.respond_to?(:empty?) && !result.empty?
50
+ else
51
+ paths << matches[0]
52
+ end
53
+ end
54
+ end
55
+
56
+ paths.flatten.map { |p| p.to_s }
57
+ end
58
+ end
59
+
60
+ # Test if a file would be matched by any of the Guards watchers.
61
+ #
62
+ # @param [Array<Guard::Guard>] guards the guards to use the watchers from
63
+ # @param [Array<String>] files the files to test
64
+ # @return [Boolean] Whether a file matches
65
+ #
66
+ def self.match_files?(guards, files)
67
+ guards.any? do |guard|
68
+ guard.watchers.any? do |watcher|
69
+ files.any? { |file| watcher.match_file?(file) }
70
+ end
71
+ end
72
+ end
73
+
74
+ # Test the watchers pattern against a file.
75
+ #
76
+ # @param [String] file the file to test
77
+ # @return [Boolean] whether the given file is matched
78
+ #
79
+ def match_file?(file)
80
+ if @pattern.is_a?(Regexp)
81
+ file.match(@pattern)
82
+ else
83
+ file == @pattern ? [file] : nil
84
+ end
85
+ end
86
+
87
+ # Test if any of the files is the Guardfile.
88
+ #
89
+ # @param [Array<String>] the files to test
90
+ # @return [Boolean] whether one of these files is the Guardfile
91
+ #
92
+ def self.match_guardfile?(files)
93
+ files.any? { |file| "#{ Dir.pwd }/#{ file }" == Dsl.guardfile_path }
94
+ end
95
+
96
+ # Executes a watcher action.
97
+ #
98
+ # @param [String, MatchData] the matched path or the match from the Regex
99
+ # @return [String] the final paths
100
+ #
101
+ def call_action(matches)
102
+ begin
103
+ @action.arity > 0 ? @action.call(matches) : @action.call
104
+ rescue Exception => e
105
+ UI.error "Problem with watch action!\n#{ e.message }\n\n#{ e.backtrace.join("\n") }"
106
+ end
107
+ end
108
+
109
+ end
110
+ end
data/man/guard.1 CHANGED
@@ -1,93 +1,93 @@
1
- .\" generated with Ronn/v0.7.3
2
- .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
- .
4
- .TH "GUARD" "1" "September 2011" "" ""
5
- .
6
- .SH "NAME"
7
- \fBguard\fR \- Guard keeps an eye on your file modifications\.
8
- .
9
- .SH "DESCRIPTION"
10
- Guard is a command line tool that easily handle events on files modifications\.
11
- .
12
- .SH "SYNOPSIS"
13
- \fBguard <COMMAND> <OPTIONS>\fR
14
- .
15
- .SH "COMMANDS"
16
- .
17
- .SS "start"
18
- Starts Guard\. This is the default command if none is provided\.
19
- .
20
- .P
21
- The following options are available:
22
- .
23
- .P
24
- \fB\-c\fR, \fB\-\-clear\fR Clears the Shell after each change\.
25
- .
26
- .P
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
- .
29
- .P
30
- \fB\-d\fR, \fB\-\-debug\fR Runs Guard in debug mode\.
31
- .
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\.
34
- .
35
- .P
36
- \fB\-w\fR, \fB\-\-watchdir\fR \fIPATH\fR
37
- .
38
- .P
39
- Tells Guard to watch PATH instead of \fB\./\fR\.
40
- .
41
- .P
42
- \fB\-G\fR, \fB\-\-guardfile\fR \fIFILE\fR Tells Guard to use FILE as its Guardfile instead of \fB\./Guardfile\fR or \fB~/\.Guardfile\fR\.
43
- .
44
- .SS "init [GUARD]"
45
- If no Guardfile is present in the current directory, creates an empty Guardfile\.
46
- .
47
- .P
48
- If \fIGUARD\fR is present, add its default Guardfile configuration to the current Guardfile\. Note that \fIGUARD\fR is the guard\'s name without the \fBguard\-\fR prefix\. For instance to initialize guard\-rspec, run \fBguard init rspec\fR\.
49
- .
50
- .SS "list"
51
- Lists guards that can be used with the \fBinit\fR command\.
52
- .
53
- .SS "\-T, show"
54
- List defined groups and guards for the current Guardfile\.
55
- .
56
- .SS "\-h, help [COMMAND]"
57
- List all of Guard\'s available commands\.
58
- .
59
- .P
60
- If \fICOMMAND\fR is given, displays a specific help for \fITASK\fR\.
61
- .
62
- .SH "EXAMPLES"
63
- Initialize Guard and a specific guard at the same time:
64
- .
65
- .P
66
- \fB[bundle exec] guard init [rspec]\fR
67
- .
68
- .P
69
- Run Guard:
70
- .
71
- .P
72
- \fB[bundle exec] guard [start] \-\-watchdir ~/dev \-\-guardfile ~/env/Guardfile \-\-clear \-\-group backend frontend \-\-notify false \-\-debug\fR
73
- .
74
- .P
75
- or in a more concise way:
76
- .
77
- .P
78
- \fB[bundle exec] guard [start] \-w ~/dev \-G ~/env/Guardfile \-c \-g backend frontend \-n f \-d\fR
79
- .
80
- .SH "AUTHORS / CONTRIBUTORS"
81
- Thibaud Guillaume\-Gentil is the main author\.
82
- .
83
- .P
84
- A list of contributors based on all commits can be found here: https://github\.com/guard/guard/contributors
85
- .
86
- .P
87
- For an exhaustive list of all the contributors, please see the CHANGELOG: https://github\.com/guard/guard/blob/master/CHANGELOG\.md
88
- .
89
- .P
90
- This manual has been written by Remy Coutable\.
91
- .
92
- .SH "WWW"
93
- https://github\.com/guard/guard
1
+ .\" generated with Ronn/v0.7.3
2
+ .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
+ .
4
+ .TH "GUARD" "1" "September 2011" "" ""
5
+ .
6
+ .SH "NAME"
7
+ \fBguard\fR \- Guard keeps an eye on your file modifications\.
8
+ .
9
+ .SH "DESCRIPTION"
10
+ Guard is a command line tool that easily handle events on files modifications\.
11
+ .
12
+ .SH "SYNOPSIS"
13
+ \fBguard <COMMAND> <OPTIONS>\fR
14
+ .
15
+ .SH "COMMANDS"
16
+ .
17
+ .SS "start"
18
+ Starts Guard\. This is the default command if none is provided\.
19
+ .
20
+ .P
21
+ The following options are available:
22
+ .
23
+ .P
24
+ \fB\-c\fR, \fB\-\-clear\fR Clears the Shell after each change\.
25
+ .
26
+ .P
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
+ .
29
+ .P
30
+ \fB\-d\fR, \fB\-\-debug\fR Runs Guard in debug mode\.
31
+ .
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\.
34
+ .
35
+ .P
36
+ \fB\-w\fR, \fB\-\-watchdir\fR \fIPATH\fR
37
+ .
38
+ .P
39
+ Tells Guard to watch PATH instead of \fB\./\fR\.
40
+ .
41
+ .P
42
+ \fB\-G\fR, \fB\-\-guardfile\fR \fIFILE\fR Tells Guard to use FILE as its Guardfile instead of \fB\./Guardfile\fR or \fB~/\.Guardfile\fR\.
43
+ .
44
+ .SS "init [GUARD]"
45
+ If no Guardfile is present in the current directory, creates an empty Guardfile\.
46
+ .
47
+ .P
48
+ If \fIGUARD\fR is present, add its default Guardfile configuration to the current Guardfile\. Note that \fIGUARD\fR is the guard\'s name without the \fBguard\-\fR prefix\. For instance to initialize guard\-rspec, run \fBguard init rspec\fR\.
49
+ .
50
+ .SS "list"
51
+ Lists guards that can be used with the \fBinit\fR command\.
52
+ .
53
+ .SS "\-T, show"
54
+ List defined groups and guards for the current Guardfile\.
55
+ .
56
+ .SS "\-h, help [COMMAND]"
57
+ List all of Guard\'s available commands\.
58
+ .
59
+ .P
60
+ If \fICOMMAND\fR is given, displays a specific help for \fITASK\fR\.
61
+ .
62
+ .SH "EXAMPLES"
63
+ Initialize Guard and a specific guard at the same time:
64
+ .
65
+ .P
66
+ \fB[bundle exec] guard init [rspec]\fR
67
+ .
68
+ .P
69
+ Run Guard:
70
+ .
71
+ .P
72
+ \fB[bundle exec] guard [start] \-\-watchdir ~/dev \-\-guardfile ~/env/Guardfile \-\-clear \-\-group backend frontend \-\-notify false \-\-debug\fR
73
+ .
74
+ .P
75
+ or in a more concise way:
76
+ .
77
+ .P
78
+ \fB[bundle exec] guard [start] \-w ~/dev \-G ~/env/Guardfile \-c \-g backend frontend \-n f \-d\fR
79
+ .
80
+ .SH "AUTHORS / CONTRIBUTORS"
81
+ Thibaud Guillaume\-Gentil is the main author\.
82
+ .
83
+ .P
84
+ A list of contributors based on all commits can be found here: https://github\.com/guard/guard/contributors
85
+ .
86
+ .P
87
+ For an exhaustive list of all the contributors, please see the CHANGELOG: https://github\.com/guard/guard/blob/master/CHANGELOG\.md
88
+ .
89
+ .P
90
+ This manual has been written by Remy Coutable\.
91
+ .
92
+ .SH "WWW"
93
+ https://github\.com/guard/guard
data/man/guard.1.html CHANGED
@@ -1,176 +1,176 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <meta http-equiv='content-type' value='text/html;charset=utf8'>
5
- <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
6
- <title>guard(1) - Guard keeps an eye on your file modifications.</title>
7
- <style type='text/css' media='all'>
8
- /* style: man */
9
- body#manpage {margin:0}
10
- .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
11
- .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
12
- .mp h2 {margin:10px 0 0 0}
13
- .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
14
- .mp h3 {margin:0 0 0 4ex}
15
- .mp dt {margin:0;clear:left}
16
- .mp dt.flush {float:left;width:8ex}
17
- .mp dd {margin:0 0 0 9ex}
18
- .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
19
- .mp pre {margin-bottom:20px}
20
- .mp pre+h2,.mp pre+h3 {margin-top:22px}
21
- .mp h2+pre,.mp h3+pre {margin-top:5px}
22
- .mp img {display:block;margin:auto}
23
- .mp h1.man-title {display:none}
24
- .mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
25
- .mp h2 {font-size:16px;line-height:1.25}
26
- .mp h1 {font-size:20px;line-height:2}
27
- .mp {text-align:justify;background:#fff}
28
- .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
29
- .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
30
- .mp u {text-decoration:underline}
31
- .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
32
- .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
33
- .mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
34
- .mp b.man-ref {font-weight:normal;color:#434241}
35
- .mp pre {padding:0 4ex}
36
- .mp pre code {font-weight:normal;color:#434241}
37
- .mp h2+pre,h3+pre {padding-left:0}
38
- ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
39
- ol.man-decor {width:100%}
40
- ol.man-decor li.tl {text-align:left}
41
- ol.man-decor li.tc {text-align:center;letter-spacing:4px}
42
- ol.man-decor li.tr {text-align:right;float:right}
43
- </style>
44
- </head>
45
- <!--
46
- The following styles are deprecated and will be removed at some point:
47
- div#man, div#man ol.man, div#man ol.head, div#man ol.man.
48
-
49
- The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
50
- .man-navigation should be used instead.
51
- -->
52
- <body id='manpage'>
53
- <div class='mp' id='man'>
54
-
55
- <div class='man-navigation' style='display:none'>
56
- <a href="#NAME">NAME</a>
57
- <a href="#DESCRIPTION">DESCRIPTION</a>
58
- <a href="#SYNOPSIS">SYNOPSIS</a>
59
- <a href="#COMMANDS">COMMANDS</a>
60
- <a href="#EXAMPLES">EXAMPLES</a>
61
- <a href="#AUTHORS-CONTRIBUTORS">AUTHORS / CONTRIBUTORS</a>
62
- <a href="#WWW">WWW</a>
63
- </div>
64
-
65
- <ol class='man-decor man-head man head'>
66
- <li class='tl'>guard(1)</li>
67
- <li class='tc'></li>
68
- <li class='tr'>guard(1)</li>
69
- </ol>
70
-
71
- <h2 id="NAME">NAME</h2>
72
- <p class="man-name">
73
- <code>guard</code> - <span class="man-whatis">Guard keeps an eye on your file modifications.</span>
74
- </p>
75
-
76
- <h2 id="DESCRIPTION">DESCRIPTION</h2>
77
-
78
- <p>Guard is a command line tool that easily handle events on files modifications.</p>
79
-
80
- <h2 id="SYNOPSIS">SYNOPSIS</h2>
81
-
82
- <p><code>guard &lt;COMMAND> &lt;OPTIONS></code></p>
83
-
84
- <h2 id="COMMANDS">COMMANDS</h2>
85
-
86
- <h3 id="start">start</h3>
87
-
88
- <p>Starts Guard. This is the default command if none is provided.</p>
89
-
90
- <p>The following options are available:</p>
91
-
92
- <p><code>-c</code>, <code>--clear</code>
93
- Clears the Shell after each change.</p>
94
-
95
- <p><code>-n</code>, <code>--notify</code> <var>FLAG</var>
96
- Disable notifications (Growl or Libnotify depending on your system).
97
- Notifications can be disabled globally by setting a GUARD_NOTIFY environment variable to false.
98
- FLAG can be <code>true</code>/<code>false</code> or <code>t</code>/<code>f</code>.</p>
99
-
100
- <p><code>-d</code>, <code>--debug</code>
101
- Runs Guard in debug mode.</p>
102
-
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
- <p><code>-w</code>, <code>--watchdir</code> <var>PATH</var></p>
109
-
110
- <p>Tells Guard to watch PATH instead of <code>./</code>.</p>
111
-
112
- <p><code>-G</code>, <code>--guardfile</code> <var>FILE</var>
113
- Tells Guard to use FILE as its Guardfile instead of <code>./Guardfile</code> or <code>~/.Guardfile</code>.</p>
114
-
115
- <h3 id="init-GUARD-">init [GUARD]</h3>
116
-
117
- <p>If no Guardfile is present in the current directory, creates an empty Guardfile.</p>
118
-
119
- <p>If <var>GUARD</var> is present, add its default Guardfile configuration to the current Guardfile.
120
- Note that <var>GUARD</var> is the guard's name without the <code>guard-</code> prefix.
121
- For instance to initialize guard-rspec, run <code>guard init rspec</code>.</p>
122
-
123
- <h3 id="list">list</h3>
124
-
125
- <p>Lists guards that can be used with the <code>init</code> command.</p>
126
-
127
- <h3 id="-T-show">-T, show</h3>
128
-
129
- <p>List defined groups and guards for the current Guardfile.</p>
130
-
131
- <h3 id="-h-help-COMMAND-">-h, help [COMMAND]</h3>
132
-
133
- <p>List all of Guard's available commands.</p>
134
-
135
- <p>If <var>COMMAND</var> is given, displays a specific help for <var>TASK</var>.</p>
136
-
137
- <h2 id="EXAMPLES">EXAMPLES</h2>
138
-
139
- <p>Initialize Guard and a specific guard at the same time:</p>
140
-
141
- <p><code>[bundle exec] guard init [rspec]</code></p>
142
-
143
- <p>Run Guard:</p>
144
-
145
- <p><code>[bundle exec] guard [start] --watchdir ~/dev --guardfile ~/env/Guardfile --clear --group backend frontend --notify false --debug</code></p>
146
-
147
- <p>or in a more concise way:</p>
148
-
149
- <p><code>[bundle exec] guard [start] -w ~/dev -G ~/env/Guardfile -c -g backend frontend -n f -d</code></p>
150
-
151
- <h2 id="AUTHORS-CONTRIBUTORS">AUTHORS / CONTRIBUTORS</h2>
152
-
153
- <p>Thibaud Guillaume-Gentil is the main author.</p>
154
-
155
- <p>A list of contributors based on all commits can be found here:
156
- https://github.com/guard/guard/contributors</p>
157
-
158
- <p>For an exhaustive list of all the contributors, please see the CHANGELOG:
159
- https://github.com/guard/guard/blob/master/CHANGELOG.md</p>
160
-
161
- <p>This manual has been written by Remy Coutable.</p>
162
-
163
- <h2 id="WWW">WWW</h2>
164
-
165
- <p>https://github.com/guard/guard</p>
166
-
167
-
168
- <ol class='man-decor man-foot man foot'>
169
- <li class='tl'></li>
170
- <li class='tc'>September 2011</li>
171
- <li class='tr'>guard(1)</li>
172
- </ol>
173
-
174
- </div>
175
- </body>
176
- </html>
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv='content-type' value='text/html;charset=utf8'>
5
+ <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
6
+ <title>guard(1) - Guard keeps an eye on your file modifications.</title>
7
+ <style type='text/css' media='all'>
8
+ /* style: man */
9
+ body#manpage {margin:0}
10
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
11
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
12
+ .mp h2 {margin:10px 0 0 0}
13
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
14
+ .mp h3 {margin:0 0 0 4ex}
15
+ .mp dt {margin:0;clear:left}
16
+ .mp dt.flush {float:left;width:8ex}
17
+ .mp dd {margin:0 0 0 9ex}
18
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
19
+ .mp pre {margin-bottom:20px}
20
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
21
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
22
+ .mp img {display:block;margin:auto}
23
+ .mp h1.man-title {display:none}
24
+ .mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
25
+ .mp h2 {font-size:16px;line-height:1.25}
26
+ .mp h1 {font-size:20px;line-height:2}
27
+ .mp {text-align:justify;background:#fff}
28
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
29
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
30
+ .mp u {text-decoration:underline}
31
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
32
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
33
+ .mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
34
+ .mp b.man-ref {font-weight:normal;color:#434241}
35
+ .mp pre {padding:0 4ex}
36
+ .mp pre code {font-weight:normal;color:#434241}
37
+ .mp h2+pre,h3+pre {padding-left:0}
38
+ ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
39
+ ol.man-decor {width:100%}
40
+ ol.man-decor li.tl {text-align:left}
41
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
42
+ ol.man-decor li.tr {text-align:right;float:right}
43
+ </style>
44
+ </head>
45
+ <!--
46
+ The following styles are deprecated and will be removed at some point:
47
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
48
+
49
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
50
+ .man-navigation should be used instead.
51
+ -->
52
+ <body id='manpage'>
53
+ <div class='mp' id='man'>
54
+
55
+ <div class='man-navigation' style='display:none'>
56
+ <a href="#NAME">NAME</a>
57
+ <a href="#DESCRIPTION">DESCRIPTION</a>
58
+ <a href="#SYNOPSIS">SYNOPSIS</a>
59
+ <a href="#COMMANDS">COMMANDS</a>
60
+ <a href="#EXAMPLES">EXAMPLES</a>
61
+ <a href="#AUTHORS-CONTRIBUTORS">AUTHORS / CONTRIBUTORS</a>
62
+ <a href="#WWW">WWW</a>
63
+ </div>
64
+
65
+ <ol class='man-decor man-head man head'>
66
+ <li class='tl'>guard(1)</li>
67
+ <li class='tc'></li>
68
+ <li class='tr'>guard(1)</li>
69
+ </ol>
70
+
71
+ <h2 id="NAME">NAME</h2>
72
+ <p class="man-name">
73
+ <code>guard</code> - <span class="man-whatis">Guard keeps an eye on your file modifications.</span>
74
+ </p>
75
+
76
+ <h2 id="DESCRIPTION">DESCRIPTION</h2>
77
+
78
+ <p>Guard is a command line tool that easily handle events on files modifications.</p>
79
+
80
+ <h2 id="SYNOPSIS">SYNOPSIS</h2>
81
+
82
+ <p><code>guard &lt;COMMAND> &lt;OPTIONS></code></p>
83
+
84
+ <h2 id="COMMANDS">COMMANDS</h2>
85
+
86
+ <h3 id="start">start</h3>
87
+
88
+ <p>Starts Guard. This is the default command if none is provided.</p>
89
+
90
+ <p>The following options are available:</p>
91
+
92
+ <p><code>-c</code>, <code>--clear</code>
93
+ Clears the Shell after each change.</p>
94
+
95
+ <p><code>-n</code>, <code>--notify</code> <var>FLAG</var>
96
+ Disable notifications (Growl or Libnotify depending on your system).
97
+ Notifications can be disabled globally by setting a GUARD_NOTIFY environment variable to false.
98
+ FLAG can be <code>true</code>/<code>false</code> or <code>t</code>/<code>f</code>.</p>
99
+
100
+ <p><code>-d</code>, <code>--debug</code>
101
+ Runs Guard in debug mode.</p>
102
+
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
+ <p><code>-w</code>, <code>--watchdir</code> <var>PATH</var></p>
109
+
110
+ <p>Tells Guard to watch PATH instead of <code>./</code>.</p>
111
+
112
+ <p><code>-G</code>, <code>--guardfile</code> <var>FILE</var>
113
+ Tells Guard to use FILE as its Guardfile instead of <code>./Guardfile</code> or <code>~/.Guardfile</code>.</p>
114
+
115
+ <h3 id="init-GUARD-">init [GUARD]</h3>
116
+
117
+ <p>If no Guardfile is present in the current directory, creates an empty Guardfile.</p>
118
+
119
+ <p>If <var>GUARD</var> is present, add its default Guardfile configuration to the current Guardfile.
120
+ Note that <var>GUARD</var> is the guard's name without the <code>guard-</code> prefix.
121
+ For instance to initialize guard-rspec, run <code>guard init rspec</code>.</p>
122
+
123
+ <h3 id="list">list</h3>
124
+
125
+ <p>Lists guards that can be used with the <code>init</code> command.</p>
126
+
127
+ <h3 id="-T-show">-T, show</h3>
128
+
129
+ <p>List defined groups and guards for the current Guardfile.</p>
130
+
131
+ <h3 id="-h-help-COMMAND-">-h, help [COMMAND]</h3>
132
+
133
+ <p>List all of Guard's available commands.</p>
134
+
135
+ <p>If <var>COMMAND</var> is given, displays a specific help for <var>TASK</var>.</p>
136
+
137
+ <h2 id="EXAMPLES">EXAMPLES</h2>
138
+
139
+ <p>Initialize Guard and a specific guard at the same time:</p>
140
+
141
+ <p><code>[bundle exec] guard init [rspec]</code></p>
142
+
143
+ <p>Run Guard:</p>
144
+
145
+ <p><code>[bundle exec] guard [start] --watchdir ~/dev --guardfile ~/env/Guardfile --clear --group backend frontend --notify false --debug</code></p>
146
+
147
+ <p>or in a more concise way:</p>
148
+
149
+ <p><code>[bundle exec] guard [start] -w ~/dev -G ~/env/Guardfile -c -g backend frontend -n f -d</code></p>
150
+
151
+ <h2 id="AUTHORS-CONTRIBUTORS">AUTHORS / CONTRIBUTORS</h2>
152
+
153
+ <p>Thibaud Guillaume-Gentil is the main author.</p>
154
+
155
+ <p>A list of contributors based on all commits can be found here:
156
+ https://github.com/guard/guard/contributors</p>
157
+
158
+ <p>For an exhaustive list of all the contributors, please see the CHANGELOG:
159
+ https://github.com/guard/guard/blob/master/CHANGELOG.md</p>
160
+
161
+ <p>This manual has been written by Remy Coutable.</p>
162
+
163
+ <h2 id="WWW">WWW</h2>
164
+
165
+ <p>https://github.com/guard/guard</p>
166
+
167
+
168
+ <ol class='man-decor man-foot man foot'>
169
+ <li class='tl'></li>
170
+ <li class='tc'>September 2011</li>
171
+ <li class='tr'>guard(1)</li>
172
+ </ol>
173
+
174
+ </div>
175
+ </body>
176
+ </html>