luna-rspec-formatters 3.8.1 → 3.9.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/Gemfile +2 -6
- data/lib/luna/rspec/formatters.rb +16 -0
- data/lib/luna/rspec/formatters/cats.rb +30 -43
- data/lib/luna/rspec/formatters/checks.rb +33 -45
- data/lib/luna/rspec/formatters/documentation.rb +93 -0
- data/lib/luna/rspec/formatters/emoji.rb +46 -41
- data/lib/luna/rspec/formatters/heart.rb +48 -0
- data/lib/luna/rspec/formatters/profiling.rb +117 -0
- data/lib/luna/rspec/formatters/smiles.rb +48 -0
- data/lib/luna/rspec/formatters/version.rb +2 -4
- metadata +10 -9
- data/lib/luna/rspec/formatters/fulldesc.rb +0 -103
- data/lib/luna/rspec/formatters/hearts.rb +0 -58
- data/lib/luna/rspec/formatters/profile.rb +0 -119
- data/lib/luna/rspec/formatters/smilies.rb +0 -58
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fb75e1a08b92660aa145de699b8ebae578ae70b8
|
4
|
+
data.tar.gz: a95322897dbef02274a6621bdd33ce1561395976
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8836bca51153a8746021c8a51a8dfb85e1e5bdf2ff16f251ddbf755a41086513b70adcf97bc970535c0957acc99d5ba6a951d4462ccc796dd7aeea6fd42fb970
|
7
|
+
data.tar.gz: 10508f5d90c3fc61c7b6ccd51bcd6376dbd71129a8957453ee8a1f6042df3187ceb64bb4f7e3235ad154c6da3f670cc5dc7c82a2d315a4294f62b5fcd126f19a
|
data/Gemfile
CHANGED
@@ -1,14 +1,10 @@
|
|
1
|
-
# ----------------------------------------------------------------------------
|
2
1
|
# Frozen-string-literal: true
|
3
2
|
# Copyright: 2015 - 2017 Jordon Bedwell - MIT License
|
4
3
|
# Encoding: utf-8
|
5
|
-
# ----------------------------------------------------------------------------
|
6
4
|
|
7
5
|
source "https://rubygems.org"
|
8
6
|
gemspec
|
9
7
|
|
10
8
|
gem "rake"
|
11
|
-
|
12
|
-
|
13
|
-
gem "pry", :require => false
|
14
|
-
end
|
9
|
+
gem "rubocop", require: false
|
10
|
+
gem "pry", require: false
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# Frozen-string-literal: true
|
2
|
+
# Copyright: 2015 - 2017 Jordon Bedwell - MIT License
|
3
|
+
# Encoding: utf-8
|
4
|
+
|
5
|
+
require "rspec/core/formatters"
|
6
|
+
require "forwardable/extended"
|
7
|
+
|
8
|
+
module Luna
|
9
|
+
module Formatters
|
10
|
+
ConsoleCodes = RSpec::Core::Formatters::ConsoleCodes
|
11
|
+
extend Forwardable::Extended
|
12
|
+
rb_delegate :"self.register", {
|
13
|
+
to: :"RSpec::Core::Formatters", alias_of: :register
|
14
|
+
}
|
15
|
+
end
|
16
|
+
end
|
@@ -2,57 +2,44 @@
|
|
2
2
|
# Copyright: 2015 - 2017 Jordon Bedwell - MIT License
|
3
3
|
# Encoding: utf-8
|
4
4
|
|
5
|
-
|
5
|
+
require_relative "emoji"
|
6
6
|
|
7
7
|
module Luna
|
8
|
-
module
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
then Object::RSpec::Core::Formatters.register self, *[
|
13
|
-
:start,
|
14
|
-
:start_dump,
|
15
|
-
:example_passed,
|
16
|
-
:example_pending,
|
17
|
-
:example_failed,
|
18
|
-
:dump_profile
|
19
|
-
]
|
20
|
-
end
|
8
|
+
module Formatters
|
9
|
+
class Cats < Emoji
|
10
|
+
Formatters.register self, :start, :start_dump, :example_passed,
|
11
|
+
:example_pending, :example_failed, :dump_profile
|
21
12
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
end
|
13
|
+
# --
|
14
|
+
# Passed.
|
15
|
+
# --
|
16
|
+
def example_passed(_)
|
17
|
+
newline_or_addup
|
18
|
+
output.print " ", success_color(
|
19
|
+
"\u1F63B")
|
20
|
+
end
|
31
21
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
end
|
22
|
+
# --
|
23
|
+
# Failed.
|
24
|
+
# --
|
25
|
+
def example_failed(_)
|
26
|
+
newline_or_addup
|
27
|
+
output.print " ", failure_color(
|
28
|
+
"\u1F63E")
|
29
|
+
end
|
41
30
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
)
|
50
|
-
end
|
31
|
+
# --
|
32
|
+
# Pending.
|
33
|
+
# --
|
34
|
+
def example_pending(_)
|
35
|
+
newline_or_addup
|
36
|
+
output.print " ", pending_color(
|
37
|
+
"\u1F63F")
|
51
38
|
end
|
52
39
|
end
|
53
40
|
end
|
54
41
|
end
|
55
42
|
|
56
|
-
RSpec.configure do |
|
57
|
-
|
43
|
+
RSpec.configure do |c|
|
44
|
+
c.formatter = "Luna::Formatters::Cats"
|
58
45
|
end
|
@@ -2,59 +2,47 @@
|
|
2
2
|
# Copyright: 2015 - 2017 Jordon Bedwell - MIT License
|
3
3
|
# Encoding: utf-8
|
4
4
|
|
5
|
-
|
5
|
+
require_relative "emoji"
|
6
6
|
|
7
7
|
module Luna
|
8
|
-
module
|
9
|
-
|
10
|
-
|
11
|
-
|
8
|
+
module Formatters
|
9
|
+
class Checks < Emoji
|
10
|
+
Formatters.register self, :start, :start_dump, :example_passed,
|
11
|
+
:example_pending, :example_failed, :dump_profile
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
end
|
23
|
-
|
24
|
-
# --
|
25
|
-
# Passed.
|
26
|
-
# --
|
27
|
-
def example_passed(_)
|
28
|
-
newline_or_addup
|
29
|
-
output.print " ".freeze, success_color(
|
30
|
-
"\u2714"
|
31
|
-
)
|
32
|
-
end
|
13
|
+
# --
|
14
|
+
# Passed.
|
15
|
+
# --
|
16
|
+
def example_passed(_)
|
17
|
+
newline_or_addup
|
18
|
+
output.print " ".freeze, success_color(
|
19
|
+
"\u2714"
|
20
|
+
)
|
21
|
+
end
|
33
22
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
23
|
+
# --
|
24
|
+
# Failed.
|
25
|
+
# --
|
26
|
+
def example_failed(_)
|
27
|
+
newline_or_addup
|
28
|
+
output.print " ".freeze, failure_color(
|
29
|
+
"\u2718"
|
30
|
+
)
|
31
|
+
end
|
43
32
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
end
|
33
|
+
# --
|
34
|
+
# Pending.
|
35
|
+
# --
|
36
|
+
def example_pending(_)
|
37
|
+
newline_or_addup
|
38
|
+
output.print " ".freeze, pending_color(
|
39
|
+
"\u203D"
|
40
|
+
)
|
53
41
|
end
|
54
42
|
end
|
55
43
|
end
|
56
44
|
end
|
57
45
|
|
58
|
-
RSpec.configure do |
|
59
|
-
|
46
|
+
RSpec.configure do |c|
|
47
|
+
c.formatter = "Luna::Formatters::Checks"
|
60
48
|
end
|
@@ -0,0 +1,93 @@
|
|
1
|
+
# Frozen-string-literal: true
|
2
|
+
# Copyright: 2015 - 2017 Jordon Bedwell - MIT License
|
3
|
+
# Encoding: utf-8
|
4
|
+
|
5
|
+
require_relative "profiling"
|
6
|
+
require "rspec/core/formatters/base_text_formatter"
|
7
|
+
require "rspec/version"
|
8
|
+
|
9
|
+
module Luna
|
10
|
+
module Formatters
|
11
|
+
class Documentation < RSpec::Core::Formatters::BaseTextFormatter
|
12
|
+
include Profiling
|
13
|
+
|
14
|
+
# --
|
15
|
+
Formatters.register self, :start, :start_dump, :example_passed,
|
16
|
+
:example_pending, :example_failed, :dump_profile
|
17
|
+
|
18
|
+
# --
|
19
|
+
[:success, :failure, :pending].each do |m|
|
20
|
+
define_method "#{m}_color" do |v|
|
21
|
+
return super(v) if defined?(super)
|
22
|
+
RSpec::Core::Formatters::ConsoleCodes.
|
23
|
+
wrap(v, m)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
# --
|
28
|
+
# Start.
|
29
|
+
# --
|
30
|
+
def start(_)
|
31
|
+
output.puts
|
32
|
+
end
|
33
|
+
|
34
|
+
# --
|
35
|
+
# End.
|
36
|
+
# --
|
37
|
+
def start_dump(_)
|
38
|
+
output.puts
|
39
|
+
end
|
40
|
+
|
41
|
+
# --
|
42
|
+
# Passed.
|
43
|
+
# --
|
44
|
+
def example_passed(struct)
|
45
|
+
output.print "\s"
|
46
|
+
print_description(
|
47
|
+
get_example(struct), :success
|
48
|
+
)
|
49
|
+
end
|
50
|
+
|
51
|
+
# --
|
52
|
+
# Failed.
|
53
|
+
# --
|
54
|
+
def example_failed(struct)
|
55
|
+
output.print "\s"
|
56
|
+
print_description(
|
57
|
+
get_example(struct), :failure
|
58
|
+
)
|
59
|
+
end
|
60
|
+
|
61
|
+
# --
|
62
|
+
# Pending.
|
63
|
+
# --
|
64
|
+
def example_pending(struct)
|
65
|
+
output.print "\s"
|
66
|
+
print_description(
|
67
|
+
get_example(struct), :pending
|
68
|
+
)
|
69
|
+
end
|
70
|
+
|
71
|
+
# --
|
72
|
+
# Pull.
|
73
|
+
# --
|
74
|
+
def get_example(struct)
|
75
|
+
return struct unless struct.respond_to?(:example)
|
76
|
+
struct.example
|
77
|
+
end
|
78
|
+
|
79
|
+
# --
|
80
|
+
# Description.
|
81
|
+
# --
|
82
|
+
def print_description(example, type)
|
83
|
+
output.print send(
|
84
|
+
:"#{type}_color", " " + example.full_description + "\n"
|
85
|
+
)
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
RSpec.configure do |c|
|
92
|
+
config.formatter = "Luna::Formatters::Documentation"
|
93
|
+
end
|
@@ -3,57 +3,62 @@
|
|
3
3
|
# Encoding: utf-8
|
4
4
|
|
5
5
|
require "io/console"
|
6
|
+
require_relative "../formatters"
|
6
7
|
require "rspec/core/formatters/base_text_formatter"
|
7
|
-
|
8
|
-
require "rspec/version"
|
8
|
+
require_relative "profiling"
|
9
9
|
|
10
10
|
module Luna
|
11
|
-
module
|
12
|
-
|
13
|
-
|
14
|
-
include Profile
|
15
|
-
|
16
|
-
[:success, :failure, :pending].each do |m|
|
17
|
-
define_method "#{m}_color" do |v|
|
18
|
-
return super(v) if defined?(super)
|
19
|
-
Object::RSpec::Core::Formatters::ConsoleCodes.wrap(v, m)
|
20
|
-
end
|
21
|
-
end
|
11
|
+
module Formatters
|
12
|
+
class Emoji < RSpec::Core::Formatters::BaseTextFormatter
|
13
|
+
include Profiling
|
22
14
|
|
23
|
-
|
24
|
-
|
25
|
-
#
|
26
|
-
|
27
|
-
|
28
|
-
@cols ||= begin
|
29
|
-
(val = IO.console.winsize.last / 4) >= 24 ? val.floor : Float::INFINITY
|
30
|
-
end
|
15
|
+
# --
|
16
|
+
[:success, :failure, :pending].each do |m|
|
17
|
+
define_method "#{m}_color" do |v|
|
18
|
+
return super(v) if defined?(super)
|
19
|
+
Formatters::ConsoleCodes.wrap(v, m)
|
31
20
|
end
|
21
|
+
end
|
32
22
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
23
|
+
# --
|
24
|
+
# Note: If the terminal is too small we just let it go.
|
25
|
+
# The total columns we allow.
|
26
|
+
# --
|
27
|
+
def allowed_cols
|
28
|
+
@cols ||= begin
|
29
|
+
(val = IO.console.winsize.last / 4) >= 24 ? val.floor :
|
30
|
+
Float::INFINITY
|
39
31
|
end
|
32
|
+
end
|
40
33
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
34
|
+
# --
|
35
|
+
# Start.
|
36
|
+
# --
|
37
|
+
def start(_)
|
38
|
+
@lines = 0
|
39
|
+
output.puts
|
40
|
+
end
|
41
|
+
|
42
|
+
# --
|
43
|
+
# End.
|
44
|
+
# --
|
45
|
+
def start_dump(_)
|
46
|
+
output.puts
|
47
|
+
end
|
47
48
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
49
|
+
# --
|
50
|
+
# Determine if we should start a new line or keep
|
51
|
+
# on pushing out. Note: if the terminal is too small
|
52
|
+
# we just let it go.
|
53
|
+
# --
|
54
|
+
private
|
55
|
+
def newline_or_addup
|
56
|
+
unless @lines == allowed_cols
|
57
|
+
return @lines+= 1
|
56
58
|
end
|
59
|
+
|
60
|
+
output.puts
|
61
|
+
@lines = 1
|
57
62
|
end
|
58
63
|
end
|
59
64
|
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# Frozen-string-literal: true
|
2
|
+
# Copyright: 2015 - 2017 Jordon Bedwell - MIT License
|
3
|
+
# Encoding: utf-8
|
4
|
+
|
5
|
+
require_relative "emoji"
|
6
|
+
|
7
|
+
module Luna
|
8
|
+
module Formatters
|
9
|
+
class Hearts < Emoji
|
10
|
+
Formatters.register self, :start, :start_dump, :example_passed,
|
11
|
+
:example_pending, :example_failed, :dump_profile
|
12
|
+
|
13
|
+
# --
|
14
|
+
# Passed.
|
15
|
+
# --
|
16
|
+
def example_passed(_)
|
17
|
+
newline_or_addup
|
18
|
+
output.print " ".freeze, success_color(
|
19
|
+
"\u2764"
|
20
|
+
)
|
21
|
+
end
|
22
|
+
|
23
|
+
# --
|
24
|
+
# Failed.
|
25
|
+
# --
|
26
|
+
def example_failed(_)
|
27
|
+
newline_or_addup
|
28
|
+
output.print " ".freeze, failure_color(
|
29
|
+
"\u1F494"
|
30
|
+
)
|
31
|
+
end
|
32
|
+
|
33
|
+
# --
|
34
|
+
# Pending.
|
35
|
+
# --
|
36
|
+
def example_pending(_)
|
37
|
+
newline_or_addup
|
38
|
+
output.print " ".freeze, pending_color(
|
39
|
+
"\u2764"
|
40
|
+
)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
RSpec.configure do |config|
|
47
|
+
config.formatter = "Luna::Formatters::Hearts"
|
48
|
+
end
|
@@ -0,0 +1,117 @@
|
|
1
|
+
# Frozen-string-literal: true
|
2
|
+
# Copyright: 2015 - 2017 Jordon Bedwell - MIT License
|
3
|
+
# Encoding: utf-8
|
4
|
+
|
5
|
+
module Luna
|
6
|
+
module Formatters
|
7
|
+
module Profiling
|
8
|
+
GROUPS = " %{l} \u2910 %{c} for %{t}"
|
9
|
+
EXAMPLES_HEADER = "\nTop %{s} slowest examples (%{t}s), %{p}%% of total time:\n"
|
10
|
+
GROUPS_HEADER = "\nTop %{s} slowest example groups:"
|
11
|
+
EXAMPLES = " %{l} \u2910 %{s}"
|
12
|
+
|
13
|
+
# --
|
14
|
+
# Help.
|
15
|
+
# --
|
16
|
+
def helpers
|
17
|
+
RSpec::Core::Formatters::Helpers
|
18
|
+
end
|
19
|
+
|
20
|
+
# --
|
21
|
+
# Profile.
|
22
|
+
# --
|
23
|
+
def dump_profile(profile)
|
24
|
+
dump_profile_slowest_examples(profile)
|
25
|
+
dump_profile_slowest_example_groups(
|
26
|
+
profile
|
27
|
+
)
|
28
|
+
end
|
29
|
+
|
30
|
+
# --
|
31
|
+
# Slow examples.
|
32
|
+
# --
|
33
|
+
private
|
34
|
+
def dump_profile_slowest_examples(profile)
|
35
|
+
examples_header(profile)
|
36
|
+
|
37
|
+
profile.slowest_examples.each do |e|
|
38
|
+
sec = helpers.format_seconds(e.execution_result.run_time)
|
39
|
+
sec = sec + " seconds"
|
40
|
+
|
41
|
+
@output.puts EXAMPLES % {
|
42
|
+
:l => format_caller(e.location),
|
43
|
+
:s => sec.to_f < 1 ? success_color(sec) : failure_color(sec),
|
44
|
+
:d => e.full_description
|
45
|
+
}
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
# --
|
50
|
+
# Slowest example groups.
|
51
|
+
# --
|
52
|
+
private
|
53
|
+
def dump_profile_slowest_example_groups(profile)
|
54
|
+
groups_header(profile)
|
55
|
+
|
56
|
+
profile.slowest_groups.each do |l, h|
|
57
|
+
sec = helpers.format_seconds(h[:total_time])
|
58
|
+
sec = sec + " seconds"
|
59
|
+
|
60
|
+
@output.puts color_blue(GROUPS % {
|
61
|
+
:d => h[:description],
|
62
|
+
:t => sec.to_f < 2 ? success_color(sec) : failure_color(sec),
|
63
|
+
:l => color_blue(strip_relative(l)),
|
64
|
+
:c => h[:count]
|
65
|
+
})
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
# --
|
70
|
+
# Headers group.
|
71
|
+
# --
|
72
|
+
private
|
73
|
+
def groups_header(profile)
|
74
|
+
@output.puts GROUPS_HEADER % {
|
75
|
+
:s => profile.slowest_groups.size
|
76
|
+
}
|
77
|
+
end
|
78
|
+
|
79
|
+
# --
|
80
|
+
# Header example.
|
81
|
+
# --
|
82
|
+
private
|
83
|
+
def examples_header(profile)
|
84
|
+
@output.puts EXAMPLES_HEADER % {
|
85
|
+
:s => profile.slowest_examples.size,
|
86
|
+
:t => helpers.format_seconds(profile.slow_duration),
|
87
|
+
:p => profile.percentage
|
88
|
+
}
|
89
|
+
end
|
90
|
+
|
91
|
+
# --
|
92
|
+
private
|
93
|
+
def color_blue(str)
|
94
|
+
Object::RSpec::Core::Formatters::ConsoleCodes.wrap(
|
95
|
+
str, :cyan
|
96
|
+
)
|
97
|
+
end
|
98
|
+
|
99
|
+
# --
|
100
|
+
private
|
101
|
+
def strip_relative(path)
|
102
|
+
path.gsub(
|
103
|
+
/\A\.\//, ""
|
104
|
+
)
|
105
|
+
end
|
106
|
+
|
107
|
+
# --
|
108
|
+
private
|
109
|
+
def format_caller(caller_info)
|
110
|
+
color_blue strip_relative(::RSpec.configuration.backtrace_formatter.
|
111
|
+
backtrace_line(
|
112
|
+
caller_info.to_s.split(':in `block').first
|
113
|
+
))
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# Frozen-string-literal: true
|
2
|
+
# Copyright: 2015 - 2017 Jordon Bedwell - MIT License
|
3
|
+
# Encoding: utf-8
|
4
|
+
|
5
|
+
require_relative "emoji"
|
6
|
+
|
7
|
+
module Luna
|
8
|
+
module Formatters
|
9
|
+
class Smiles < Emoji
|
10
|
+
Formatters.register self, :start, :start_dump, :example_passed,
|
11
|
+
:example_pending, :example_failed, :dump_profile
|
12
|
+
|
13
|
+
# --
|
14
|
+
# Passed.
|
15
|
+
# --
|
16
|
+
def example_passed(_)
|
17
|
+
newline_or_addup
|
18
|
+
output.print " ".freeze, success_color(
|
19
|
+
"\u263A"
|
20
|
+
)
|
21
|
+
end
|
22
|
+
|
23
|
+
# --
|
24
|
+
# Failed.
|
25
|
+
# --
|
26
|
+
def example_failed(_)
|
27
|
+
newline_or_addup
|
28
|
+
output.print " ".freeze, failure_color(
|
29
|
+
"\u2639"
|
30
|
+
)
|
31
|
+
end
|
32
|
+
|
33
|
+
# --
|
34
|
+
# Pending.
|
35
|
+
# --
|
36
|
+
def example_pending(_)
|
37
|
+
newline_or_addup
|
38
|
+
output.print " ".freeze, pending_color(
|
39
|
+
"\u2639"
|
40
|
+
)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
RSpec.configure do |c|
|
47
|
+
c.formatter = "Luna::Formatters::Smilies"
|
48
|
+
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.9.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: 2017-10-
|
11
|
+
date: 2017-10-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -16,7 +16,7 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '3.0'
|
20
20
|
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: '4.0'
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: '
|
29
|
+
version: '3.0'
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: '4.0'
|
@@ -40,13 +40,14 @@ files:
|
|
40
40
|
- Gemfile
|
41
41
|
- LICENSE
|
42
42
|
- README.md
|
43
|
+
- lib/luna/rspec/formatters.rb
|
43
44
|
- lib/luna/rspec/formatters/cats.rb
|
44
45
|
- lib/luna/rspec/formatters/checks.rb
|
46
|
+
- lib/luna/rspec/formatters/documentation.rb
|
45
47
|
- lib/luna/rspec/formatters/emoji.rb
|
46
|
-
- lib/luna/rspec/formatters/
|
47
|
-
- lib/luna/rspec/formatters/
|
48
|
-
- lib/luna/rspec/formatters/
|
49
|
-
- lib/luna/rspec/formatters/smilies.rb
|
48
|
+
- lib/luna/rspec/formatters/heart.rb
|
49
|
+
- lib/luna/rspec/formatters/profiling.rb
|
50
|
+
- lib/luna/rspec/formatters/smiles.rb
|
50
51
|
- lib/luna/rspec/formatters/version.rb
|
51
52
|
homepage: https://github.com/envygeeks/luna-rspec-formatters
|
52
53
|
licenses:
|
@@ -68,7 +69,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
68
69
|
version: '0'
|
69
70
|
requirements: []
|
70
71
|
rubyforge_project:
|
71
|
-
rubygems_version: 2.
|
72
|
+
rubygems_version: 2.6.13
|
72
73
|
signing_key:
|
73
74
|
specification_version: 4
|
74
75
|
summary: RSpec formatters dedicated to Luna.
|
@@ -1,103 +0,0 @@
|
|
1
|
-
# Frozen-string-literal: true
|
2
|
-
# Copyright: 2015 - 2017 Jordon Bedwell - MIT License
|
3
|
-
# Encoding: utf-8
|
4
|
-
|
5
|
-
require "rspec/core/formatters/base_text_formatter"
|
6
|
-
require "luna/rspec/formatters/profile"
|
7
|
-
require "rspec/version"
|
8
|
-
require "coderay"
|
9
|
-
|
10
|
-
module Luna
|
11
|
-
module RSpec
|
12
|
-
module Formatters
|
13
|
-
class Documentation < ::RSpec::Core::Formatters::BaseTextFormatter
|
14
|
-
include Profile
|
15
|
-
|
16
|
-
if Gem::Version.new(::RSpec::Version::STRING) >= Gem::Version.new("3.0")
|
17
|
-
then Object::RSpec::Core::Formatters.register self, *[
|
18
|
-
:start,
|
19
|
-
:start_dump,
|
20
|
-
:example_passed,
|
21
|
-
:example_pending,
|
22
|
-
:example_failed,
|
23
|
-
:dump_profile
|
24
|
-
]
|
25
|
-
end
|
26
|
-
|
27
|
-
# --
|
28
|
-
[:success, :failure, :pending].each do |m|
|
29
|
-
define_method "#{m}_color" do |v|
|
30
|
-
defined?(super) ? super(v) : ::RSpec::Core::Formatters::ConsoleCodes.wrap(
|
31
|
-
v, m
|
32
|
-
)
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
# --
|
37
|
-
# Start.
|
38
|
-
# --
|
39
|
-
def start(_)
|
40
|
-
output.puts
|
41
|
-
end
|
42
|
-
|
43
|
-
# --
|
44
|
-
# End.
|
45
|
-
# --
|
46
|
-
def start_dump(_)
|
47
|
-
output.puts
|
48
|
-
end
|
49
|
-
|
50
|
-
# --
|
51
|
-
# Passed.
|
52
|
-
# --
|
53
|
-
def example_passed(struct)
|
54
|
-
output.print "\s"
|
55
|
-
print_description(
|
56
|
-
get_example(struct), :success
|
57
|
-
)
|
58
|
-
end
|
59
|
-
|
60
|
-
# --
|
61
|
-
# Failed.
|
62
|
-
# --
|
63
|
-
def example_failed(struct)
|
64
|
-
output.print "\s"
|
65
|
-
print_description(
|
66
|
-
get_example(struct), :failure
|
67
|
-
)
|
68
|
-
end
|
69
|
-
|
70
|
-
# --
|
71
|
-
# Pending.
|
72
|
-
# --
|
73
|
-
def example_pending(struct)
|
74
|
-
output.print "\s"
|
75
|
-
print_description(
|
76
|
-
get_example(struct), :pending
|
77
|
-
)
|
78
|
-
end
|
79
|
-
|
80
|
-
# --
|
81
|
-
# Pull.
|
82
|
-
# --
|
83
|
-
def get_example(struct)
|
84
|
-
return struct unless struct.respond_to?(:example)
|
85
|
-
struct.example
|
86
|
-
end
|
87
|
-
|
88
|
-
# --
|
89
|
-
# Description.
|
90
|
-
# --
|
91
|
-
def print_description(example, type)
|
92
|
-
output.print send(
|
93
|
-
:"#{type}_color", " " + example.full_description + "\n"
|
94
|
-
)
|
95
|
-
end
|
96
|
-
end
|
97
|
-
end
|
98
|
-
end
|
99
|
-
end
|
100
|
-
|
101
|
-
RSpec.configure do |config|
|
102
|
-
config.formatter = "Luna::RSpec::Formatters::Documentation"
|
103
|
-
end
|
@@ -1,58 +0,0 @@
|
|
1
|
-
# Frozen-string-literal: true
|
2
|
-
# Copyright: 2015 - 2017 Jordon Bedwell - MIT License
|
3
|
-
# Encoding: utf-8
|
4
|
-
|
5
|
-
require "luna/rspec/formatters/emoji"
|
6
|
-
|
7
|
-
module Luna
|
8
|
-
module RSpec
|
9
|
-
module Formatters
|
10
|
-
class Hearts < Emoji
|
11
|
-
if Gem::Version.new(Object::RSpec::Version::STRING) >= Gem::Version.new("3.0")
|
12
|
-
then Object::RSpec::Core::Formatters.register self, *[
|
13
|
-
:start,
|
14
|
-
:start_dump,
|
15
|
-
:example_passed,
|
16
|
-
:example_pending,
|
17
|
-
:example_failed,
|
18
|
-
:dump_profile
|
19
|
-
]
|
20
|
-
end
|
21
|
-
|
22
|
-
# --
|
23
|
-
# Passed.
|
24
|
-
# --
|
25
|
-
def example_passed(_)
|
26
|
-
newline_or_addup
|
27
|
-
output.print " ".freeze, success_color(
|
28
|
-
"\u2764"
|
29
|
-
)
|
30
|
-
end
|
31
|
-
|
32
|
-
# --
|
33
|
-
# Failed.
|
34
|
-
# --
|
35
|
-
def example_failed(_)
|
36
|
-
newline_or_addup
|
37
|
-
output.print " ".freeze, failure_color(
|
38
|
-
"\u1F494"
|
39
|
-
)
|
40
|
-
end
|
41
|
-
|
42
|
-
# --
|
43
|
-
# Pending.
|
44
|
-
# --
|
45
|
-
def example_pending(_)
|
46
|
-
newline_or_addup
|
47
|
-
output.print " ".freeze, pending_color(
|
48
|
-
"\u2764"
|
49
|
-
)
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
RSpec.configure do |config|
|
57
|
-
config.formatter = "Luna::RSpec::Formatters::Hearts"
|
58
|
-
end
|
@@ -1,119 +0,0 @@
|
|
1
|
-
# Frozen-string-literal: true
|
2
|
-
# Copyright: 2015 - 2017 Jordon Bedwell - MIT License
|
3
|
-
# Encoding: utf-8
|
4
|
-
|
5
|
-
module Luna
|
6
|
-
module RSpec
|
7
|
-
module Formatters
|
8
|
-
module Profile
|
9
|
-
GROUPS = " %{location} \u2910 %{count} for %{total}"
|
10
|
-
EXAMPLES_HEADER = "\nTop %{size} slowest examples (%{seconds}s), %{per_cent}%% of total time:\n"
|
11
|
-
GROUPS_HEADER = "\nTop %{size} slowest example groups:"
|
12
|
-
EXAMPLES = " %{location} \u2910 %{seconds}"
|
13
|
-
|
14
|
-
# --
|
15
|
-
# Help.
|
16
|
-
# --
|
17
|
-
|
18
|
-
def helpers
|
19
|
-
::RSpec::Core::Formatters::Helpers
|
20
|
-
end
|
21
|
-
|
22
|
-
# --
|
23
|
-
# Profile.
|
24
|
-
# --
|
25
|
-
def dump_profile(profile)
|
26
|
-
dump_profile_slowest_examples(profile)
|
27
|
-
dump_profile_slowest_example_groups(
|
28
|
-
profile
|
29
|
-
)
|
30
|
-
end
|
31
|
-
|
32
|
-
# --
|
33
|
-
# Slow examples.
|
34
|
-
# --
|
35
|
-
private
|
36
|
-
def dump_profile_slowest_examples(profile)
|
37
|
-
examples_header(profile)
|
38
|
-
|
39
|
-
profile.slowest_examples.each do |e|
|
40
|
-
sec = helpers.format_seconds(e.execution_result.run_time)
|
41
|
-
sec = sec + " seconds"
|
42
|
-
|
43
|
-
@output.puts EXAMPLES % {
|
44
|
-
:location => format_caller(e.location),
|
45
|
-
:seconds => sec.to_f < 1 ? success_color(sec) : failure_color(sec),
|
46
|
-
:description => e.full_description
|
47
|
-
}
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
# --
|
52
|
-
# Slowest example groups.
|
53
|
-
# --
|
54
|
-
private
|
55
|
-
def dump_profile_slowest_example_groups(profile)
|
56
|
-
groups_header(profile)
|
57
|
-
|
58
|
-
profile.slowest_groups.each do |l, h|
|
59
|
-
sec = helpers.format_seconds(h[:total_time])
|
60
|
-
sec = sec + " seconds"
|
61
|
-
|
62
|
-
@output.puts color_blue(GROUPS % {
|
63
|
-
:description => h[:description],
|
64
|
-
:total => sec.to_f < 2 ? success_color(sec) : failure_color(sec),
|
65
|
-
:location => color_blue(strip_relative(l)),
|
66
|
-
:count => h[:count]
|
67
|
-
})
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
# --
|
72
|
-
# Headers group.
|
73
|
-
# --
|
74
|
-
private
|
75
|
-
def groups_header(profile)
|
76
|
-
@output.puts GROUPS_HEADER % {
|
77
|
-
:size => profile.slowest_groups.size
|
78
|
-
}
|
79
|
-
end
|
80
|
-
|
81
|
-
# --
|
82
|
-
# Header example.
|
83
|
-
# --
|
84
|
-
private
|
85
|
-
def examples_header(profile)
|
86
|
-
@output.puts EXAMPLES_HEADER % {
|
87
|
-
:size => profile.slowest_examples.size,
|
88
|
-
:seconds => helpers.format_seconds(profile.slow_duration),
|
89
|
-
:per_cent => profile.percentage
|
90
|
-
}
|
91
|
-
end
|
92
|
-
|
93
|
-
# --
|
94
|
-
private
|
95
|
-
def color_blue(str)
|
96
|
-
Object::RSpec::Core::Formatters::ConsoleCodes.wrap(
|
97
|
-
str, :cyan
|
98
|
-
)
|
99
|
-
end
|
100
|
-
|
101
|
-
# --
|
102
|
-
private
|
103
|
-
def strip_relative(path)
|
104
|
-
path.gsub(
|
105
|
-
/\A\.\//, ""
|
106
|
-
)
|
107
|
-
end
|
108
|
-
|
109
|
-
# --
|
110
|
-
private
|
111
|
-
def format_caller(caller_info)
|
112
|
-
color_blue strip_relative(::RSpec.configuration.backtrace_formatter.backtrace_line(
|
113
|
-
caller_info.to_s.split(':in `block').first
|
114
|
-
))
|
115
|
-
end
|
116
|
-
end
|
117
|
-
end
|
118
|
-
end
|
119
|
-
end
|
@@ -1,58 +0,0 @@
|
|
1
|
-
# Frozen-string-literal: true
|
2
|
-
# Copyright: 2015 - 2017 Jordon Bedwell - MIT License
|
3
|
-
# Encoding: utf-8
|
4
|
-
|
5
|
-
require "luna/rspec/formatters/emoji"
|
6
|
-
|
7
|
-
module Luna
|
8
|
-
module RSpec
|
9
|
-
module Formatters
|
10
|
-
class Smilies < Emoji
|
11
|
-
if Gem::Version.new(Object::RSpec::Version::STRING) >= Gem::Version.new("3.0")
|
12
|
-
then Object::RSpec::Core::Formatters.register self, *[
|
13
|
-
:start,
|
14
|
-
:start_dump,
|
15
|
-
:example_passed,
|
16
|
-
:example_pending,
|
17
|
-
:example_failed,
|
18
|
-
:dump_profile
|
19
|
-
]
|
20
|
-
end
|
21
|
-
|
22
|
-
# --
|
23
|
-
# Passed.
|
24
|
-
# --
|
25
|
-
def example_passed(_)
|
26
|
-
newline_or_addup
|
27
|
-
output.print " ".freeze, success_color(
|
28
|
-
"\u263A"
|
29
|
-
)
|
30
|
-
end
|
31
|
-
|
32
|
-
# --
|
33
|
-
# Failed.
|
34
|
-
# --
|
35
|
-
def example_failed(_)
|
36
|
-
newline_or_addup
|
37
|
-
output.print " ".freeze, failure_color(
|
38
|
-
"\u2639"
|
39
|
-
)
|
40
|
-
end
|
41
|
-
|
42
|
-
# --
|
43
|
-
# Pending.
|
44
|
-
# --
|
45
|
-
def example_pending(_)
|
46
|
-
newline_or_addup
|
47
|
-
output.print " ".freeze, pending_color(
|
48
|
-
"\u2639"
|
49
|
-
)
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
RSpec.configure do |config|
|
57
|
-
config.formatter = "Luna::RSpec::Formatters::Smilies"
|
58
|
-
end
|