rspec-instafail 0.2.4 → 0.2.5

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 6eb29bfc65fc9c1f90984aad635ff1336244302d
4
+ data.tar.gz: d30d2017dadd2ce70327a241fd07398758c9ef0e
5
+ SHA512:
6
+ metadata.gz: 6a030d26ea854b703e8441b8ff0f4662b8d9a261e90608b24111f5e5f0d8c57534343b1f5303261e6a6af512177a75433a706fb951b3091b3f68c6b2e883a2f3
7
+ data.tar.gz: 88f838d2387dd0448f78a23030ece2cb09d4bc5b3206aa6c766a72ce78c2a4021fe8e28dc42365f3621810da5141f9e4e4ecf6c668e739635cc5246ea9748243
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source "https://rubygems.org"
2
+
3
+ gemspec
4
+
5
+ gem "bump"
6
+ gem "rake"
@@ -0,0 +1,28 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ rspec-instafail (0.2.5)
5
+ rspec
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ bump (0.4.0)
11
+ diff-lcs (1.2.5)
12
+ rake (10.0.3)
13
+ rspec (2.99.0)
14
+ rspec-core (~> 2.99.0)
15
+ rspec-expectations (~> 2.99.0)
16
+ rspec-mocks (~> 2.99.0)
17
+ rspec-core (2.99.0)
18
+ rspec-expectations (2.99.0)
19
+ diff-lcs (>= 1.1.3, < 2.0)
20
+ rspec-mocks (2.99.0)
21
+
22
+ PLATFORMS
23
+ ruby
24
+
25
+ DEPENDENCIES
26
+ bump
27
+ rake
28
+ rspec-instafail!
data/Rakefile CHANGED
@@ -1,25 +1,12 @@
1
- require "bundler"
2
- Bundler::GemHelper.install_tasks
1
+ require "bundler/setup"
2
+ require "bundler/gem_tasks"
3
+ require "bump/tasks"
3
4
 
4
5
  task :default do
5
- sh "cd spec/rspec_1 && (bundle || bundle install) > /dev/null"
6
- sh "cd spec/rspec_2 && (bundle || bundle install) > /dev/null"
6
+ Bundler.with_clean_env do
7
+ sh "cd spec/rspec_1 && (bundle check || bundle) > /dev/null"
8
+ sh "cd spec/rspec_2 && (bundle check || bundle) > /dev/null"
9
+ sh "cd spec/rspec_3 && (bundle check || bundle) > /dev/null"
10
+ end
7
11
  sh "rspec spec/"
8
12
  end
9
-
10
- rule /^version:bump:.*/ do |t|
11
- file = 'lib/rspec/instafail/version.rb'
12
-
13
- sh "git status | grep 'nothing to commit'" # ensure we are not dirty
14
- index = ['major', 'minor','patch'].index(t.name.split(':').last)
15
-
16
- version_file = File.read(file)
17
- old_version, *version_parts = version_file.match(/(\d+)\.(\d+)\.(\d+)/).to_a
18
- version_parts[index] = version_parts[index].to_i + 1
19
- version_parts[2] = 0 if index < 2
20
- version_parts[1] = 0 if index < 1
21
- new_version = version_parts * '.'
22
- File.open(file,'w'){|f| f.write(version_file.sub(old_version, new_version)) }
23
-
24
- sh "git add #{file} && git commit -m 'bump version to #{new_version}'"
25
- end
data/Readme.md CHANGED
@@ -49,4 +49,6 @@ Authors
49
49
 
