rspec-pride 1.0.0 → 2.0.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.markdown +12 -7
- data/Rakefile +8 -24
- data/lib/rspec/pride.rb +73 -36
- data/spec/pride_spec.rb +12 -28
- metadata +31 -37
data/README.markdown
CHANGED
@@ -1,18 +1,23 @@
|
|
1
|
-
#
|
1
|
+
# rspec-pride
|
2
2
|
|
3
|
-
Take pride in your test output
|
3
|
+
Take pride in your test output!
|
4
4
|
|
5
5
|
Mimics the functionality of minitest/pride for RSpec2
|
6
6
|
|
7
|
-
[](http://travis-ci.org/ferrous26/rspec-pride)
|
8
|
-
|
9
7
|
## How to use Rspec-pride
|
10
8
|
|
11
|
-
To use rspec-pride, you need to call `rspec`
|
9
|
+
To use rspec-pride, you need to call `rspec` kind of like this:
|
10
|
+
|
11
|
+
rspec --require rspec/pride --format RSpec::Pride
|
12
|
+
|
13
|
+
Or put those options in your `.rspec` file.
|
12
14
|
|
13
|
-
|
15
|
+
## Tests
|
14
16
|
|
15
|
-
|
17
|
+
The tests are a lie! They don't test rspec-pride directly, they just
|
18
|
+
produce enough output so that you can visually verify that everything
|
19
|
+
is working. This was much faster than writing actual tests and works
|
20
|
+
just as well in this case.
|
16
21
|
|
17
22
|
## Contributing to Rspec-pride
|
18
23
|
|
data/Rakefile
CHANGED
@@ -1,41 +1,25 @@
|
|
1
|
-
require 'rubygems'
|
2
1
|
require 'rake'
|
3
2
|
|
4
3
|
task :default => :test
|
5
4
|
task :test => :spec
|
6
5
|
|
7
|
-
if RUBY_ENGINE == 'macruby'
|
8
|
-
|
6
|
+
if RUBY_ENGINE == 'macruby' && MACRUBY_REVISION.match(/^git commit/)
|
9
7
|
require 'rake/compiletask'
|
10
|
-
Rake::CompileTask.new
|
11
|
-
t.files = FileList["lib/**/*.rb"]
|
12
|
-
t.verbose = true
|
13
|
-
end
|
14
|
-
|
15
|
-
desc 'Clean MacRuby binaries'
|
16
|
-
task :clean do
|
17
|
-
FileList["lib/**/*.rbo"].each do |bin|
|
18
|
-
puts "rm #{bin}"
|
19
|
-
rm bin
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
8
|
+
Rake::CompileTask.new
|
23
9
|
end
|
24
10
|
|
25
|
-
|
26
11
|
require 'rspec/core/rake_task'
|
27
12
|
RSpec::Core::RakeTask.new(:spec) do |spec|
|
28
13
|
spec.skip_bundler = true
|
29
14
|
spec.pattern = FileList['spec/**/*_spec.rb']
|
30
15
|
end
|
31
16
|
|
32
|
-
|
33
|
-
require 'rubygems/builder'
|
34
|
-
require 'rubygems/installer'
|
17
|
+
require 'rake/gempackagetask'
|
35
18
|
spec = Gem::Specification.load('rspec-pride.gemspec')
|
19
|
+
Rake::GemPackageTask.new(spec) { }
|
36
20
|
|
37
|
-
|
38
|
-
task :build do Gem::Builder.new(spec).build end
|
39
|
-
|
21
|
+
require 'rubygems/installer'
|
40
22
|
desc 'Build the gem and install it'
|
41
|
-
task :install => :
|
23
|
+
task :install => :gem do
|
24
|
+
Gem::Installer.new(spec.file_name).install
|
25
|
+
end
|
data/lib/rspec/pride.rb
CHANGED
@@ -1,47 +1,84 @@
|
|
1
1
|
require 'rspec/core/formatters/base_text_formatter'
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
# stolen from minitest/pride
|
6
|
-
COLORS = (31..36).to_a
|
7
|
-
COLORS_SIZE = COLORS.size
|
8
|
-
CHARS = ['*']
|
9
|
-
CHARS_SIZE = CHARS.size
|
10
|
-
|
11
|
-
def initialize io
|
12
|
-
super
|
13
|
-
@colors = COLORS
|
14
|
-
@chars = CHARS
|
15
|
-
@index = 0
|
16
|
-
end
|
3
|
+
module RSpec
|
4
|
+
class Pride < RSpec::Core::Formatters::BaseTextFormatter
|
17
5
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
end
|
6
|
+
# stolen from minitest/pride
|
7
|
+
ESC = "\e["
|
8
|
+
NND = "#{ESC}0m"
|
22
9
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
10
|
+
def initialize io
|
11
|
+
super
|
12
|
+
initialize_colors
|
13
|
+
@index = 0
|
14
|
+
@size = @colors.size
|
15
|
+
output.print "\n"
|
16
|
+
end
|
27
17
|
|
28
|
-
|
29
|
-
|
30
|
-
output.print
|
31
|
-
end
|
18
|
+
def example_passed example; output.print pass ; end
|
19
|
+
def example_failed example; output.print failure; end
|
20
|
+
def example_pending example; output.print pending; end
|
32
21
|
|
22
|
+
def dump_summary duration, example_count, failure_count, pending_count
|
23
|
+
icing = 'Fabulous tests'.split(//).map { |x| rainbow x }.join
|
24
|
+
output.print "\n\n#{icing} in #{duration} seconds\n" +
|
25
|
+
"#{example_count} examples, #{failure_count} failures, #{pending_count} pending\n\n"
|
26
|
+
end
|
33
27
|
|
34
|
-
private
|
35
28
|
|
36
|
-
|
37
|
-
|
38
|
-
|
29
|
+
private
|
30
|
+
|
31
|
+
def pass ; rainbow '.' ; end
|
32
|
+
def pending; "\e[40m\e[37mP#{NND}"; end
|
33
|
+
def failure; "\e[41m\e[37mF#{NND}"; end
|
34
|
+
|
35
|
+
if ENV['TERM'] =~ /^xterm(-256color)?$/
|
36
|
+
|
37
|
+
PI_3 = Math::PI / 3
|
38
|
+
|
39
|
+
# Taken, wholesale, from minitest/pride
|
40
|
+
def initialize_colors
|
41
|
+
# walk red, green, and blue around a circle separated by equal thirds.
|
42
|
+
#
|
43
|
+
# To visualize, type this into wolfram-alpha:
|
44
|
+
#
|
45
|
+
# plot (3*sin(x)+3), (3*sin(x+2*pi/3)+3), (3*sin(x+4*pi/3)+3)
|
46
|
+
|
47
|
+
# 6 has wide pretty gradients. 3 == lolcat, about half the width
|
48
|
+
@colors = (0...(6 * 7)).map { |n|
|
49
|
+
n *= 1.0 / 6
|
50
|
+
r = (3 * Math.sin(n ) + 3).to_i
|
51
|
+
g = (3 * Math.sin(n + 2 * PI_3) + 3).to_i
|
52
|
+
b = (3 * Math.sin(n + 4 * PI_3) + 3).to_i
|
53
|
+
|
54
|
+
# Then we take rgb and encode them in a single number using base 6.
|
55
|
+
# For some mysterious reason, we add 16... to clear the bottom 4 bits?
|
56
|
+
# Yes... they're ugly.
|
57
|
+
|
58
|
+
36 * r + 6 * g + b + 16
|
59
|
+
}
|
60
|
+
end
|
61
|
+
|
62
|
+
def rainbow string
|
63
|
+
color = @colors[@index % @size]
|
64
|
+
@index += 1
|
65
|
+
"#{ESC}38;5;#{color}m#{string}#{NND}"
|
66
|
+
end
|
67
|
+
|
68
|
+
else # Old Low-Res Pride
|
69
|
+
|
70
|
+
def initialize_colors
|
71
|
+
@colors = (31..36).to_a
|
72
|
+
end
|
73
|
+
|
74
|
+
def rainbow string
|
75
|
+
string = '*' if string == '.'
|
76
|
+
color = @colors[@index % @size]
|
77
|
+
@index += 1
|
78
|
+
"#{ESC}#{color}m#{string}#{NND}"
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
39
82
|
|
40
|
-
def next_color
|
41
|
-
@index += 1
|
42
|
-
@colors[@index % COLORS_SIZE]
|
43
|
-
end
|
44
|
-
def reset_color
|
45
|
-
"\e[0m"
|
46
83
|
end
|
47
84
|
end
|
data/spec/pride_spec.rb
CHANGED
@@ -2,40 +2,24 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
2
2
|
require 'rspec/pride'
|
3
3
|
require 'stringio'
|
4
4
|
|
5
|
-
describe '
|
6
|
-
RED_HIGHLIGHT = 41
|
7
|
-
BOLD_WHITE = 40
|
5
|
+
describe 'Some class' do
|
8
6
|
|
9
|
-
|
10
|
-
|
11
|
-
|
7
|
+
50.times do |n|
|
8
|
+
it "passes #{n}" do
|
9
|
+
1.should == 1
|
10
|
+
end
|
12
11
|
end
|
13
12
|
|
14
|
-
it 'should
|
15
|
-
@formatter.example_passed self
|
16
|
-
@output.string.should match /\*/
|
17
|
-
end
|
18
|
-
|
19
|
-
# the same colour comes around with the same period
|
20
|
-
it 'should cycle colours for the passing tests' do
|
21
|
-
colours_count = Pride::COLORS.size
|
22
|
-
test_count = colours_count * 1000
|
13
|
+
it 'should be pending'
|
23
14
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
occurences.should be_within(1).of(test_count/colours_count)
|
15
|
+
it 'should fail' do
|
16
|
+
1.should == 0
|
28
17
|
end
|
29
18
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
19
|
+
10.times do |n|
|
20
|
+
it "passed #{n}" do
|
21
|
+
true.should be_true
|
22
|
+
end
|
34
23
|
end
|
35
24
|
|
36
|
-
it 'should print a bold white P for pending tests' do
|
37
|
-
@formatter.example_pending self
|
38
|
-
@output.string.should match /P/
|
39
|
-
@output.string.should match /#{BOLD_WHITE}/
|
40
|
-
end
|
41
25
|
end
|
metadata
CHANGED
@@ -1,68 +1,62 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-pride
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2.0.0
|
4
5
|
prerelease:
|
5
|
-
version: 1.0.0
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Mark Rada
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2011-08-20 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
16
15
|
name: rspec
|
17
|
-
|
18
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70306678499980 !ruby/object:Gem::Requirement
|
19
17
|
none: false
|
20
|
-
requirements:
|
18
|
+
requirements:
|
21
19
|
- - ~>
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version:
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '2.6'
|
24
22
|
type: :runtime
|
25
|
-
|
26
|
-
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70306678499980
|
25
|
+
description: Mimics the functionality of minitest/pride for RSpec2
|
27
26
|
email: mrada@marketcircle.com
|
28
27
|
executables: []
|
29
|
-
|
30
28
|
extensions: []
|
31
|
-
|
32
|
-
extra_rdoc_files:
|
33
|
-
- Rakefile
|
29
|
+
extra_rdoc_files:
|
34
30
|
- README.markdown
|
35
|
-
files:
|
31
|
+
files:
|
36
32
|
- lib/rspec/pride.rb
|
37
33
|
- Rakefile
|
38
|
-
- README.markdown
|
39
34
|
- spec/pride_spec.rb
|
35
|
+
- README.markdown
|
40
36
|
homepage: http://github.com/ferrous26/rspec-pride
|
41
|
-
licenses:
|
37
|
+
licenses:
|
42
38
|
- MIT
|
43
39
|
post_install_message:
|
44
40
|
rdoc_options: []
|
45
|
-
|
46
|
-
require_paths:
|
41
|
+
require_paths:
|
47
42
|
- lib
|
48
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
43
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
49
44
|
none: false
|
50
|
-
requirements:
|
51
|
-
- -
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version:
|
54
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ! '>='
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0'
|
49
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
55
50
|
none: false
|
56
|
-
requirements:
|
57
|
-
- -
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
version:
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
60
55
|
requirements: []
|
61
|
-
|
62
56
|
rubyforge_project:
|
63
|
-
rubygems_version: 1.
|
57
|
+
rubygems_version: 1.8.8
|
64
58
|
signing_key:
|
65
59
|
specification_version: 3
|
66
60
|
summary: Take pride in your testing
|
67
|
-
test_files:
|
61
|
+
test_files:
|
68
62
|
- spec/pride_spec.rb
|