/
.watchr
40 lines (34 loc) · 1.07 KB
/
.watchr
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# --------------------------------------------------
# Convenience Methods
# --------------------------------------------------
def all_spec_files
Dir['spec/**/*_spec.rb']
end
def run(cmd)
puts(cmd)
system(cmd)
end
def spec(args)
run "ruby -Ispec #{args}"
end
def run_all_specs
spec all_spec_files.join(' ')
end
# --------------------------------------------------
# Watchr Rules
# --------------------------------------------------
watch('app/((models|controllers)/.*).rb') { |m| spec("spec/%s_spec.rb" % m[1] ) }
watch('^spec.*/.*_spec\.rb' ) { |m| spec("%s" % m[0] ) }
watch('^lib/(.*)\.rb' ) { |m| spec("spec/libs/%s_spec.rb" % m[1] ) }
watch('^lib/.*/(.*)\.rb' ) { |m| spec("spec/libs/%s_spec.rb" % m[1] ) }
watch('^spec/spec_helper\.rb' ) { run_all_specs }
# --------------------------------------------------
# Signal Handling
# --------------------------------------------------
# Ctrl-\
Signal.trap('QUIT') do
puts " --- Running all specs ---\n\n"
run_all_specs
end
# Ctrl-C
Signal.trap('INT') { abort("\n") }