rspec-blame 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rspec/blame.rb +16 -9
  3. metadata +64 -9
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 79906c2df55b7377253151ed40488fbaf0e347cc
4
- data.tar.gz: 4cfe0faafa74f482c0a25d0f2975b1bd033d9f81
3
+ metadata.gz: 03e959676379519da460e2bcfc1b35aaa4cd8911
4
+ data.tar.gz: 343f39882eb2cea82d0c8d555c73f94e2bffc453
5
5
  SHA512:
6
- metadata.gz: 92ef755ac7d42a46a6d1567e5935e7effcb2f563e85e1abe3a234a5e61c2d2eaac54b00f2d204f8208a014233729f6dde39c4c09fdf002ce99d0a52838ca3720
7
- data.tar.gz: 9125fccb6973e2a00e5cf589f564b80cf6f42811ac84ef75ef3f8263974928c1fe1ccf5a45ee07153d9ef416cbd98b702f0958d9fe68d51d26507cfcee264cdf
6
+ metadata.gz: b33ecf5a099181d20e4ca1389b8ba3a4a18c59aac0f359fadc3306bf9fa38802809e384ff2760eafe79aec29d20ea8c01428e52267c0757a7217723acdf25639
7
+ data.tar.gz: 8c77b7c6da2a29a488571d6f895418ce0f7f95f83bb3c3ea9fe89e9b3d652c0803f955ecfc0f1f4bfc59020fa18f18af6fe347c058c9745786bcb1e6b30596b3
data/lib/rspec/blame.rb CHANGED
@@ -1,9 +1,11 @@
1
1
  require 'rspec/core/formatters/progress_formatter'
2
2
 
3
- # The formatter that parses each of the slowest example details and outputs git blame details.
3
+ # Formatter that ouputs the git blame details for the slowest examples.
4
+ # Requirements: Project must be version controlled with git.
5
+ # Usage: `rspec --profile --formatter Blame rspec_file.rb` or `rspec -p -f Blame rspec_file.rb`
6
+ # Alternative Usage: RSpec::Core::RakeTask.new(:task) { |t| t.rspec_opts = "-p -f Blame" }
4
7
  class Blame < RSpec::Core::Formatters::ProgressFormatter
5
8
  # Overrides ProgressFormatter's output.
6
- # Usage: `rspec --profile --formatter Blame rspec_file.rb`
7
9
  def dump_profile_slowest_examples
8
10
  number_of_examples_to_profile = RSpec.configuration.profile_examples
9
11
 
@@ -27,16 +29,21 @@ class Blame < RSpec::Core::Formatters::ProgressFormatter
27
29
  end
28
30
 
29
31
  def _print_details_for(example)
32
+ output.puts " #{example.full_description}"
33
+ output.print "%s %s" % [
34
+ color("#{format_seconds(_example_run_time.call(example), 4)} secs".rjust(15, ' '), :red),
35
+ color(example.location.ljust(80, ' '), :yellow)
36
+ ]
37
+
30
38
  file, line_number = example.location.split(":")
31
39
  git_blame_output = %x(git blame -c --date=short -L #{line_number},#{line_number} #{file})
32
40
  blame = /(?<commit>\S+)\s*\((?<author>\D+)(?<date>\S+)/.match(git_blame_output)
33
- commit_details = "Author: #{blame[:author].strip} (#{blame[:commit]}), Date: #{blame[:date]}"
34
41
 
35
- output.puts " #{example.full_description}"
36
- output.puts "%s %s %s" % [
37
- color("#{format_seconds(_example_run_time.call(example), 4)} secs".rjust(15, ' '), :red),
38
- color(example.location.ljust(80, ' '), :yellow),
39
- color(commit_details.ljust(60, ' '), :cyan)
40
- ]
42
+ if blame.nil?
43
+ output.puts
44
+ else
45
+ commit_details = "Author: #{blame[:author].strip} (#{blame[:commit]}), Date: #{blame[:date]}"
46
+ output.puts(color(commit_details.ljust(60, ' '), :cyan))
47
+ end
41
48
  end
42
49
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-blame
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Seeto
@@ -9,17 +9,72 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
  date: 2014-05-23 00:00:00.000000000 Z
12
- dependencies: []
13
- description: |2
14
- rspec-blame provides a Blame formatter that outputs the
15
- author, commit, and date when profiling with RSpec.
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rspec-core
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '2.14'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '2.14'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: mocha
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ! '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ description: rspec-blame provides a Blame formatter that outputs the author, commit,
70
+ and date of your slowest examples when profiling with RSpec.
16
71
  email: seeto.david@gmail.com
17
72
  executables: []
18
73
  extensions: []
19
74
  extra_rdoc_files: []
20
75
  files:
21
76
  - lib/rspec/blame.rb
22
- homepage: http://rubygems.org/gems/rspec-blame
77
+ homepage: https://github.com/dseeto/rspec-blame
23
78
  licenses:
24
79
  - MIT
25
80
  metadata: {}
@@ -29,12 +84,12 @@ require_paths:
29
84
  - lib
30
85
  required_ruby_version: !ruby/object:Gem::Requirement
31
86
  requirements:
32
- - - ">="
87
+ - - ! '>='
33
88
  - !ruby/object:Gem::Version
34
89
  version: '0'
35
90
  required_rubygems_version: !ruby/object:Gem::Requirement
36
91
  requirements:
37
- - - ">="
92
+ - - ! '>='
38
93
  - !ruby/object:Gem::Version
39
94
  version: '0'
40
95
  requirements: []
@@ -42,5 +97,5 @@ rubyforge_project:
42
97
  rubygems_version: 2.2.2
43
98
  signing_key:
44
99
  specification_version: 4
45
- summary: Git blame the slowest RSpec examples.
100
+ summary: Git blame when profiling your slowest RSpec examples.
46
101
  test_files: []