guard 1.5.3 → 1.5.4
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.
- data/CHANGELOG.md +14 -1
- data/README.md +20 -16
- data/lib/guard.rb +18 -16
- data/lib/guard/interactor.rb +2 -0
- data/lib/guard/notifier.rb +1 -0
- data/lib/guard/notifiers/terminal_title.rb +1 -5
- data/lib/guard/version.rb +1 -1
- metadata +3 -6
data/CHANGELOG.md
CHANGED
@@ -1,9 +1,19 @@
|
|
1
|
+
## 1.5.4 - 9 November, 2012
|
2
|
+
|
3
|
+
### Improvements
|
4
|
+
|
5
|
+
- Thread handling improved and added thread debug mode. ([@netzpirat][])
|
6
|
+
|
7
|
+
## Bug fix
|
8
|
+
|
9
|
+
- [#358][] Ignore `~/.pryrc` since it breaks Guard when loading the Rails env. ([@netzpirat][])
|
10
|
+
|
1
11
|
## 1.5.3 - 31 October, 2012
|
2
12
|
|
3
13
|
### Bug fix
|
4
14
|
|
5
15
|
- [#352][] Guard always reloading twice. ([@netzpirat][])
|
6
|
-
- [#354][] Ignore
|
16
|
+
- [#354][] Ignore `./.pryrc` since it breaks Guard when loading the Rails env. ([@netzpirat][])
|
7
17
|
|
8
18
|
## 1.5.2 - 29 October, 2012
|
9
19
|
|
@@ -643,7 +653,10 @@ The Listen integration has been supervised by [@thibaudgg][] and executed by [@M
|
|
643
653
|
[#345]: https://github.com/guard/guard/issues/345
|
644
654
|
[#348]: https://github.com/guard/guard/issues/348
|
645
655
|
[#351]: https://github.com/guard/guard/issues/351
|
656
|
+
[#352]: https://github.com/guard/guard/issues/352
|
646
657
|
[#353]: https://github.com/guard/guard/issues/353
|
658
|
+
[#354]: https://github.com/guard/guard/issues/354
|
659
|
+
[#358]: https://github.com/guard/guard/issues/358
|
647
660
|
[@Gazer]: https://github.com/Gazer
|
648
661
|
[@Maher4Ever]: https://github.com/Maher4Ever
|
649
662
|
[@alandipert]: https://github.com/alandipert
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
Guard [](http://travis-ci.org/guard/guard) [](https://gemnasium.com/guard/guard)
|
1
|
+
Guard [](http://travis-ci.org/guard/guard) [](https://gemnasium.com/guard/guard) [](https://codeclimate.com/github/guard/guard)
|
2
2
|
=====
|
3
3
|
|
4
4
|
Guard is a command line tool to easily handle events on file system modifications.
|
@@ -52,25 +52,25 @@ Generate an empty `Guardfile` with:
|
|
52
52
|
$ guard init
|
53
53
|
```
|
54
54
|
|
55
|
-
**It's important that you always run Guard through Bundler to avoid errors.** If you're getting sick of typing
|
56
|
-
the time, try the [Rubygems Bundler](https://github.com/mpapis/rubygems-bundler).
|
55
|
+
**It's important that you always run Guard through Bundler to avoid errors.** If you're getting sick of typing
|
56
|
+
`bundle exec` all the time, try the [Rubygems Bundler](https://github.com/mpapis/rubygems-bundler).
|
57
|
+
|
58
|
+
If you are on Mac OS X and have problems with either Guard not reacting to file changes or Pry behaving strange, then
|
59
|
+
you should [add proper Readline support to Ruby on Mac OS X](https://github.com/guard/guard/wiki/Add-proper-Readline-support-to-Ruby-on-Mac-OS-X).
|
57
60
|
|
58
61
|
## Efficient Filesystem Handling
|
59
62
|
|
60
|
-
Various operating systems are willing to notify you of changes to files, but the API to
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
one of the supported gems for these methods, Guard will fall back to polling, and give you a
|
65
|
-
warning about it doing so.
|
63
|
+
Various operating systems are willing to notify you of changes to files, but the API to register/receive updates varies
|
64
|
+
(see [rb-fsevent](https://github.com/thibaudgg/rb-fsevent) for OS X, [rb-inotify](https://github.com/nex3/rb-inotify)
|
65
|
+
for Linux, and [rb-fchange](https://github.com/stereobooster/rb-fchange) for Windows). If you do not supply one of the
|
66
|
+
supported gems for these methods, Guard will fall back to polling, and give you a warning about it doing so.
|
66
67
|
|
67
|
-
A challenge arises when trying to make these dependencies work with [Bundler](http://gembundler.com/).
|
68
|
-
|
69
|
-
|
70
|
-
thrash the file back and forth.
|
68
|
+
A challenge arises when trying to make these dependencies work with [Bundler](http://gembundler.com/). If you simply put
|
69
|
+
one of these dependencies into you `Gemfile`, even if it is conditional on a platform match, the platform-specific gem
|
70
|
+
will end up in the `Gemfile.lock`, and developers will thrash the file back and forth.
|
71
71
|
|
72
|
-
There is a good solution. All three gems will successfully, quietly install on all three operating
|
73
|
-
|
72
|
+
There is a good solution. All three gems will successfully, quietly install on all three operating systems, and
|
73
|
+
`guard/listen` will only pull in the one you need. This is a more proper `Gemfile`:
|
74
74
|
|
75
75
|
```Ruby
|
76
76
|
group :development do
|
@@ -816,14 +816,18 @@ using?
|
|
816
816
|
|
817
817
|
When you file a bug, please try to follow these simple rules if applicable:
|
818
818
|
|
819
|
+
* Make sure you've read the README carefully.
|
819
820
|
* Make sure you run Guard with `bundle exec` first.
|
820
821
|
* Add debug information to the issue by running Guard with the `--debug` option.
|
821
822
|
* Add your `Guardfile` and `Gemfile` to the issue.
|
823
|
+
* Provide information about your environment:
|
824
|
+
* Your current versions of your OS, Ruby, Rubygems and Bundler.
|
825
|
+
* Shared project folder with services like Dropbox, NFS, etc.
|
822
826
|
* Make sure that the issue is reproducible with your description.
|
823
827
|
|
824
828
|
**It's most likely that your bug gets resolved faster if you provide as much information as possible!**
|
825
829
|
|
826
|
-
Development
|
830
|
+
Development
|
827
831
|
-----------
|
828
832
|
|
829
833
|
* Documentation hosted at [RubyDoc](http://rubydoc.info/github/guard/guard/master/frames).
|
data/lib/guard.rb
CHANGED
@@ -44,7 +44,12 @@ module Guard
|
|
44
44
|
@options = options.dup
|
45
45
|
@watchdir = (options[:watchdir] && File.expand_path(options[:watchdir])) || Dir.pwd
|
46
46
|
@runner = ::Guard::Runner.new
|
47
|
-
|
47
|
+
|
48
|
+
if @options[:debug]
|
49
|
+
Thread.abort_on_exception = true
|
50
|
+
::Guard::UI.options[:level] = :debug
|
51
|
+
debug_command_execution
|
52
|
+
end
|
48
53
|
|
49
54
|
::Guard::UI.clear(:force => true)
|
50
55
|
deprecated_options_warning
|
@@ -59,11 +64,6 @@ module Guard
|
|
59
64
|
|
60
65
|
runner.deprecation_warning if @options[:show_deprecations]
|
61
66
|
|
62
|
-
if @options[:debug]
|
63
|
-
::Guard::UI.options[:level] = :debug
|
64
|
-
debug_command_execution
|
65
|
-
end
|
66
|
-
|
67
67
|
setup_notifier
|
68
68
|
setup_interactor
|
69
69
|
|
@@ -162,20 +162,20 @@ module Guard
|
|
162
162
|
runner.run(:start)
|
163
163
|
end
|
164
164
|
|
165
|
-
|
166
|
-
|
167
|
-
@allow_stop.wait if @allow_stop
|
165
|
+
# Blocks main thread
|
166
|
+
listener.start
|
168
167
|
end
|
169
168
|
|
170
169
|
# Stop Guard listening to file changes
|
171
170
|
#
|
172
171
|
def stop
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
::Guard::UI.info 'Bye bye...', :reset => true
|
172
|
+
within_preserved_state(false) do
|
173
|
+
runner.run(:stop)
|
174
|
+
::Guard::UI.info 'Bye bye...', :reset => true
|
177
175
|
|
178
|
-
|
176
|
+
# Unblocks main thread
|
177
|
+
listener.stop
|
178
|
+
end
|
179
179
|
end
|
180
180
|
|
181
181
|
# Reload Guardfile and all Guard plugins currently enabled.
|
@@ -324,9 +324,10 @@ module Guard
|
|
324
324
|
# blocked and execution is synchronized
|
325
325
|
# to avoid state inconsistency.
|
326
326
|
#
|
327
|
+
# @param [Boolean] restart_interactor whether to restart the interactor or not
|
327
328
|
# @yield the block to run
|
328
329
|
#
|
329
|
-
def within_preserved_state
|
330
|
+
def within_preserved_state(restart_interactor = true)
|
330
331
|
lock.synchronize do
|
331
332
|
begin
|
332
333
|
interactor.stop if interactor
|
@@ -334,8 +335,9 @@ module Guard
|
|
334
335
|
rescue Interrupt
|
335
336
|
end
|
336
337
|
|
337
|
-
interactor.start if interactor
|
338
|
+
interactor.start if interactor && restart_interactor
|
338
339
|
end
|
340
|
+
|
339
341
|
@result
|
340
342
|
end
|
341
343
|
|
data/lib/guard/interactor.rb
CHANGED
@@ -27,6 +27,7 @@ module Guard
|
|
27
27
|
def initialize
|
28
28
|
return if ENV['GUARD_ENV'] == 'test'
|
29
29
|
|
30
|
+
Pry.config.should_load_rc = false
|
30
31
|
Pry.config.should_load_local_rc = false
|
31
32
|
Pry.config.history.file = HISTORY_FILE
|
32
33
|
|
@@ -145,6 +146,7 @@ module Guard
|
|
145
146
|
return if !@thread || ENV['GUARD_ENV'] == 'test'
|
146
147
|
|
147
148
|
unless Thread.current == @thread
|
149
|
+
::Guard::UI.reset_line
|
148
150
|
::Guard::UI.debug 'Stop interactor'
|
149
151
|
@thread.kill
|
150
152
|
end
|
data/lib/guard/notifier.rb
CHANGED
@@ -23,11 +23,7 @@ module Guard
|
|
23
23
|
#
|
24
24
|
def notify(type, title, message, image, options = { })
|
25
25
|
first_line = message.sub(/^\n/, '').sub(/\n.*/m, '')
|
26
|
-
|
27
|
-
end
|
28
|
-
|
29
|
-
def set_terminal_title(text)
|
30
|
-
puts "\e]2;#{text}\a"
|
26
|
+
puts("\e]2;[#{ title }] #{ first_line }\a")
|
31
27
|
end
|
32
28
|
end
|
33
29
|
end
|
data/lib/guard/version.rb
CHANGED
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: 1.5.
|
4
|
+
version: 1.5.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-11-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: thor
|
@@ -185,9 +185,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
185
185
|
- - ! '>='
|
186
186
|
- !ruby/object:Gem::Version
|
187
187
|
version: '0'
|
188
|
-
segments:
|
189
|
-
- 0
|
190
|
-
hash: -1910218198348656087
|
191
188
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
192
189
|
none: false
|
193
190
|
requirements:
|
@@ -196,7 +193,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
196
193
|
version: 1.3.6
|
197
194
|
requirements: []
|
198
195
|
rubyforge_project: guard
|
199
|
-
rubygems_version: 1.8.
|
196
|
+
rubygems_version: 1.8.23
|
200
197
|
signing_key:
|
201
198
|
specification_version: 3
|
202
199
|
summary: Guard keeps an eye on your file modifications
|