50
50
  [Michael Grosser](http://grosser.it)<br/>
51
51
  michael@grosser.it<br/>
52
- License: MIT
52
+ License: MIT<br/>
53
+ [![Build Status](https://travis-ci.org/grosser/rspec-instafail.png)](https://travis-ci.org/grosser/rspec-instafail)
54
+
@@ -4,10 +4,14 @@ module RSpec
4
4
  lib = File.expand_path(File.dirname(File.dirname(__FILE__)))
5
5
  $LOAD_PATH << lib unless $LOAD_PATH.include?(lib)
6
6
 
7
- begin
8
- require "rspec/instafail/rspec_2"
9
- rescue LoadError # try rspec 1
10
- require "rspec/instafail/rspec_1"
7
+ if defined?(::RSpec::Core) && ::RSpec::Core::Version::STRING >= '3.0.0'
8
+ require "rspec/instafail/rspec_3"
9
+ else
10
+ begin
11
+ require "rspec/instafail/rspec_2"
12
+ rescue LoadError # try rspec 1
13
+ require "rspec/instafail/rspec_1"
14
+ end
11
15
  end
12
16
 
13
17
  require 'rspec/instafail/version'
@@ -0,0 +1,18 @@
1
+ require 'rspec/core/formatters/progress_formatter'
2
+
3
+ module RSpec
4
+ class Instafail < RSpec::Core::Formatters::ProgressFormatter
5
+ RSpec::Core::Formatters.register self, :example_failed
6
+
7
+ def initialize(output)
8
+ super
9
+ @output = output
10
+ @failed_examples = []
11
+ end
12
+
13
+ def example_failed(failure)
14
+ @failed_examples << failure.example
15
+ @output.puts failure.fully_formatted(@failed_examples.size)
16
+ end
17
+ end
18
+ end
@@ -1,2 +1,2 @@
1
1
  require 'rspec/instafail'
2
- RSpec::Instafail::VERSION = '0.2.4'
2
+ RSpec::Instafail::VERSION = '0.2.5'
@@ -1,12 +1,15 @@
1
1
  $LOAD_PATH.unshift File.expand_path('../lib', __FILE__)
2
2
  name = 'rspec-instafail'
3
- require "rspec/instafail/version"
4
3
 
5
- Gem::Specification.new name, RSpec::Instafail::VERSION do |s|
4
+ # needs rspec installed to load the version, so let's avoid this mess
5
+ version = File.read("lib/rspec/instafail/version.rb")[/\d+\.\d+\.\d+/]
6
+
7
+ Gem::Specification.new name, version do |s|
6
8
  s.summary = "Show failing specs instantly"
7
9
  s.authors = ["Michael Grosser"]
8
10
  s.email = "michael@grosser.it"
9
11
  s.homepage = "http://github.com/grosser/#{name}"
10
12
  s.files = `git ls-files`.split("\n")
11
13
  s.license = "MIT"
14
+ s.add_runtime_dependency "rspec"
12
15
  end
@@ -1,7 +1,9 @@
1
1
  describe 'RSpec::Instafail' do
2
2
  context "RSpec 1.x" do
3
3
  before :all do
4
- @rspec_result = `cd spec/rspec_1 && bundle exec spec a_test.rb --format RSpec::Instafail`
4
+ Bundler.with_clean_env do
5
+ @rspec_result = `cd spec/rspec_1 && bundle exec spec a_test.rb --format RSpec::Instafail`
6
+ end
5
7
  end
6
8
 
7
9
  before do
@@ -23,7 +25,9 @@ describe 'RSpec::Instafail' do
23
25
 
24
26
  context 'Rspec 2.x' do
25
27
  before :all do
26
- @rspec_result = `cd spec/rspec_2 && bundle exec rspec a_test.rb --require ../../lib/rspec/instafail --format RSpec::Instafail --no-color`
28
+ Bundler.with_clean_env do
29
+ @rspec_result = `cd spec/rspec_2 && bundle exec rspec a_test.rb --require ../../lib/rspec/instafail --format RSpec::Instafail --no-color --order default`
30
+ end
27
31
  end
28
32
 
29
33
  before do
@@ -47,5 +51,33 @@ describe 'RSpec::Instafail' do
47
51
  @output.should_not include('ANCESTORS:3')
48
52
  end
49
53
  end
50
- end
51
54
 
55
+ context 'Rspec 3.x' do
56
+ before :all do
57
+ Bundler.with_clean_env do
58
+ @rspec_result = `cd spec/rspec_3 && bundle exec rspec a_test.rb --require ../../lib/rspec/instafail --format RSpec::Instafail --no-color --order default`
59
+ end
60
+ end
61
+
62
+ before do
63
+ @output = @rspec_result.dup
64
+ end
65
+
66
+ it "outputs failures at start of output" do
67
+ @output.should =~ /^\s+1\) x fails logically/m
68
+ end
69
+
70
+ it 'outputs errors in middle of output' do
71
+ @output.should =~ /\.\.\*\s*2\) x raises a simple error/m
72
+ end
73
+
74
+ it 'outputs the the ending block' do
75
+ @output.should =~ /Finished in \d\.\d+ seconds.*\s*9 examples, 4 failures, 1 pending/
76
+ end
77
+
78
+ it "does not add ancestors after failures" do
79
+ @output.should include('ANCESTORS:18')
80
+ @output.should_not include('ANCESTORS:19')
81
+ end
82
+ end
83
+ end
@@ -1,2 +1,2 @@
1
1
  source 'http://rubygems.org'
2
- gem 'rspec', '1.3.0'
2
+ gem 'rspec', '1.3.0'
@@ -1,10 +1,12 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
+ diff-lcs (1.1.3)
4
5
  rspec (1.3.0)
5
6
 
6
7
  PLATFORMS
7
8
  ruby
8
9
 
9
10
  DEPENDENCIES
11
+ diff-lcs (= 1.1.3)
10
12
  rspec (= 1.3.0)
@@ -1,2 +1,3 @@
1
1
  source 'http://rubygems.org'
2
2
  gem 'rspec', '>=2.2'
3
+
@@ -15,4 +15,5 @@ PLATFORMS
15
15
  ruby
16
16
 
17
17
  DEPENDENCIES
18
+ diff-lcs (= 1.1.3)
18
19
  rspec (>= 2.2)
@@ -0,0 +1,2 @@
1
+ source 'http://rubygems.org'
2
+ gem 'rspec', '>=3.0'
@@ -0,0 +1,22 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ diff-lcs (1.2.5)
5
+ rspec (3.0.0)
6
+ rspec-core (~> 3.0.0)
7
+ rspec-expectations (~> 3.0.0)
8
+ rspec-mocks (~> 3.0.0)
9
+ rspec-core (3.0.0)
10
+ rspec-support (~> 3.0.0)
11
+ rspec-expectations (3.0.0)
12
+ diff-lcs (>= 1.2.0, < 2.0)
13
+ rspec-support (~> 3.0.0)
14
+ rspec-mocks (3.0.0)
15
+ rspec-support (~> 3.0.0)
16
+ rspec-support (3.0.0)
17
+
18
+ PLATFORMS
19
+ ruby
20
+
21
+ DEPENDENCIES
22
+ rspec (>= 3.0)
@@ -0,0 +1,48 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'lib', 'rspec', 'instafail'))
2
+
3
+ describe 'x' do
4
+ it 'fails logically' do
5
+ expect(1).to eq 2
6
+ end
7
+
8
+ it 'b' do
9
+ end
10
+
11
+ it 'c' do
12
+ end
13
+
14
+ it 'pends' do
15
+ pending
16
+ raise
17
+ end
18
+
19
+ it 'raises a simple error' do
20
+ raise 'shallow failure'
21
+ end
22
+
23
+ it 'raises a hidden error' do
24
+ error = ExceptionWrappingException.new('There is an error in this error.')
25
+ error.original_exception = RuntimeError.new('There is no error in this error.')
26
+ raise error
27
+ end
28
+
29
+ it 'e' do
30
+ end
31
+
32
+ context "ancestors" do
33
+ after do |example|
34
+ puts "ANCESTORS:#{example.example_group.ancestors.size}"
35
+ end
36
+
37
+ it "does not add ancestors on failure" do
38
+ raise "BAM"
39
+ end
40
+
41
+ it "does not add ancestors on failure" do
42
+ end
43
+ end
44
+ end
45
+
46
+ class ExceptionWrappingException < RuntimeError
47
+ attr_accessor :original_exception
48
+ end
metadata CHANGED
@@ -1,27 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-instafail
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
5
- prerelease:
4
+ version: 0.2.5
6
5
  platform: ruby
