luna-rspec-formatters 3.3.2 → 3.4.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.
- checksums.yaml +4 -4
- data/README.md +6 -3
- data/lib/luna/rspec/formatters/cats.rb +45 -0
- data/lib/luna/rspec/formatters/checks.rb +23 -34
- data/lib/luna/rspec/formatters/emoji.rb +38 -0
- data/lib/luna/rspec/formatters/fulldesc.rb +77 -0
- data/lib/luna/rspec/formatters/hearts.rb +45 -0
- data/lib/luna/rspec/formatters/profile.rb +31 -21
- data/lib/luna/rspec/formatters/smilies.rb +45 -0
- data/lib/luna/rspec/formatters/version.rb +1 -1
- metadata +8 -4
- data/lib/luna/rspec/formatters/documentation.rb +0 -61
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2736dd9bc87741064d0ff98dfbbf2780379a5ee3
|
4
|
+
data.tar.gz: dac892532d6d808967e7f7468176d87136fa41ca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5b02dfe478d03cf3b8c6960cdbfa2e589cdd9d3b5a40e914002bf8eca82bf847f7ce6a8c19857a77ad5caceb2cc11383d7353badbeb96968de757147ce7e69b8
|
7
|
+
data.tar.gz: 4e0e36bd0d0edc864f5f3ba789c082a7d3287b29428c3880eed1d120fc0f2569b903d5f930df2196ec0cddbe1d80b166be040b7e8f9104a5304e5ecf7a1ed47e
|
data/README.md
CHANGED
@@ -4,12 +4,15 @@
|
|
4
4
|
gem "luna-rspec-formatters"
|
5
5
|
```
|
6
6
|
|
7
|
-
A set of `rspec` formatters that design things the way I like them. `
|
8
|
-
a formatter that outputs the full description as a single line rather than
|
7
|
+
A set of `rspec` formatters that design things the way I like them. `fulldesc`
|
8
|
+
is a formatter that outputs the full description as a single line rather than
|
9
9
|
nesting like documentation and `Checks` displays checkmark's and other UTF
|
10
10
|
characters rather than dots.
|
11
11
|
|
12
12
|
```ruby
|
13
13
|
require "luna/rspec/formatters/checks"
|
14
|
-
require "luna/rspec/formatters/
|
14
|
+
require "luna/rspec/formatters/fulldesc"
|
15
|
+
require "luna/rspec/formatters/smilies"
|
16
|
+
require "luna/rspec/formatters/hearts"
|
17
|
+
require "luna/rspec/formatters/cats"
|
15
18
|
```
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require "luna/rspec/formatters/emoji"
|
2
|
+
|
3
|
+
module Luna
|
4
|
+
module RSpec
|
5
|
+
module Formatters
|
6
|
+
class Smilies < Emoji
|
7
|
+
if Gem::Version.new(::RSpec::Version::STRING) >= Gem::Version.new("3.0")
|
8
|
+
::RSpec::Core::Formatters.register self, *[
|
9
|
+
:start,
|
10
|
+
:start_dump,
|
11
|
+
:example_passed,
|
12
|
+
:example_pending,
|
13
|
+
:example_failed,
|
14
|
+
:dump_profile
|
15
|
+
]
|
16
|
+
end
|
17
|
+
|
18
|
+
def example_passed(e)
|
19
|
+
newline_or_addup
|
20
|
+
output.print " ".freeze, success_color(
|
21
|
+
"\u1F63B"
|
22
|
+
)
|
23
|
+
end
|
24
|
+
|
25
|
+
def example_failed(e)
|
26
|
+
newline_or_addup
|
27
|
+
output.print " ".freeze, failure_color(
|
28
|
+
"\u1F63E"
|
29
|
+
)
|
30
|
+
end
|
31
|
+
|
32
|
+
def example_pending(e)
|
33
|
+
newline_or_addup
|
34
|
+
output.print " ".freeze, pending_color(
|
35
|
+
"\u1F63F"
|
36
|
+
)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
RSpec.configure do |config|
|
44
|
+
config.formatter = "Luna::RSpec::Formatters::Smilies"
|
45
|
+
end
|
@@ -1,52 +1,41 @@
|
|
1
|
-
require "rspec/
|
2
|
-
require "luna/rspec/formatters/profile"
|
3
|
-
require "rspec/version"
|
1
|
+
require "luna/rspec/formatters/emoji"
|
4
2
|
|
5
3
|
module Luna
|
6
4
|
module RSpec
|
7
5
|
module Formatters
|
8
|
-
class Checks <
|
6
|
+
class Checks < Emoji
|
9
7
|
include Profile
|
10
8
|
|
11
|
-
if ::RSpec::Version::STRING >= "3.0
|
12
|
-
|
13
|
-
|
14
|
-
:
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
::RSpec::Core::Formatters::ConsoleCodes.wrap(v, m)
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def start(*args)
|
25
|
-
super(*args) if defined?(super)
|
26
|
-
output.puts
|
27
|
-
end
|
28
|
-
|
29
|
-
def start_dump(*args)
|
30
|
-
super(*args) if defined?(super)
|
31
|
-
output.puts
|
9
|
+
if Gem::Version.new(::RSpec::Version::STRING) >= Gem::Version.new("3.0")
|
10
|
+
::RSpec::Core::Formatters.register self, *[
|
11
|
+
:start,
|
12
|
+
:start_dump,
|
13
|
+
:example_passed,
|
14
|
+
:example_pending,
|
15
|
+
:example_failed,
|
16
|
+
:dump_profile
|
17
|
+
]
|
32
18
|
end
|
33
19
|
|
34
20
|
def example_passed(e)
|
35
|
-
|
36
|
-
output.print
|
37
|
-
|
21
|
+
newline_or_addup
|
22
|
+
output.print " ".freeze, success_color(
|
23
|
+
"\u2714"
|
24
|
+
)
|
38
25
|
end
|
39
26
|
|
40
27
|
def example_failed(e)
|
41
|
-
|
42
|
-
output.print
|
43
|
-
|
28
|
+
newline_or_addup
|
29
|
+
output.print " ".freeze, failure_color(
|
30
|
+
"\u2718"
|
31
|
+
)
|
44
32
|
end
|
45
33
|
|
46
34
|
def example_pending(e)
|
47
|
-
|
48
|
-
output.print
|
49
|
-
|
35
|
+
newline_or_addup
|
36
|
+
output.print " ".freeze, pending_color(
|
37
|
+
"\u203D"
|
38
|
+
)
|
50
39
|
end
|
51
40
|
end
|
52
41
|
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require "rspec/core/formatters/base_text_formatter"
|
2
|
+
require "luna/rspec/formatters/profile"
|
3
|
+
require "rspec/version"
|
4
|
+
|
5
|
+
module Luna
|
6
|
+
module RSpec
|
7
|
+
module Formatters
|
8
|
+
class Emoji < ::RSpec::Core::Formatters::BaseTextFormatter
|
9
|
+
include Profile
|
10
|
+
|
11
|
+
[:success, :failure, :pending].each do |m|
|
12
|
+
define_method "#{m}_color" do |v|
|
13
|
+
defined?(super) ? super(v) : \
|
14
|
+
::RSpec::Core::Formatters::ConsoleCodes.wrap(v, m)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def allowed_cols
|
19
|
+
@cols ||= (`tput cols 2>/dev/null || 80`.to_i / 1.6).floor
|
20
|
+
end
|
21
|
+
|
22
|
+
def start(*args)
|
23
|
+
@lines = 0
|
24
|
+
output.puts
|
25
|
+
end
|
26
|
+
|
27
|
+
def start_dump(*args)
|
28
|
+
output.puts
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
def newline_or_addup
|
33
|
+
@lines == allowed_cols ? (output.puts; @lines = 1) : @lines+=1
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
require "rspec/core/formatters/base_text_formatter"
|
2
|
+
require "luna/rspec/formatters/profile"
|
3
|
+
require "rspec/version"
|
4
|
+
require "coderay"
|
5
|
+
|
6
|
+
module Luna
|
7
|
+
module RSpec
|
8
|
+
module Formatters
|
9
|
+
class Documentation < ::RSpec::Core::Formatters::BaseTextFormatter
|
10
|
+
include Profile
|
11
|
+
|
12
|
+
if Gem::Version.new(::RSpec::Version::STRING) >= Gem::Version.new("3.0")
|
13
|
+
::RSpec::Core::Formatters.register self, *[
|
14
|
+
:start,
|
15
|
+
:start_dump,
|
16
|
+
:example_passed,
|
17
|
+
:example_pending,
|
18
|
+
:example_failed,
|
19
|
+
:dump_profile
|
20
|
+
]
|
21
|
+
end
|
22
|
+
|
23
|
+
[:success, :failure, :pending].each do |m|
|
24
|
+
define_method "#{m}_color" do |v|
|
25
|
+
defined?(super) ? super(v) : ::RSpec::Core::Formatters::ConsoleCodes.wrap(
|
26
|
+
v, m
|
27
|
+
)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def start(*args)
|
32
|
+
output.puts
|
33
|
+
end
|
34
|
+
|
35
|
+
def start_dump(*args)
|
36
|
+
output.puts
|
37
|
+
end
|
38
|
+
|
39
|
+
def example_passed(struct)
|
40
|
+
output.print "\s"
|
41
|
+
print_description(
|
42
|
+
get_example(struct), :success
|
43
|
+
)
|
44
|
+
end
|
45
|
+
|
46
|
+
def example_failed(struct)
|
47
|
+
output.print "\s"
|
48
|
+
print_description(
|
49
|
+
get_example(struct), :failure
|
50
|
+
)
|
51
|
+
end
|
52
|
+
|
53
|
+
def example_pending(struct)
|
54
|
+
output.print "\s"
|
55
|
+
print_description(
|
56
|
+
get_example(struct), :pending
|
57
|
+
)
|
58
|
+
end
|
59
|
+
|
60
|
+
def get_example(struct)
|
61
|
+
return struct unless struct.respond_to?(:example)
|
62
|
+
struct.example
|
63
|
+
end
|
64
|
+
|
65
|
+
def print_description(example, type)
|
66
|
+
output.print send(
|
67
|
+
:"#{type}_color", " " + example.full_description + "\n"
|
68
|
+
)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
RSpec.configure do |config|
|
76
|
+
config.formatter = "Luna::RSpec::Formatters::Documentation"
|
77
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require "luna/rspec/formatters/emoji"
|
2
|
+
|
3
|
+
module Luna
|
4
|
+
module RSpec
|
5
|
+
module Formatters
|
6
|
+
class Hearts < Emoji
|
7
|
+
if Gem::Version.new(::RSpec::Version::STRING) >= Gem::Version.new("3.0")
|
8
|
+
::RSpec::Core::Formatters.register self, *[
|
9
|
+
:start,
|
10
|
+
:start_dump,
|
11
|
+
:example_passed,
|
12
|
+
:example_pending,
|
13
|
+
:example_failed,
|
14
|
+
:dump_profile
|
15
|
+
]
|
16
|
+
end
|
17
|
+
|
18
|
+
def example_passed(e)
|
19
|
+
newline_or_addup
|
20
|
+
output.print " ".freeze, success_color(
|
21
|
+
"\u2764"
|
22
|
+
)
|
23
|
+
end
|
24
|
+
|
25
|
+
def example_failed(e)
|
26
|
+
newline_or_addup
|
27
|
+
output.print " ".freeze, failure_color(
|
28
|
+
"\u1F494"
|
29
|
+
)
|
30
|
+
end
|
31
|
+
|
32
|
+
def example_pending(e)
|
33
|
+
newline_or_addup
|
34
|
+
output.print " ".freeze, pending_color(
|
35
|
+
"\u2764"
|
36
|
+
)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
RSpec.configure do |config|
|
44
|
+
config.formatter = "Luna::RSpec::Formatters::Hearts"
|
45
|
+
end
|
@@ -2,10 +2,10 @@ module Luna
|
|
2
2
|
module RSpec
|
3
3
|
module Formatters
|
4
4
|
module Profile
|
5
|
-
|
6
|
-
GROUPS = " %{description} %{total} seconds over %{count} examples: %{location}"
|
5
|
+
GROUPS = " %{location} \u2910 %{count} for %{total}"
|
7
6
|
EXAMPLES_HEADER = "\nTop %{size} slowest examples (%{seconds}s), %{per_cent}%% of total time:\n"
|
8
7
|
GROUPS_HEADER = "\nTop %{size} slowest example groups:"
|
8
|
+
EXAMPLES = " %{location} \u2910 %{seconds}"
|
9
9
|
|
10
10
|
|
11
11
|
def helpers
|
@@ -14,40 +14,38 @@ module Luna
|
|
14
14
|
|
15
15
|
def dump_profile(profile)
|
16
16
|
dump_profile_slowest_examples(profile)
|
17
|
-
dump_profile_slowest_example_groups(
|
17
|
+
dump_profile_slowest_example_groups(
|
18
|
+
profile
|
19
|
+
)
|
18
20
|
end
|
19
21
|
|
20
22
|
private
|
21
23
|
def dump_profile_slowest_examples(profile)
|
22
|
-
unless profile.slowest_examples.any? { |e| e.execution_result.run_time >= 0.2 }
|
23
|
-
return
|
24
|
-
end
|
25
|
-
|
26
24
|
examples_header(profile)
|
27
25
|
profile.slowest_examples.each do |e|
|
26
|
+
sec = helpers.format_seconds(e.execution_result.run_time) + \
|
27
|
+
" seconds"
|
28
|
+
|
28
29
|
@output.puts EXAMPLES % {
|
29
30
|
location: format_caller(e.location),
|
30
|
-
seconds:
|
31
|
+
seconds: sec.to_f < 1 ? success_color(sec) : failure_color(sec),
|
31
32
|
description: e.full_description
|
32
33
|
}
|
33
34
|
end
|
34
35
|
end
|
35
36
|
|
36
37
|
def dump_profile_slowest_example_groups(profile)
|
37
|
-
unless !profile.slowest_groups.empty? && \
|
38
|
-
profile.slowest_groups.any? { |l, h| h[:average] >= 0.4 }
|
39
|
-
|
40
|
-
return
|
41
|
-
end
|
42
|
-
|
43
38
|
groups_header(profile)
|
44
39
|
profile.slowest_groups.each do |l, h|
|
45
|
-
|
40
|
+
sec = helpers.format_seconds(h[:total_time]) + \
|
41
|
+
"seconds"
|
42
|
+
|
43
|
+
@output.puts color_blue(GROUPS % {
|
46
44
|
description: h[:description],
|
47
|
-
total:
|
48
|
-
|
49
|
-
|
50
|
-
}
|
45
|
+
total: sec.to_f < 2 ? success_color(sec) : failure_color(sec),
|
46
|
+
location: color_blue(strip_relative(l)),
|
47
|
+
count: h[:count]
|
48
|
+
})
|
51
49
|
end
|
52
50
|
end
|
53
51
|
|
@@ -65,10 +63,22 @@ module Luna
|
|
65
63
|
}
|
66
64
|
end
|
67
65
|
|
66
|
+
def color_blue(str)
|
67
|
+
::RSpec::Core::Formatters::ConsoleCodes.wrap(
|
68
|
+
str, :cyan
|
69
|
+
)
|
70
|
+
end
|
71
|
+
|
72
|
+
def strip_relative(path)
|
73
|
+
path.gsub(
|
74
|
+
/\A\.\//, ""
|
75
|
+
)
|
76
|
+
end
|
77
|
+
|
68
78
|
def format_caller(caller_info)
|
69
|
-
::RSpec.configuration.backtrace_formatter.backtrace_line(
|
79
|
+
color_blue strip_relative(::RSpec.configuration.backtrace_formatter.backtrace_line(
|
70
80
|
caller_info.to_s.split(':in `block').first
|
71
|
-
)
|
81
|
+
))
|
72
82
|
end
|
73
83
|
end
|
74
84
|
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require "luna/rspec/formatters/emoji"
|
2
|
+
|
3
|
+
module Luna
|
4
|
+
module RSpec
|
5
|
+
module Formatters
|
6
|
+
class Smilies < Emoji
|
7
|
+
if Gem::Version.new(::RSpec::Version::STRING) >= Gem::Version.new("3.0")
|
8
|
+
::RSpec::Core::Formatters.register self, *[
|
9
|
+
:start,
|
10
|
+
:start_dump,
|
11
|
+
:example_passed,
|
12
|
+
:example_pending,
|
13
|
+
:example_failed,
|
14
|
+
:dump_profile
|
15
|
+
]
|
16
|
+
end
|
17
|
+
|
18
|
+
def example_passed(e)
|
19
|
+
newline_or_addup
|
20
|
+
output.print " ".freeze, success_color(
|
21
|
+
"\u263A"
|
22
|
+
)
|
23
|
+
end
|
24
|
+
|
25
|
+
def example_failed(e)
|
26
|
+
newline_or_addup
|
27
|
+
output.print " ".freeze, failure_color(
|
28
|
+
"\u2639"
|
29
|
+
)
|
30
|
+
end
|
31
|
+
|
32
|
+
def example_pending(e)
|
33
|
+
newline_or_addup
|
34
|
+
output.print " ".freeze, pending_color(
|
35
|
+
"\u2639"
|
36
|
+
)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
RSpec.configure do |config|
|
44
|
+
config.formatter = "Luna::RSpec::Formatters::Smilies"
|
45
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: luna-rspec-formatters
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jordon Bedwell
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-11-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -40,9 +40,13 @@ files:
|
|
40
40
|
- Gemfile
|
41
41
|
- LICENSE
|
42
42
|
- README.md
|
43
|
+
- lib/luna/rspec/formatters/cats.rb
|
43
44
|
- lib/luna/rspec/formatters/checks.rb
|
44
|
-
- lib/luna/rspec/formatters/
|
45
|
+
- lib/luna/rspec/formatters/emoji.rb
|
46
|
+
- lib/luna/rspec/formatters/fulldesc.rb
|
47
|
+
- lib/luna/rspec/formatters/hearts.rb
|
45
48
|
- lib/luna/rspec/formatters/profile.rb
|
49
|
+
- lib/luna/rspec/formatters/smilies.rb
|
46
50
|
- lib/luna/rspec/formatters/version.rb
|
47
51
|
homepage: https://github.com/envygeeks/luna-rspec-formatters
|
48
52
|
licenses:
|
@@ -64,7 +68,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
64
68
|
version: '0'
|
65
69
|
requirements: []
|
66
70
|
rubyforge_project:
|
67
|
-
rubygems_version: 2.
|
71
|
+
rubygems_version: 2.5.0
|
68
72
|
signing_key:
|
69
73
|
specification_version: 4
|
70
74
|
summary: RSpec formatters dedicated to Luna.
|
@@ -1,61 +0,0 @@
|
|
1
|
-
require "rspec/core/formatters/base_text_formatter"
|
2
|
-
require "luna/rspec/formatters/profile"
|
3
|
-
require "rspec/version"
|
4
|
-
require "coderay"
|
5
|
-
|
6
|
-
module Luna
|
7
|
-
module RSpec
|
8
|
-
module Formatters
|
9
|
-
class Documentation < ::RSpec::Core::Formatters::BaseTextFormatter
|
10
|
-
include Profile
|
11
|
-
|
12
|
-
if ::RSpec::Version::STRING >= "3.0.0"
|
13
|
-
# Probably not available in the old version of RSpec.
|
14
|
-
::RSpec::Core::Formatters.register self, :start, :start_dump, \
|
15
|
-
:example_passed, :example_pending, :example_failed, :dump_profile
|
16
|
-
end
|
17
|
-
|
18
|
-
[:success, :failure, :pending].each do |m|
|
19
|
-
define_method "#{m}_color" do |v|
|
20
|
-
defined?(super) ? super(v) : \
|
21
|
-
::RSpec::Core::Formatters::ConsoleCodes.wrap(v, m)
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
def start(*args)
|
26
|
-
super(*args) if defined?(super)
|
27
|
-
output.puts
|
28
|
-
end
|
29
|
-
|
30
|
-
def start_dump(*args)
|
31
|
-
super(*args) if defined?(super)
|
32
|
-
output.puts
|
33
|
-
end
|
34
|
-
|
35
|
-
def example_passed(e)
|
36
|
-
output.print("\s")
|
37
|
-
print_description(e, :success)
|
38
|
-
end
|
39
|
-
|
40
|
-
def example_failed(e)
|
41
|
-
output.print("\s")
|
42
|
-
print_description(e, :failure)
|
43
|
-
end
|
44
|
-
|
45
|
-
def example_pending(e)
|
46
|
-
output.print("\s")
|
47
|
-
print_description(e, :pending)
|
48
|
-
end
|
49
|
-
|
50
|
-
def print_description(example, type)
|
51
|
-
output.print send(:"#{type}_color",
|
52
|
-
"\t" + example.full_description + "\n")
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
RSpec.configure do |config|
|
60
|
-
config.formatter = "Luna::RSpec::Formatters::Documentation"
|
61
|
-
end
|