dbrady-speccle 0.0.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/README.txt +33 -0
- data/bin/speccle +5 -0
- data/lib/iterm_color_progress_formatter.rb +60 -0
- data/lib/speccle.rb +11 -0
- metadata +56 -0
data/README.txt
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
= Speccle =
|
2
|
+
|
3
|
+
RSpec formatter that changes the background color of the current
|
4
|
+
terminal in iTerm to match current spec state. When it starts, the
|
5
|
+
screen turns green. If any specs are pending, it turns yellow. If any
|
6
|
+
specs fail, it turns red. Colors are "sticky", so if you get a pending
|
7
|
+
after a fail the screen will stay red.
|
8
|
+
|
9
|
+
= Now With 100% More Gem Action =
|
10
|
+
|
11
|
+
sudo gem install dbrady-speccle
|
12
|
+
|
13
|
+
And now in your project folder, type speccle where you would type
|
14
|
+
spec. Speccle passes any extra arguments it is given through to spec,
|
15
|
+
so it should just work as a drop-in replacement for spec.
|
16
|
+
|
17
|
+
= Using It The Hard Way =
|
18
|
+
|
19
|
+
Here's how to include it from the command line. You can probably hook
|
20
|
+
this up from inside spec.opts, too.
|
21
|
+
|
22
|
+
Assuming $GEMDIR contains the path to your gems folder,
|
23
|
+
|
24
|
+
spec --require $GEMDIR/speccle-0.0.1/lib/iterm_color_progress_formatter.rb --format Spec::Runner::Formatter::ItermColorProgressFormatter spec
|
25
|
+
|
26
|
+
= Notes =
|
27
|
+
|
28
|
+
* This requires iTerm to work right.
|
29
|
+
|
30
|
+
* This does not check to see if you are running iTerm, so Terminal
|
31
|
+
users, YMMV. At best it will start iTerm and color it for you. More
|
32
|
+
likely it will probably just crash.
|
33
|
+
|
data/bin/speccle
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'spec/runner/formatter/progress_bar_formatter'
|
3
|
+
require 'appscript'
|
4
|
+
|
5
|
+
gem 'rb-appscript', '>= 0.5.1'
|
6
|
+
|
7
|
+
module Spec
|
8
|
+
module Runner
|
9
|
+
module Formatter
|
10
|
+
class ItermColorProgressFormatter < ProgressBarFormatter
|
11
|
+
@@anything_failed_ever = false
|
12
|
+
@@anything_pended_ever = false
|
13
|
+
|
14
|
+
PASS_COLOR = [0, 16385, 0]
|
15
|
+
FAIL_COLOR = [16385, 0, 0]
|
16
|
+
PEND_COLOR = [32768, 32768, 0]
|
17
|
+
|
18
|
+
def initialize(a,b)
|
19
|
+
super
|
20
|
+
iterm = Appscript::app('iTerm')
|
21
|
+
@@term = iterm.current_terminal.sessions.get.find {|sess| sess.get == iterm.current_terminal.current_session.get }
|
22
|
+
@@original_color = @@term.background_color.get
|
23
|
+
end
|
24
|
+
|
25
|
+
def set_iterm_bg(color)
|
26
|
+
@@term.background_color.set color
|
27
|
+
end
|
28
|
+
|
29
|
+
def start_dump
|
30
|
+
# uncomment this if you don't want the final color left on the screen
|
31
|
+
# @@current_terminal.background_color.set @@original_color
|
32
|
+
super
|
33
|
+
end
|
34
|
+
|
35
|
+
def example_passed(example)
|
36
|
+
unless @@anything_pended_ever || @@anything_failed_ever
|
37
|
+
set_iterm_bg(PASS_COLOR)
|
38
|
+
end
|
39
|
+
super
|
40
|
+
end
|
41
|
+
|
42
|
+
def example_failed(example, counter, failure)
|
43
|
+
unless @@anything_failed_ever
|
44
|
+
@@anything_failed_ever = true
|
45
|
+
set_iterm_bg(FAIL_COLOR)
|
46
|
+
end
|
47
|
+
super
|
48
|
+
end
|
49
|
+
|
50
|
+
def example_pending(example, message, pending_caller)
|
51
|
+
unless @@anything_pended_ever || @@anything_failed_ever
|
52
|
+
@@anything_pended_ever = true
|
53
|
+
set_iterm_bg(PEND_COLOR)
|
54
|
+
end
|
55
|
+
super
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
data/lib/speccle.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
class Speccle
|
4
|
+
def self.run(args)
|
5
|
+
args = args.map {|arg| arg =~ /\s/ ? arg.inspect : arg }
|
6
|
+
libdir = File.expand_path(File.dirname(__FILE__))
|
7
|
+
cmd = "spec --require #{libdir}/iterm_color_progress_formatter.rb --format Spec::Runner::Formatter::ItermColorProgressFormatter #{args * ' '}"
|
8
|
+
system cmd
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
metadata
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: dbrady-speccle
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- David Brady
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-03-07 00:00:00 -08:00
|
13
|
+
default_executable:
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description: Speccle - wrapper for spec that colorizes iTerm window background to reflect spec pass/pend/fail (Mac OSX only)
|
17
|
+
email: github@shinybit.com
|
18
|
+
executables:
|
19
|
+
- speccle
|
20
|
+
extensions: []
|
21
|
+
|
22
|
+
extra_rdoc_files:
|
23
|
+
- README.txt
|
24
|
+
files:
|
25
|
+
- bin/speccle
|
26
|
+
- lib/iterm_color_progress_formatter.rb
|
27
|
+
- lib/speccle.rb
|
28
|
+
- README.txt
|
29
|
+
has_rdoc: false
|
30
|
+
homepage: http://github.com/dbrady/speccle
|
31
|
+
post_install_message:
|
32
|
+
rdoc_options: []
|
33
|
+
|
34
|
+
require_paths:
|
35
|
+
- lib
|
36
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: "0"
|
41
|
+
version:
|
42
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: "0"
|
47
|
+
version:
|
48
|
+
requirements: []
|
49
|
+
|
50
|
+
rubyforge_project:
|
51
|
+
rubygems_version: 1.2.0
|
52
|
+
signing_key:
|
53
|
+
specification_version: 2
|
54
|
+
summary: wrapper for spec that colorizes iTerm window background to reflect spec pass/pend/fail (Mac OSX only)
|
55
|
+
test_files: []
|
56
|
+
|