module Luna::Formatters::Profiling
Constants
- EXP
- EXP_HEADER
- GROUPS
- GROUPS_HEADER
Public Instance Methods
dump_profile(profile)
click to toggle source
# File lib/luna/rspec/formatters/extras/profiling.rb, line 19 def dump_profile(profile) slowest_examples(profile) slowest_example_groups( profile ) end
helpers()
click to toggle source
# File lib/luna/rspec/formatters/extras/profiling.rb, line 15 def helpers RSpec::Core::Formatters::Helpers end
Private Instance Methods
color_blue(str)
click to toggle source
# File lib/luna/rspec/formatters/extras/profiling.rb, line 93 def color_blue(str) RSpec::Core::Formatters::ConsoleCodes.wrap( str, :cyan ) end
examples_header(profile)
click to toggle source
# File lib/luna/rspec/formatters/extras/profiling.rb, line 80 def examples_header(profile) @output.puts( format(EXP_HEADER, { count: profile.slowest_examples.size, percent: profile.percentage, sec: helpers.format_seconds( profile.slow_duration ) }) ) end
format_caller(caller_info)
click to toggle source
# File lib/luna/rspec/formatters/extras/profiling.rb, line 107 def format_caller(caller_info) color_blue strip_relative( ::RSpec.configuration.backtrace_formatter.backtrace_line( caller_info.to_s.split(":in `block'").first ) ) end
groups_header(profile)
click to toggle source
# File lib/luna/rspec/formatters/extras/profiling.rb, line 71 def groups_header(profile) @output.puts( format(GROUPS_HEADER, { count: profile.slowest_groups.size }) ) end
slowest_example_groups(profile)
click to toggle source
# File lib/luna/rspec/formatters/extras/profiling.rb, line 48 def slowest_example_groups(profile) groups_header(profile) profile.slowest_groups.each do |l, h| sec = helpers.format_seconds( h[:total_time] ) sec = sec + ' seconds' @output.puts color_blue( format(GROUPS, { desc: h[:description], sec: sec.to_f < 2 ? success_color(sec) : failure_color(sec), count: h[:count], loc: color_blue( strip_relative(l) ) }) ) end end
slowest_examples(profile)
click to toggle source
# File lib/luna/rspec/formatters/extras/profiling.rb, line 27 def slowest_examples(profile) examples_header(profile) profile.slowest_examples.map do |example| r_time = example.execution_result.run_time sec = helpers.format_seconds( r_time ) sec = sec + ' seconds' @output.puts( format(EXP, { loc: format_caller(example.location), sec: sec.to_f < 1 ? success_color(sec) : failure_color(sec), dsc: example.full_description }) ) end end
strip_relative(path)
click to toggle source
# File lib/luna/rspec/formatters/extras/profiling.rb, line 100 def strip_relative(path) path.gsub( %r!\A\./!, '' ) end