7
6
  authors:
8
7
  - Michael Grosser
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-03-27 00:00:00.000000000 Z
13
- dependencies: []
11
+ date: 2014-06-07 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rspec
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
14
27
  description:
15
28
  email: michael@grosser.it
16
29
  executables: []
17
30
  extensions: []
18
31
  extra_rdoc_files: []
19
32
  files:
33
+ - Gemfile
34
+ - Gemfile.lock
20
35
  - Rakefile
21
36
  - Readme.md
22
37
  - lib/rspec/instafail.rb
23
38
  - lib/rspec/instafail/rspec_1.rb
24
39
  - lib/rspec/instafail/rspec_2.rb
40
+ - lib/rspec/instafail/rspec_3.rb
25
41
  - lib/rspec/instafail/version.rb
26
42
  - rspec-instafail.gemspec
27
43
  - spec/instafail_spec.rb
@@ -31,29 +47,31 @@ files:
31
47
  - spec/rspec_2/Gemfile
32
48
  - spec/rspec_2/Gemfile.lock
33
49
  - spec/rspec_2/a_test.rb
50
+ - spec/rspec_3/Gemfile
51
+ - spec/rspec_3/Gemfile.lock
52
+ - spec/rspec_3/a_test.rb
34
53
  homepage: http://github.com/grosser/rspec-instafail
35
54
  licenses:
36
55
  - MIT
56
+ metadata: {}
37
57
  post_install_message:
38
58
  rdoc_options: []
39
59
  require_paths:
40
60
  - lib
41
61
  required_ruby_version: !ruby/object:Gem::Requirement
42
- none: false
43
62
  requirements:
44
- - - ! '>='
63
+ - - ">="
45
64
  - !ruby/object:Gem::Version
46
65
  version: '0'
47
66
  required_rubygems_version: !ruby/object:Gem::Requirement
48
- none: false
49
67
  requirements:
50
- - - ! '>='
68
+ - - ">="
51
69
  - !ruby/object:Gem::Version
52
70
  version: '0'
53
71
  requirements: []
54
72
  rubyforge_project:
55
- rubygems_version: 1.8.15
73
+ rubygems_version: 2.2.2
56
74
  signing_key:
57
- specification_version: 3
75
+ specification_version: 4
58
76
  summary: Show failing specs instantly
59
77
  test_files: []