class SimpleCov::Formatter::TailwindFormatter
Constants
- VERSION
Public Class Methods
new()
click to toggle source
# File lib/simplecov-tailwindcss.rb, line 18 def initialize @branchable_result = SimpleCov.branch_coverage? end
Public Instance Methods
branchable_result?()
click to toggle source
# File lib/simplecov-tailwindcss.rb, line 39 def branchable_result? @branchable_result end
format(result)
click to toggle source
# File lib/simplecov-tailwindcss.rb, line 22 def format(result) # rubocop:disable Metrics/AbcSize Dir[File.join(File.dirname(__FILE__), "../public/*")].each do |path| FileUtils.cp_r(path, asset_output_path) end File.open(File.join(output_path, "index.html"), "wb") do |file| file.puts template("main").result(binding) end puts output_message(result) end
line_status?(source_file, line)
click to toggle source
# File lib/simplecov-tailwindcss.rb, line 43 def line_status?(source_file, line) if branchable_result? && source_file.line_with_missed_branch?(line.number) "missed-branch" else line.status end end
output_message(result)
click to toggle source
# File lib/simplecov-tailwindcss.rb, line 33 def output_message(result) "Coverage report generated for #{result.command_name} to " \ "#{output_path}. #{result.covered_lines} / #{result.total_lines} LOC" \ " (#{result.covered_percent.round(2)}%) covered." end
Private Instance Methods
asset_output_path()
click to toggle source
# File lib/simplecov-tailwindcss.rb, line 63 def asset_output_path return @asset_output_path if defined?(@asset_output_path) && @asset_output_path @asset_output_path = File.join( output_path, "dist", SimpleCov::Formatter::TailwindFormatter::VERSION ) FileUtils.mkdir_p(@asset_output_path) @asset_output_path end
assets_path(name)
click to toggle source
# File lib/simplecov-tailwindcss.rb, line 74 def assets_path(name) File.join( "./dist", SimpleCov::Formatter::TailwindFormatter::VERSION, name ) end
coverage_class(covered_percent)
click to toggle source
# File lib/simplecov-tailwindcss.rb, line 115 def coverage_class(covered_percent) if covered_percent > 90 "text-green-500" elsif covered_percent > 80 "text-yellow-500" else "text-red-500" end end
format_number(number)
click to toggle source
rubocop:enable Lint/SelfAssignment, Style/RedundantRegexpEscape
# File lib/simplecov-tailwindcss.rb, line 108 def format_number(number) whole, decimal = number.to_s.split(".") whole_with_commas = whole.chars.to_a.reverse.each_slice(3).map(&:join).join(",").reverse [whole_with_commas, decimal].compact.join(".") end
generate_dialog(file)
click to toggle source
# File lib/simplecov-tailwindcss.rb, line 80 def generate_dialog(file) template("dialog").result(binding) rescue Encoding::CompatibilityError => e puts "Encoding problems with file #{file.filename}. Simplecov/ERB "\ "can't handle non ASCII characters in filenames. Error: " \ "#{e.message}." end
generate_group_page(title, files)
click to toggle source
rubocop:disable Lint/SelfAssignment, Style/RedundantRegexpEscape
# File lib/simplecov-tailwindcss.rb, line 97 def generate_group_page(title, files) title_id = title.gsub(/^[^a-zA-Z]+/, "").gsub(/[^a-zA-Z0-9\-\_]/, "") title_id = title_id template("group_page").result(binding) end
generate_stat_card(title, stat, color)
click to toggle source
# File lib/simplecov-tailwindcss.rb, line 88 def generate_stat_card(title, stat, color) template("stat_card").result(binding) end
generate_table_column_head(name)
click to toggle source
# File lib/simplecov-tailwindcss.rb, line 92 def generate_table_column_head(name) template("table_column_head").result(binding) end
hide_show(title)
click to toggle source
# File lib/simplecov-tailwindcss.rb, line 143 def hide_show(title) if title == "AllFiles" "" else "hidden" end end
id(source_file)
click to toggle source
# File lib/simplecov-tailwindcss.rb, line 135 def id(source_file) Digest::SHA1.hexdigest(source_file.filename) end
output_path()
click to toggle source
# File lib/simplecov-tailwindcss.rb, line 59 def output_path SimpleCov.coverage_path end
remove_spaces(name)
click to toggle source
# File lib/simplecov-tailwindcss.rb, line 103 def remove_spaces(name) name.gsub(/^[^a-zA-Z]+/, "").gsub(/[^a-zA-Z0-9\-\_]/, "") end
shortened_filename(file)
click to toggle source
# File lib/simplecov-tailwindcss.rb, line 139 def shortened_filename(file) file.filename.sub(SimpleCov.root, ".").gsub(/^\.\//, "") end
strength_class(covered_strength)
click to toggle source
# File lib/simplecov-tailwindcss.rb, line 125 def strength_class(covered_strength) if covered_strength > 1 "text-green-500" elsif covered_strength == 1 "text-yellow-500" else "text-red-500" end end
template(name)
click to toggle source
# File lib/simplecov-tailwindcss.rb, line 53 def template(name) ERB.new(File.read(File.join( File.dirname(__FILE__), "../views/", "#{name}.erb" ))) end