kicker 2.4.0 → 2.5.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.
- data/README.rdoc +3 -1
- data/lib/kicker.rb +3 -2
- data/lib/kicker/options.rb +5 -0
- data/lib/kicker/recipes.rb +6 -5
- data/lib/kicker/recipes/ruby.rb +4 -3
- data/lib/kicker/utils.rb +37 -8
- data/lib/kicker/version.rb +3 -0
- metadata +98 -155
- data/.kick +0 -37
- data/.travis.yml +0 -6
- data/Gemfile +0 -11
- data/Gemfile.lock +0 -34
- data/Rakefile +0 -37
- data/TODO.rdoc +0 -5
- data/VERSION +0 -1
- data/kicker.gemspec +0 -106
- data/test/callback_chain_test.rb +0 -165
- data/test/core_ext_test.rb +0 -38
- data/test/filesystem_change_test.rb +0 -104
- data/test/fixtures/a_file_thats_reloaded.rb +0 -2
- data/test/fsevents_test.rb +0 -35
- data/test/growl_test.rb +0 -87
- data/test/initialization_test.rb +0 -137
- data/test/log_status_helper_test.rb +0 -56
- data/test/options_test.rb +0 -80
- data/test/recipes/could_not_handle_file_test.rb +0 -21
- data/test/recipes/dot_kick_test.rb +0 -22
- data/test/recipes/execute_cli_command_test.rb +0 -37
- data/test/recipes/ignore_test.rb +0 -29
- data/test/recipes/jstest_test.rb +0 -31
- data/test/recipes/rails_test.rb +0 -186
- data/test/recipes/ruby_test.rb +0 -162
- data/test/recipes_test.rb +0 -67
- data/test/test_helper.rb +0 -29
- data/test/utils_test.rb +0 -193
data/README.rdoc
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
= Kicker
|
2
2
|
|
3
|
+
{<img src="https://secure.travis-ci.org/alloy/kicker.png" />}[http://travis-ci.org/alloy/kicker]
|
4
|
+
|
3
5
|
A lean, agnostic, flexible file-change watcher, using OS X FSEvents.
|
4
6
|
|
5
7
|
https://github.com/alloy/kicker/raw/master/html/images/kikker.jpg
|
@@ -141,4 +143,4 @@ be important in your decision on where to specify handlers.
|
|
141
143
|
* Manfred Stienstra (@manfred)
|
142
144
|
* Cristi Balan (@evilchelu)
|
143
145
|
* Damir Zekic (@sidonath)
|
144
|
-
* Adam Keys (@therealadam)
|
146
|
+
* Adam Keys (@therealadam)
|
data/lib/kicker.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
$:.unshift File.expand_path('../../vendor', __FILE__)
|
2
2
|
|
3
|
+
require 'kicker/version'
|
3
4
|
require 'kicker/fsevents'
|
4
5
|
require 'kicker/callback_chain'
|
5
6
|
require 'kicker/core_ext'
|
@@ -31,7 +32,7 @@ class Kicker #:nodoc:
|
|
31
32
|
log "Watching for changes on: #{paths.join(', ')}"
|
32
33
|
log ''
|
33
34
|
|
34
|
-
Kicker::Growl.start! if Kicker::Growl.use?
|
35
|
+
Kicker::Growl.start! if Kicker::Growl.usable? && Kicker::Growl.use?
|
35
36
|
run_startup_chain
|
36
37
|
run_watch_dog!
|
37
38
|
end
|
@@ -116,4 +117,4 @@ class Kicker #:nodoc:
|
|
116
117
|
end
|
117
118
|
end
|
118
119
|
end
|
119
|
-
end
|
120
|
+
end
|
data/lib/kicker/options.rb
CHANGED
@@ -41,6 +41,11 @@ class Kicker
|
|
41
41
|
opt.separator " Available recipes: #{recipes_for_display.join(", ")}."
|
42
42
|
opt.separator " "
|
43
43
|
|
44
|
+
opt.on('-v', 'Print the Kicker version') do
|
45
|
+
puts VERSION
|
46
|
+
exit
|
47
|
+
end
|
48
|
+
|
44
49
|
opt.on('-s', '--silent', 'Keep output to a minimum.') do |silent|
|
45
50
|
Kicker.silent = true
|
46
51
|
end
|
data/lib/kicker/recipes.rb
CHANGED
@@ -28,6 +28,10 @@ class Kicker
|
|
28
28
|
class << self
|
29
29
|
def reset!
|
30
30
|
@recipes = nil
|
31
|
+
# Always load all the base recipes
|
32
|
+
load_recipe :execute_cli_command
|
33
|
+
load_recipe :could_not_handle_file
|
34
|
+
load_recipe :dot_kick
|
31
35
|
end
|
32
36
|
|
33
37
|
def recipes
|
@@ -86,9 +90,6 @@ class Kicker
|
|
86
90
|
end
|
87
91
|
end
|
88
92
|
|
89
|
-
|
90
|
-
load_recipe :execute_cli_command
|
91
|
-
load_recipe :could_not_handle_file
|
92
|
-
load_recipe :dot_kick
|
93
|
+
reset!
|
93
94
|
end
|
94
|
-
end
|
95
|
+
end
|
data/lib/kicker/recipes/ruby.rb
CHANGED
@@ -20,7 +20,7 @@ class Kicker::Recipes::Ruby
|
|
20
20
|
# Defaults to `ruby' if test_type is `test' and `spec' if test_type is
|
21
21
|
# `spec'.
|
22
22
|
def runner_bin
|
23
|
-
@runner_bin ||= test_type == 'test' ? 'ruby' : '
|
23
|
+
@runner_bin ||= test_type == 'test' ? 'ruby' : 'rspec'
|
24
24
|
end
|
25
25
|
|
26
26
|
# Assigns the root directory of where test cases will be looked up.
|
@@ -68,7 +68,8 @@ class Kicker::Recipes::Ruby
|
|
68
68
|
end
|
69
69
|
|
70
70
|
def test_runner_command(tests)
|
71
|
-
|
71
|
+
tests_without_ext = tests.map { |f| f[0,f.size-3] }
|
72
|
+
runner_command(runner_bin, %w{ -I. } + test_options, '-r', tests_without_ext.join(' -r '), "-e ''")
|
72
73
|
end
|
73
74
|
|
74
75
|
# Runs the given tests with `ruby' as unit-test tests.
|
@@ -170,4 +171,4 @@ end
|
|
170
171
|
|
171
172
|
recipe :ruby do
|
172
173
|
process Kicker::Recipes::Ruby
|
173
|
-
end
|
174
|
+
end
|
data/lib/kicker/utils.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'shellwords' if RUBY_VERSION >= "1.9"
|
2
|
+
|
1
3
|
class Kicker
|
2
4
|
module Utils #:nodoc:
|
3
5
|
extend self
|
@@ -5,9 +7,9 @@ class Kicker
|
|
5
7
|
def execute(command, &block)
|
6
8
|
@last_command = command
|
7
9
|
status = LogStatusHelper.new(block, command)
|
8
|
-
|
9
10
|
will_execute_command(status)
|
10
|
-
|
11
|
+
output = _execute(command)
|
12
|
+
status.result(output, last_command_succeeded?, last_command_status)
|
11
13
|
did_execute_command(status)
|
12
14
|
end
|
13
15
|
|
@@ -35,6 +37,37 @@ class Kicker
|
|
35
37
|
private
|
36
38
|
|
37
39
|
CLEAR = "\e[H\e[2J"
|
40
|
+
|
41
|
+
def _execute(command)
|
42
|
+
silent = Kicker.silent?
|
43
|
+
unless silent
|
44
|
+
puts
|
45
|
+
sync_before, $stdout.sync = $stdout.sync, true
|
46
|
+
end
|
47
|
+
output = ""
|
48
|
+
popen(command) do |io|
|
49
|
+
while str = io.read(1)
|
50
|
+
output << str
|
51
|
+
$stdout.print str unless silent
|
52
|
+
end
|
53
|
+
end
|
54
|
+
output
|
55
|
+
ensure
|
56
|
+
unless silent
|
57
|
+
$stdout.sync = sync_before
|
58
|
+
puts("\n\n")
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
def popen(command, &block)
|
63
|
+
if RUBY_VERSION >= "1.9"
|
64
|
+
args = Shellwords.shellsplit(command)
|
65
|
+
args << { :err => [:child, :out] }
|
66
|
+
IO.popen(args, &block)
|
67
|
+
else
|
68
|
+
IO.popen("#{command} 2>&1", &block)
|
69
|
+
end
|
70
|
+
end
|
38
71
|
|
39
72
|
def will_execute_command(status)
|
40
73
|
puts(CLEAR) if Kicker.clear_console?
|
@@ -47,12 +80,8 @@ class Kicker
|
|
47
80
|
if message = status.call(:stdout)
|
48
81
|
log(message) unless message.empty?
|
49
82
|
else
|
50
|
-
if
|
51
|
-
|
52
|
-
else
|
53
|
-
puts("\n#{status.output.strip}\n\n")
|
54
|
-
log(status.success? ? "Success" : "Failed (#{status.exit_code})")
|
55
|
-
end
|
83
|
+
puts("\n#{status.output.strip}\n\n") if Kicker.silent? && !status.success?
|
84
|
+
log(status.success? ? "Success" : "Failed (#{status.exit_code})")
|
56
85
|
end
|
57
86
|
|
58
87
|
Kicker::Growl.result(status) if Kicker::Growl.use?
|
metadata
CHANGED
@@ -1,151 +1,112 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: kicker
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2.5.0
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 2
|
8
|
-
- 4
|
9
|
-
- 0
|
10
|
-
version: 2.4.0
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Eloy Duran
|
9
|
+
- Manfred Stienstra
|
14
10
|
autorequire:
|
15
11
|
bindir: bin
|
16
12
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
type: :runtime
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
13
|
+
date: 2012-02-04 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: rb-fsevent
|
17
|
+
requirement: &70258430386300 !ruby/object:Gem::Requirement
|
24
18
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
|
30
|
-
- 0
|
31
|
-
version: "0"
|
32
|
-
name: rake
|
33
|
-
version_requirements: *id001
|
19
|
+
requirements:
|
20
|
+
- - ! '>='
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '0'
|
23
|
+
type: :runtime
|
34
24
|
prerelease: false
|
35
|
-
|
36
|
-
|
37
|
-
|
25
|
+
version_requirements: *70258430386300
|
26
|
+
- !ruby/object:Gem::Dependency
|
27
|
+
name: rake
|
28
|
+
requirement: &70258430385620 !ruby/object:Gem::Requirement
|
38
29
|
none: false
|
39
|
-
requirements:
|
40
|
-
- -
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
|
43
|
-
segments:
|
44
|
-
- 0
|
45
|
-
version: "0"
|
46
|
-
name: mocha
|
47
|
-
version_requirements: *id002
|
48
|
-
prerelease: false
|
49
|
-
- !ruby/object:Gem::Dependency
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
50
34
|
type: :development
|
51
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
52
|
-
none: false
|
53
|
-
requirements:
|
54
|
-
- - ">="
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
hash: 3
|
57
|
-
segments:
|
58
|
-
- 0
|
59
|
-
version: "0"
|
60
|
-
name: test-spec
|
61
|
-
version_requirements: *id003
|
62
35
|
prerelease: false
|
63
|
-
|
64
|
-
|
65
|
-
|
36
|
+
version_requirements: *70258430385620
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: rdoc
|
39
|
+
requirement: &70258430385060 !ruby/object:Gem::Requirement
|
66
40
|
none: false
|
67
|
-
requirements:
|
68
|
-
- -
|
69
|
-
- !ruby/object:Gem::Version
|
70
|
-
|
71
|
-
segments:
|
72
|
-
- 0
|
73
|
-
version: "0"
|
74
|
-
name: activesupport
|
75
|
-
version_requirements: *id004
|
76
|
-
prerelease: false
|
77
|
-
- !ruby/object:Gem::Dependency
|
41
|
+
requirements:
|
42
|
+
- - ! '>='
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: '0'
|
78
45
|
type: :development
|
79
|
-
|
46
|
+
prerelease: false
|
47
|
+
version_requirements: *70258430385060
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: mocha
|
50
|
+
requirement: &70258430384360 !ruby/object:Gem::Requirement
|
80
51
|
none: false
|
81
|
-
requirements:
|
82
|
-
- -
|
83
|
-
- !ruby/object:Gem::Version
|
84
|
-
|
85
|
-
|
86
|
-
- 0
|
87
|
-
version: "0"
|
88
|
-
name: rb-fsevent
|
89
|
-
version_requirements: *id005
|
52
|
+
requirements:
|
53
|
+
- - ! '>='
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
56
|
+
type: :development
|
90
57
|
prerelease: false
|
91
|
-
|
58
|
+
version_requirements: *70258430384360
|
59
|
+
- !ruby/object:Gem::Dependency
|
60
|
+
name: test-unit
|
61
|
+
requirement: &70258430411940 !ruby/object:Gem::Requirement
|
62
|
+
none: false
|
63
|
+
requirements:
|
64
|
+
- - ! '>='
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '0'
|
92
67
|
type: :development
|
93
|
-
|
68
|
+
prerelease: false
|
69
|
+
version_requirements: *70258430411940
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: test-spec
|
72
|
+
requirement: &70258430407460 !ruby/object:Gem::Requirement
|
94
73
|
none: false
|
95
|
-
requirements:
|
96
|
-
- -
|
97
|
-
- !ruby/object:Gem::Version
|
98
|
-
|
99
|
-
|
100
|
-
- 0
|
101
|
-
version: "0"
|
102
|
-
name: jeweler
|
103
|
-
version_requirements: *id006
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
78
|
+
type: :development
|
104
79
|
prerelease: false
|
105
|
-
|
106
|
-
|
107
|
-
|
80
|
+
version_requirements: *70258430407460
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
name: activesupport
|
83
|
+
requirement: &70258430406080 !ruby/object:Gem::Requirement
|
108
84
|
none: false
|
109
|
-
requirements:
|
110
|
-
- -
|
111
|
-
- !ruby/object:Gem::Version
|
112
|
-
|
113
|
-
|
114
|
-
- 0
|
115
|
-
version: "0"
|
116
|
-
name: rb-fsevent
|
117
|
-
version_requirements: *id007
|
85
|
+
requirements:
|
86
|
+
- - ! '>='
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0'
|
89
|
+
type: :development
|
118
90
|
prerelease: false
|
91
|
+
version_requirements: *70258430406080
|
119
92
|
description:
|
120
|
-
email:
|
121
|
-
|
93
|
+
email:
|
94
|
+
- eloy.de.enige@gmail.com
|
95
|
+
- manfred@fngtps.com
|
96
|
+
executables:
|
122
97
|
- kicker
|
123
98
|
extensions: []
|
124
|
-
|
125
|
-
extra_rdoc_files:
|
126
|
-
- LICENSE
|
127
|
-
- README.rdoc
|
128
|
-
files:
|
129
|
-
- .kick
|
130
|
-
- .travis.yml
|
131
|
-
- Gemfile
|
132
|
-
- Gemfile.lock
|
99
|
+
extra_rdoc_files:
|
133
100
|
- LICENSE
|
134
101
|
- README.rdoc
|
135
|
-
|
136
|
-
- TODO.rdoc
|
137
|
-
- VERSION
|
102
|
+
files:
|
138
103
|
- bin/kicker
|
139
|
-
- html/images/kikker.jpg
|
140
|
-
- kicker.gemspec
|
141
|
-
- lib/kicker.rb
|
142
104
|
- lib/kicker/callback_chain.rb
|
143
105
|
- lib/kicker/core_ext.rb
|
144
106
|
- lib/kicker/fsevents.rb
|
145
107
|
- lib/kicker/growl.rb
|
146
108
|
- lib/kicker/log_status_helper.rb
|
147
109
|
- lib/kicker/options.rb
|
148
|
-
- lib/kicker/recipes.rb
|
149
110
|
- lib/kicker/recipes/could_not_handle_file.rb
|
150
111
|
- lib/kicker/recipes/dot_kick.rb
|
151
112
|
- lib/kicker/recipes/execute_cli_command.rb
|
@@ -153,62 +114,44 @@ files:
|
|
153
114
|
- lib/kicker/recipes/jstest.rb
|
154
115
|
- lib/kicker/recipes/rails.rb
|
155
116
|
- lib/kicker/recipes/ruby.rb
|
117
|
+
- lib/kicker/recipes.rb
|
156
118
|
- lib/kicker/utils.rb
|
157
|
-
-
|
158
|
-
-
|
159
|
-
- test/filesystem_change_test.rb
|
160
|
-
- test/fixtures/a_file_thats_reloaded.rb
|
161
|
-
- test/fsevents_test.rb
|
162
|
-
- test/growl_test.rb
|
163
|
-
- test/initialization_test.rb
|
164
|
-
- test/log_status_helper_test.rb
|
165
|
-
- test/options_test.rb
|
166
|
-
- test/recipes/could_not_handle_file_test.rb
|
167
|
-
- test/recipes/dot_kick_test.rb
|
168
|
-
- test/recipes/execute_cli_command_test.rb
|
169
|
-
- test/recipes/ignore_test.rb
|
170
|
-
- test/recipes/jstest_test.rb
|
171
|
-
- test/recipes/rails_test.rb
|
172
|
-
- test/recipes/ruby_test.rb
|
173
|
-
- test/recipes_test.rb
|
174
|
-
- test/test_helper.rb
|
175
|
-
- test/utils_test.rb
|
119
|
+
- lib/kicker/version.rb
|
120
|
+
- lib/kicker.rb
|
176
121
|
- vendor/growlnotifier/growl.rb
|
177
122
|
- vendor/growlnotifier/growl_helpers.rb
|
178
|
-
|
123
|
+
- README.rdoc
|
124
|
+
- LICENSE
|
125
|
+
- html/images/kikker.jpg
|
179
126
|
homepage: http://github.com/alloy/kicker
|
180
127
|
licenses: []
|
181
|
-
|
182
128
|
post_install_message:
|
183
129
|
rdoc_options: []
|
184
|
-
|
185
|
-
require_paths:
|
130
|
+
require_paths:
|
186
131
|
- lib
|
187
132
|
- vendor
|
188
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
133
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
189
134
|
none: false
|
190
|
-
requirements:
|
191
|
-
- -
|
192
|
-
- !ruby/object:Gem::Version
|
193
|
-
|
194
|
-
segments:
|
135
|
+
requirements:
|
136
|
+
- - ! '>='
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
segments:
|
195
140
|
- 0
|
196
|
-
|
197
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
141
|
+
hash: 1334081187386863213
|
142
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
198
143
|
none: false
|
199
|
-
requirements:
|
200
|
-
- -
|
201
|
-
- !ruby/object:Gem::Version
|
202
|
-
|
203
|
-
segments:
|
144
|
+
requirements:
|
145
|
+
- - ! '>='
|
146
|
+
- !ruby/object:Gem::Version
|
147
|
+
version: '0'
|
148
|
+
segments:
|
204
149
|
- 0
|
205
|
-
|
150
|
+
hash: 1334081187386863213
|
206
151
|
requirements: []
|
207
|
-
|
208
152
|
rubyforge_project:
|
209
|
-
rubygems_version: 1.
|
153
|
+
rubygems_version: 1.8.11
|
210
154
|
signing_key:
|
211
155
|
specification_version: 3
|
212
156
|
summary: A lean, agnostic, flexible file-change watcher, using OS X FSEvents.
|
213
157
|
test_files: []
|
214
|
-
|