guard 0.4.0 → 0.4.1
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 +159 -0
- data/README.md +17 -2
- data/lib/guard.rb +15 -9
- data/lib/guard/listeners/darwin.rb +5 -2
- data/lib/guard/listeners/linux.rb +5 -2
- data/lib/guard/notifier.rb +3 -3
- data/lib/guard/version.rb +1 -1
- metadata +52 -56
data/CHANGELOG.md
ADDED
@@ -0,0 +1,159 @@
|
|
1
|
+
## 0.4.1 - June 7, 2011
|
2
|
+
|
3
|
+
### Improvements
|
4
|
+
|
5
|
+
- Pull request [#77](https://github.com/guard/guard/pull/77): Refactor `get_guard_class` to first try the constant and fallback to require + various tweaks ([@mislav][])
|
6
|
+
- Notifier improvement, don't use system notification library if could not be required ([@yannlugrin][])
|
7
|
+
|
8
|
+
## 0.4.0 - June 5, 2011
|
9
|
+
|
10
|
+
### Bugs fixes:
|
11
|
+
|
12
|
+
- In Ruby < 1.9, Symbol#downcase doesn't exist! ([@rymai][])
|
13
|
+
|
14
|
+
### New features:
|
15
|
+
|
16
|
+
- Pull request [#73](https://github.com/guard/guard/pull/73): Allow DSL's `group` method to accept a Symbol as group name. ([@johnbintz][])
|
17
|
+
- Pull request [#51](https://github.com/guard/guard/pull/51): Allow options (like :priority) to be passed through to the Notifier. ([@indirect][] and [@netzpirat][])
|
18
|
+
|
19
|
+
### Improvements
|
20
|
+
|
21
|
+
- Pull request [#74](https://github.com/guard/guard/pull/74): Added link definitions to make the CHANGELOG more DRY! That's for sure now, we have the cleanest CHANGELOG ever! (even the link definitions are sorted alphabetically!) ([@pcreux][])
|
22
|
+
|
23
|
+
## 0.4.0.rc - May 28, 2011
|
24
|
+
|
25
|
+
### Bugs fixes:
|
26
|
+
|
27
|
+
- Pull request [#69](https://github.com/guard/guard/pull/69): Fixed typo in README: Ctr-/ => Ctr-\\. ([@tinogomes][])
|
28
|
+
- Pull request [#66](https://github.com/guard/guard/pull/66): Support for dashes in guard names. ([@johnbintz][])
|
29
|
+
- Require `guard/ui` because `Guard::Notifier` can be required without full Guard. ([@yannlugrin][])
|
30
|
+
- Handled quick file (<1s) modification. Avoid to catch modified files without content modification (sha1 checksum). ([@thibaudgg][] and [@netzpirat][])
|
31
|
+
- Fixed `Guard::Notifier` (when growl/libnotify not present). ([@thibaudgg][])
|
32
|
+
- Fixed Rubygems deprecation messages. ([@thibaudgg][])
|
33
|
+
|
34
|
+
### New features:
|
35
|
+
|
36
|
+
- Pull request [#67](https://github.com/guard/guard/pull/67): Allow Guardfile in `$HOME` folder. ([@hashrocketeer][])
|
37
|
+
- Pull request [#64](https://github.com/guard/guard/pull/64): Windows notifications support. ([@stereobooster][])
|
38
|
+
- Pull request [#63](https://github.com/guard/guard/pull/63): Refactor listeners to work as a library. ([@niklas][])
|
39
|
+
- Use `ENV["GUARD_NOTIFY"]` to disable notifications. ([@thibaudgg][])
|
40
|
+
- Cleaning up all specs. ([@netzpirat][])
|
41
|
+
- Pull request [#60](https://github.com/guard/guard/pull/60): Added Windows support. ([@stereobooster][])
|
42
|
+
- Pull request [#58](https://github.com/guard/guard/pull/58): Extract code from signal handlers into methods. ([@nicksieger][])
|
43
|
+
- Pull request [#55](https://github.com/guard/guard/pull/55): It is now possible to pass `:guardfile` (a Guardfile path) or `:guardfile_contents` (the content of a Guardfile) to `Guard::Dsl.evaluate_guardfile`. Hence this allows the use of `Guard::Dsl.evaluate_guardfile` in a programmatic manner. ([@anithri][], improved by [@rymai][])
|
44
|
+
|
45
|
+
|
46
|
+
## 0.3.4 - April 24, 2011
|
47
|
+
|
48
|
+
### Bugs fixes:
|
49
|
+
|
50
|
+
- Issue [#41](https://github.com/guard/guard/issues/41): Removed useless Bundler requirement. ([@thibaudgg][])
|
51
|
+
|
52
|
+
### New features:
|
53
|
+
|
54
|
+
- Changed CHANGELOG from RDOC to Markdown and cleaned it! Let's celebrate! ([@rymai][])
|
55
|
+
- Changed README from RDOC to Markdown! Let's celebrate! ([@thibaudgg][])
|
56
|
+
- Issue [#48](https://github.com/guard/guard/issues/48): Adding support for inline Guard classes rather than requiring a gem. ([@jrsacks][])
|
57
|
+
|
58
|
+
|
59
|
+
## 0.3.3 - April 18, 2011
|
60
|
+
|
61
|
+
### Bugs fixes:
|
62
|
+
|
63
|
+
- Fixed `new_modified_files` rerun conditions on `Guard.run_on_change_for_all_guards`. ([@thibaudgg][])
|
64
|
+
|
65
|
+
|
66
|
+
## 0.3.2 - April 17, 2011
|
67
|
+
|
68
|
+
### Bugs fixes:
|
69
|
+
|
70
|
+
- Pull request [#43](https://github.com/guard/guard/pull/43): Fixed `guard init` command. ([@brainopia][])
|
71
|
+
|
72
|
+
|
73
|
+
## 0.3.1 - April 14, 2011
|
74
|
+
|
75
|
+
### Bugs fixes:
|
76
|
+
|
77
|
+
- Return unique filenames from Linux listener. (Marian Schubert)
|
78
|
+
- `Guard.get_guard_class` return wrong class when loaded nested class. ([@koshigoe][])
|
79
|
+
- Issue [#35](https://github.com/guard/guard/issues/35): Fixed open-gem/gem_open dependency problem by using `gem which` to locate guards gem path. (reported by [@thierryhenrio][], fixed by [@thibaudgg][])
|
80
|
+
- Issue [#38](https://github.com/guard/guard/issues/38) & Pull request [#39](https://github.com/guard/guard/issues/39): Fixed an invalid ANSI escape code in `Guard::UI.reset_line`. ([@gix][])
|
81
|
+
|
82
|
+
### New features:
|
83
|
+
|
84
|
+
- Issue [#28](https://github.com/guard/guard/issues/28): New `-n` command line option to disable notifications (Growl / Libnotify). ([@thibaudgg][])
|
85
|
+
|
86
|
+
|
87
|
+
## 0.3.0 - January 19, 2011
|
88
|
+
|
89
|
+
### Bugs fixes:
|
90
|
+
|
91
|
+
- Avoid launching `run_on_change` guards method when no files matched. `--clear` guard argument is now usable. ([@thibaudgg][])
|
92
|
+
|
93
|
+
### New features:
|
94
|
+
|
95
|
+
- The whole directory is now watched during `run_on_change` to detect new files modifications. ([@thibaudgg][])
|
96
|
+
- Pull request [#26](https://github.com/guard/guard/pull/26): New DSL method: `group` allows you to group several guards. New CLI option: `--group group_name` to specify certain groups of guards to start. ([@netzpirat][])
|
97
|
+
- `watch` patterns are now more strict: strings are matched with `String#==`, `Regexp` are matched with `Regexp#match`. ([@rymai][])
|
98
|
+
- A deprecation warning is displayed if your `Guardfile` contains `String` that look like `Regexp` (bad!). ([@rymai][])
|
99
|
+
- It's now possible to return an `Enumerable` in the `watch` optional blocks in the `Guardfile`. ([@rymai][])
|
100
|
+
|
101
|
+
### New specs:
|
102
|
+
|
103
|
+
- `Guard::Watcher`. ([@rymai][])
|
104
|
+
- Pull request [#13](https://github.com/guard/guard/pull/13): `Guard::Dsl`. ([@oliamb][])
|
105
|
+
|
106
|
+
|
107
|
+
## 0.2.2 - October 25, 2010
|
108
|
+
|
109
|
+
### Bugs fixes:
|
110
|
+
|
111
|
+
- Issue [#5](https://github.com/guard/guard/issues/5): avoid creating new copy of `fsevent_watch` every time a file is changed. (reported by [@stouset][], fixed by [@thibaudgg][])
|
112
|
+
|
113
|
+
|
114
|
+
## 0.2.1 - October 24, 2010
|
115
|
+
|
116
|
+
### Bugs fixes:
|
117
|
+
|
118
|
+
- Pull request [#7](https://github.com/guard/guard/pull/7): Fixes for Linux support. ([@yannlugrin][]))
|
119
|
+
- Pull request [#6](https://github.com/guard/guard/pull/6): Locate guard now chomp newline in result path. ([@yannlugrin][]))
|
120
|
+
|
121
|
+
|
122
|
+
## 0.2.0 - October 21, 2010
|
123
|
+
|
124
|
+
### Bugs fixes:
|
125
|
+
|
126
|
+
- Issue [#3](https://github.com/guard/guard/issues/3): `guard init <guard-name>` no more need `Gemfile` but `open_gem` is required now. (reported by [@wereHamster][], fixed by [@thibaudgg][])
|
127
|
+
- Issue [#2](https://github.com/guard/guard/issues/2): 1.8.6 compatibility. (reported by [@veged][], fixed by [@thibaudgg][])
|
128
|
+
- Removes Growl & Libnotify dependencies. ([@thibaudgg][])
|
129
|
+
|
130
|
+
|
131
|
+
## 0.2.0.beta.1 - October 17, 2010
|
132
|
+
|
133
|
+
### New features:
|
134
|
+
|
135
|
+
- Improved listeners support (`rb-fsevent` & `rb-inotify`). ([@thibaudgg][])
|
136
|
+
- Added polling listening fallback. ([@thibaudgg][])
|
137
|
+
|
138
|
+
[@anithri]: https://github.com/anithri
|
139
|
+
[@brainopia]: https://github.com/brainopia
|
140
|
+
[@gix]: https://github.com/gix
|
141
|
+
[@hashrocketeer]: https://github.com/hashrocketeer
|
142
|
+
[@indirect]: https://github.com/indirect
|
143
|
+
[@johnbintz]: https://github.com/johnbintz
|
144
|
+
[@jrsacks]: https://github.com/jrsacks
|
145
|
+
[@koshigoe]: https://github.com/koshigoe
|
146
|
+
[@netzpirat]: https://github.com/netzpirat
|
147
|
+
[@nicksieger]: https://github.com/nicksieger
|
148
|
+
[@niklas]: https://github.com/niklas
|
149
|
+
[@oliamb]: https://github.com/oliamb
|
150
|
+
[@pcreux]: https://github.com/pcreux
|
151
|
+
[@rymai]: https://github.com/rymai
|
152
|
+
[@stereobooster]: https://github.com/stereobooster
|
153
|
+
[@stouset]: https://github.com/stouset
|
154
|
+
[@thibaudgg]: https://github.com/thibaudgg
|
155
|
+
[@thierryhenrio]: https://github.com/thierryhenrio
|
156
|
+
[@tinogomes]: https://github.com/tinogomes
|
157
|
+
[@veged]: https://github.com/veged
|
158
|
+
[@wereHamster]: https://github.com/wereHamster
|
159
|
+
[@yannlugrin]: https://github.com/yannlugrin
|
data/README.md
CHANGED
@@ -56,9 +56,10 @@ Install the Growl gem if you want notification support:
|
|
56
56
|
$ gem install growl
|
57
57
|
```
|
58
58
|
|
59
|
-
And add
|
59
|
+
And add them to your Gemfile:
|
60
60
|
|
61
61
|
``` ruby
|
62
|
+
gem 'rb-fsevent'
|
62
63
|
gem 'growl'
|
63
64
|
```
|
64
65
|
|
@@ -76,9 +77,10 @@ Install the Libnotify gem if you want notification support:
|
|
76
77
|
$ gem install libnotify
|
77
78
|
```
|
78
79
|
|
79
|
-
And add
|
80
|
+
And add them to your Gemfile:
|
80
81
|
|
81
82
|
``` ruby
|
83
|
+
gem 'rb-inotify'
|
82
84
|
gem 'libnotify'
|
83
85
|
```
|
84
86
|
|
@@ -90,6 +92,19 @@ Install the rb-fchange gem for [Directory Change Notification](http://msdn.micro
|
|
90
92
|
$ gem install rb-fchange
|
91
93
|
```
|
92
94
|
|
95
|
+
Install the Notifu gem if you want notification support:
|
96
|
+
|
97
|
+
``` bash
|
98
|
+
$ gem install rb-notifu
|
99
|
+
```
|
100
|
+
|
101
|
+
And add them to your Gemfile:
|
102
|
+
|
103
|
+
``` ruby
|
104
|
+
gem 'rb-fchange'
|
105
|
+
gem 'rb-notifu'
|
106
|
+
```
|
107
|
+
|
93
108
|
Usage
|
94
109
|
-----
|
95
110
|
|
data/lib/guard.rb
CHANGED
@@ -81,15 +81,21 @@ module Guard
|
|
81
81
|
end
|
82
82
|
|
83
83
|
def get_guard_class(name)
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
84
|
+
try_require = false
|
85
|
+
const_name = name.to_s.downcase.gsub('-', '')
|
86
|
+
begin
|
87
|
+
require "guard/#{name.downcase}" if try_require
|
88
|
+
self.const_get(self.constants.find {|c| c.to_s.downcase == const_name })
|
89
|
+
rescue TypeError
|
90
|
+
unless try_require
|
91
|
+
try_require = true
|
92
|
+
retry
|
93
|
+
else
|
94
|
+
UI.error "Could not find class Guard::#{const_name.capitalize}"
|
95
|
+
end
|
96
|
+
rescue LoadError
|
97
|
+
UI.error "Could not load 'guard/#{name.downcase}' or find class Guard::#{const_name.capitalize}"
|
98
|
+
end
|
93
99
|
end
|
94
100
|
|
95
101
|
def locate_guard(name)
|
@@ -23,10 +23,13 @@ module Guard
|
|
23
23
|
|
24
24
|
def self.usable?
|
25
25
|
require 'rb-fsevent'
|
26
|
-
if !defined?(FSEvent::VERSION) || Gem::Version
|
26
|
+
if !defined?(FSEvent::VERSION) || (defined?(Gem::Version) &&
|
27
|
+
Gem::Version.new(FSEvent::VERSION) < Gem::Version.new('0.4.0'))
|
27
28
|
UI.info "Please update rb-fsevent (>= 0.4.0)"
|
29
|
+
false
|
30
|
+
else
|
31
|
+
true
|
28
32
|
end
|
29
|
-
true
|
30
33
|
rescue LoadError
|
31
34
|
UI.info "Please install rb-fsevent gem for Mac OSX FSEvents support"
|
32
35
|
false
|
@@ -24,10 +24,13 @@ module Guard
|
|
24
24
|
|
25
25
|
def self.usable?
|
26
26
|
require 'rb-inotify'
|
27
|
-
if !defined?(INotify::VERSION) ||
|
27
|
+
if !defined?(INotify::VERSION) || (defined?(Gem::Version) &&
|
28
|
+
Gem::Version.new(INotify::VERSION.join('.')) < Gem::Version.new('0.8.5'))
|
28
29
|
UI.info "Please update rb-inotify (>= 0.8.5)"
|
30
|
+
false
|
31
|
+
else
|
32
|
+
true
|
29
33
|
end
|
30
|
-
true
|
31
34
|
rescue LoadError
|
32
35
|
UI.info "Please install rb-inotify gem for Linux inotify support"
|
33
36
|
false
|
data/lib/guard/notifier.rb
CHANGED
@@ -46,19 +46,19 @@ module Guard
|
|
46
46
|
def self.notify_mac(title, message, image, options)
|
47
47
|
require_growl # need for guard-rspec formatter that is called out of guard scope
|
48
48
|
default_options = { :title => title, :icon => image_path(image), :name => "Guard" }
|
49
|
-
Growl.notify message, default_options.merge(options)
|
49
|
+
Growl.notify message, default_options.merge(options) if enabled?
|
50
50
|
end
|
51
51
|
|
52
52
|
def self.notify_linux(title, message, image, options)
|
53
53
|
require_libnotify # need for guard-rspec formatter that is called out of guard scope
|
54
54
|
default_options = { :body => message, :summary => title, :icon_path => image_path(image) }
|
55
|
-
Libnotify.show default_options.merge(options)
|
55
|
+
Libnotify.show default_options.merge(options) if enabled?
|
56
56
|
end
|
57
57
|
|
58
58
|
def self.notify_windows(title, message, image, options)
|
59
59
|
require_rbnotifu # need for guard-rspec formatter that is called out of guard scope
|
60
60
|
default_options = { :message => message, :title => title, :type => image_level(image), :time => 3 }
|
61
|
-
Notifu.show default_options.merge(options)
|
61
|
+
Notifu.show default_options.merge(options) if enabled?
|
62
62
|
end
|
63
63
|
|
64
64
|
def self.image_path(image)
|
data/lib/guard/version.rb
CHANGED
metadata
CHANGED
@@ -1,71 +1,69 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: guard
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.4.1
|
4
5
|
prerelease:
|
5
|
-
version: 0.4.0
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Thibaud Guillaume-Gentil
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
dependencies:
|
15
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2011-06-07 00:00:00.000000000 +02:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|
17
|
-
|
18
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
17
|
+
requirement: &2153399780 !ruby/object:Gem::Requirement
|
19
18
|
none: false
|
20
|
-
requirements:
|
21
|
-
- -
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version:
|
19
|
+
requirements:
|
20
|
+
- - ! '>='
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '0'
|
24
23
|
type: :development
|
25
|
-
version_requirements: *id001
|
26
|
-
- !ruby/object:Gem::Dependency
|
27
|
-
name: rspec
|
28
24
|
prerelease: false
|
29
|
-
|
25
|
+
version_requirements: *2153399780
|
26
|
+
- !ruby/object:Gem::Dependency
|
27
|
+
name: rspec
|
28
|
+
requirement: &2153399240 !ruby/object:Gem::Requirement
|
30
29
|
none: false
|
31
|
-
requirements:
|
30
|
+
requirements:
|
32
31
|
- - ~>
|
33
|
-
- !ruby/object:Gem::Version
|
32
|
+
- !ruby/object:Gem::Version
|
34
33
|
version: 2.6.0
|
35
34
|
type: :development
|
36
|
-
version_requirements: *id002
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
name: guard-rspec
|
39
35
|
prerelease: false
|
40
|
-
|
36
|
+
version_requirements: *2153399240
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: guard-rspec
|
39
|
+
requirement: &2153398740 !ruby/object:Gem::Requirement
|
41
40
|
none: false
|
42
|
-
requirements:
|
41
|
+
requirements:
|
43
42
|
- - ~>
|
44
|
-
- !ruby/object:Gem::Version
|
43
|
+
- !ruby/object:Gem::Version
|
45
44
|
version: 0.3.1
|
46
45
|
type: :development
|
47
|
-
version_requirements: *id003
|
48
|
-
- !ruby/object:Gem::Dependency
|
49
|
-
name: thor
|
50
46
|
prerelease: false
|
51
|
-
|
47
|
+
version_requirements: *2153398740
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: thor
|
50
|
+
requirement: &2153398280 !ruby/object:Gem::Requirement
|
52
51
|
none: false
|
53
|
-
requirements:
|
52
|
+
requirements:
|
54
53
|
- - ~>
|
55
|
-
- !ruby/object:Gem::Version
|
54
|
+
- !ruby/object:Gem::Version
|
56
55
|
version: 0.14.6
|
57
56
|
type: :runtime
|
58
|
-
|
59
|
-
|
60
|
-
|
57
|
+
prerelease: false
|
58
|
+
version_requirements: *2153398280
|
59
|
+
description: Guard is a command line tool to easily handle events on file system modifications.
|
60
|
+
email:
|
61
61
|
- thibaud@thibaud.me
|
62
|
-
executables:
|
62
|
+
executables:
|
63
63
|
- guard
|
64
64
|
extensions: []
|
65
|
-
|
66
65
|
extra_rdoc_files: []
|
67
|
-
|
68
|
-
files:
|
66
|
+
files:
|
69
67
|
- bin/guard
|
70
68
|
- images/failed.png
|
71
69
|
- images/pending.png
|
@@ -87,32 +85,30 @@ files:
|
|
87
85
|
- lib/guard.rb
|
88
86
|
- LICENSE
|
89
87
|
- README.md
|
90
|
-
|
88
|
+
- CHANGELOG.md
|
89
|
+
has_rdoc: true
|
90
|
+
homepage: https://github.com/guard/guard
|
91
91
|
licenses: []
|
92
|
-
|
93
92
|
post_install_message:
|
94
93
|
rdoc_options: []
|
95
|
-
|
96
|
-
require_paths:
|
94
|
+
require_paths:
|
97
95
|
- lib
|
98
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
96
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
99
97
|
none: false
|
100
|
-
requirements:
|
101
|
-
- -
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version:
|
104
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
102
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
105
103
|
none: false
|
106
|
-
requirements:
|
107
|
-
- -
|
108
|
-
- !ruby/object:Gem::Version
|
104
|
+
requirements:
|
105
|
+
- - ! '>='
|
106
|
+
- !ruby/object:Gem::Version
|
109
107
|
version: 1.3.6
|
110
108
|
requirements: []
|
111
|
-
|
112
109
|
rubyforge_project: guard
|
113
|
-
rubygems_version: 1.
|
110
|
+
rubygems_version: 1.6.2
|
114
111
|
signing_key:
|
115
112
|
specification_version: 3
|
116
|
-
summary: Guard
|
113
|
+
summary: Guard keeps an eye on your file modifications
|
117
114
|
test_files: []
|
118
|
-
|