simplecov-tailwindcss 2.0.0 → 2.1.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.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/.erb-lint.yml +8 -0
  3. data/.eslintignore +1 -0
  4. data/.eslintrc.json +10 -0
  5. data/.github/ISSUE_TEMPLATE/bug_report.yml +54 -0
  6. data/.github/ISSUE_TEMPLATE/config.yml +8 -0
  7. data/.github/ISSUE_TEMPLATE/feature_request.yml +26 -0
  8. data/.github/ISSUE_TEMPLATE/question.yml +26 -0
  9. data/.github/workflows/builds.yml +91 -0
  10. data/.github/workflows/github_publish.yml +1 -1
  11. data/.github/workflows/lints.yml +49 -0
  12. data/.github/workflows/rubygem_publish.yml +1 -1
  13. data/.github/workflows/tests.yml +16 -12
  14. data/.gitignore +1 -0
  15. data/.markdownlint.yml +18 -18
  16. data/.prettierignore +0 -1
  17. data/.prettierrc.json +12 -0
  18. data/.rubocop.yml +4935 -649
  19. data/.ruby-version +1 -1
  20. data/CHANGELOG.md +16 -0
  21. data/CODE_OF_CONDUCT.md +11 -11
  22. data/CONTRIBUTING.md +25 -25
  23. data/Gemfile +12 -9
  24. data/README.md +16 -15
  25. data/dist/app.css +3 -3
  26. data/dist/app.js +10 -10
  27. data/dist/scripts/controllers/darktheme_controller.js +13 -16
  28. data/dist/scripts/controllers/navigation_controller.js +9 -13
  29. data/dist/scripts/controllers/search_controller.js +48 -61
  30. data/dist/scripts/controllers/slideover_controller.js +11 -24
  31. data/dist/scripts/timeago.js +2 -2
  32. data/lib/simplecov-tailwindcss/version.rb +1 -1
  33. data/lib/simplecov-tailwindcss.rb +67 -51
  34. data/package.json +60 -55
  35. data/public/application.css +1 -1
  36. data/simplecov-tailwindcss.gemspec +23 -23
  37. data/tailwind.config.js +7 -7
  38. data/test/simplecov-tailwindcss/simplecov_tailwindcss_test.rb +2 -2
  39. data/views/dialog.erb +75 -29
  40. data/views/file_detail.erb +57 -56
  41. data/views/group_page.erb +2 -2
  42. data/views/main.erb +8 -9
  43. data/views/stat_card.erb +1 -1
  44. data/yarn.lock +814 -5
  45. metadata +12 -7
  46. data/.eslintrc.js +0 -91
  47. data/.github/ISSUE_TEMPLATE/bug_report.md +0 -38
  48. data/.github/ISSUE_TEMPLATE/feature-request.md +0 -20
  49. data/.github/ISSUE_TEMPLATE/question.md +0 -10
  50. data/.prettierrc +0 -7
@@ -14,7 +14,7 @@ class SimplecovTailwindcssTest < Minitest::Test
14
14
  def test_version
15
15
  version = SimpleCov::Formatter::TailwindFormatter::VERSION
16
16
 
17
- assert(!version.nil?)
17
+ refute_nil(version)
18
18
  end
19
19
 
20
20
  def test_execution # rubocop:disable Metrics/MethodLength
@@ -31,7 +31,7 @@ class SimplecovTailwindcssTest < Minitest::Test
31
31
  @result = SimpleCov::Result.new(@original_result)
32
32
  SimpleCov::Formatter::TailwindFormatter.new.format(@result)
33
33
 
34
- assert(File.exist?("/#{SimpleCov.coverage_path}/index.html"))
34
+ assert_path_exists("/#{SimpleCov.coverage_path}/index.html")
35
35
  end
36
36
 
37
37
  def source_fixture(filename)
data/views/dialog.erb CHANGED
@@ -1,31 +1,33 @@
1
- <div class="bg-blue-700 py-6 px-4 sm:px-6 hidden" id="<%= id(file) %>">
2
- <div class="flex">
3
- <h2 class="text-lg font-medium text-slate-100">
4
- <%= shortened_filename file %>
5
- </h2>
6
- </div>
7
- <div class="mt-1 flex divide-x divide-slate-300">
8
- <p class="flex items-center text-sm pr-2">
9
- <span class="pr-2 text-slate-100">% Covered:</span>
10
- <span class="font-bold <%= coverage_class(file.covered_percent) %>">
11
- <%= file.covered_percent.round(2).to_s %>%
12
- </span>
13
- </p>
14
- <% if branchable_result? %>
15
- <p class="flex items-center text-sm pl-2">
16
- <span class="pr-2 text-slate-100">% Branches Covered:</span>
17
- <span class="font-bold <%= coverage_class(file.branches_coverage_percent) %>">
18
- <%= file.branches_coverage_percent.round(2).to_s %>%
19
- </span>
20
- </p>
21
- <% end %>
1
+ <div class="flex h-full flex-col overflow-y-scroll bg-gray-50 dark:bg-slate-900 shadow-xl hidden" id="<%= id(file) %>">
2
+ <div class="bg-blue-700 py-6 px-4 sm:px-6 sticky top-0 z-40">
3
+ <div class="flex items-center justify-between">
4
+ <h2 class="text-lg font-medium text-slate-100">
5
+ <%= shortened_filename file %>
6
+ </h2>
7
+ </div>
8
+ <div class="mt-1">
9
+ <div class="mt-1 flex divide-x divide-slate-300">
10
+ <p class="flex items-center text-sm pr-2">
11
+ <span class="pr-2 text-slate-100">% Covered:</span>
12
+ <span class="font-bold <%= coverage_class(file.covered_percent) %>">
13
+ <%= file.covered_percent.round(2).to_s %>%
14
+ </span>
15
+ </p>
16
+ <% if branchable_result? %>
17
+ <p class="flex items-center text-sm pl-2">
18
+ <span class="pr-2 text-slate-100">% Branches Covered:</span>
19
+ <span class="font-bold <%= coverage_class(file.branches_coverage_percent) %>">
20
+ <%= file.branches_coverage_percent.round(2).to_s %>%
21
+ </span>
22
+ </p>
23
+ <% end %>
24
+ </div>
25
+ </div>
22
26
  </div>
23
- </div>
24
- <div class="flex h-full flex-col overflow-y-scroll bg-gray-50 dark:bg-slate-900 shadow-xl z-50">
25
- <div class="relative flex-1">
27
+ <div class="bg-blue-700 relative flex-1">
26
28
  <div class="absolute inset-0">
27
- <pre class="bg-blue-700 text-white whitespace-normal w-full text-xs pb-14">
28
- <ol class="list-decimal ml-12 mb-12 text-slate-300">
29
+ <pre class="bg-blue-700 text-white whitespace-normal w-full text-xs pb-2">
30
+ <ol class="list-decimal ml-12 text-slate-300 <%= branch_enabled_class %>">
29
31
  <% file.lines.each do |line| %>
30
32
  <li class="bg-white border-l-4 border-gray-700 py-2 pl-2 pr-4 <%= line_coverage_class(line.status) %>" data-hits="<%= line.coverage ? line.coverage : '' %>" data-linenumber="<%= line.number %>">
31
33
  <% if line.covered? %>
@@ -36,16 +38,60 @@
36
38
  <% end %>
37
39
  <% if branchable_result? %>
38
40
  <% file.branches_for_line(line.number).each do |branch_type, hit_count| %>
39
- <span class="inline-flex items-center ml-1 px-2.5 py-0.5 rounded-full text-xs font-medium leading-4 bg-blue-700 text-white float-right" title="<%= branch_type%> branch hit <%= hit_count %> times">
41
+ <span class="inline-flex items-center ml-1 px-2.5 py-0.5 rounded-full text-xs font-medium leading-4 bg-blue-700 text-white float-right" title="<%= branch_type %> branch hit <%= hit_count %> times">
40
42
  <%= branch_type %>: <%= hit_count %>
41
43
  </span>
42
44
  <% end %>
43
45
  <% end %>
44
- <code class="text-gray-900 whitespace-pre-wrap"><%= CGI.escapeHTML(line.src.chomp) %></code>
46
+ <code class="whitespace-pre-wrap <%= code_coverage_class(line.status) %>"><%= CGI.escapeHTML(line.src.chomp) %></code>
45
47
  </li>
46
48
  <% end %>
47
49
  </ol>
48
50
  </pre>
49
51
  </div>
50
52
  </div>
51
- </div>
53
+ <div class="bg-blue-700 py-2 px-4 sm:px-6 fixed bottom-0 z-40 w-full">
54
+ <div class="mt-1 flex divide-x divide-slate-300">
55
+ <p class="flex items-center text-sm pr-2">
56
+ <span class="font-bold text-slate-100">
57
+ <%= file.lines_of_code %>
58
+ </span>
59
+ <span class="pl-2 text-slate-100">Relevant Lines</span>
60
+ </p>
61
+ <p class="flex items-center text-sm pr-2 pl-2">
62
+ <span class="font-bold text-green-500">
63
+ <%= format_number(file.covered_lines.count) %>
64
+ </span>
65
+ <span class="pl-2 text-slate-100">Lines Covered</span>
66
+ </p>
67
+ <p class="flex items-center text-sm pr-2 pl-2">
68
+ <span class="font-bold text-red-500">
69
+ <%= format_number(file.missed_lines.count) %>
70
+ </span>
71
+ <span class="pl-2 text-slate-100">Lines Missed</span>
72
+ </p>
73
+ </div>
74
+ <% if branchable_result? %>
75
+ <div class="mt-1 flex divide-x divide-slate-300">
76
+ <p class="flex items-center text-sm pr-2">
77
+ <span class="font-bold text-slate-100">
78
+ <%= file.total_branches.count %>
79
+ </span>
80
+ <span class="pl-2 text-slate-100">Total Branches</span>
81
+ </p>
82
+ <p class="flex items-center text-sm pr-2 pl-2">
83
+ <span class="font-bold text-green-500">
84
+ <%= format_number(file.covered_branches.count) %>
85
+ </span>
86
+ <span class="pl-2 text-slate-100">Branches Covered</span>
87
+ </p>
88
+ <p class="flex items-center text-sm pr-2 pl-2">
89
+ <span class="font-bold text-red-500">
90
+ <%= format_number(file.missed_branches.count) %>
91
+ </span>
92
+ <span class="pl-2 text-slate-100">Branches Missed</span>
93
+ </p>
94
+ </div>
95
+ <% end %>
96
+ </div>
97
+ </div>
@@ -1,66 +1,67 @@
1
1
  <li data-lines="<%= file.lines.count %>" data-relevent-lines="<%= file.covered_lines.count + file.missed_lines.count %>"
2
2
  data-covered-lines="<%= file.covered_lines.count %>" data-missed-lines="<%= file.missed_lines.count %>"
3
3
  data-covered-strength="<%= file.covered_strength %>" data-covered-percent="<%= file.covered_percent %>"
4
- data-branch-covered-percent="<%= file.branches_coverage_percent %>" data-branches="<%= file.total_branches.count %>"
4
+ data-branch-covered-percent="<%= file.branches_coverage_percent %>" data-branches="<%= file.total_branches.count %>"
5
5
  data-branches-covered="<%= file.covered_branches.count %>" data-branches-missed="<%= file.missed_branches.count %>"
6
- data-file-name="<%= shortened_filename(file) %>"
7
- >
6
+ data-file-name="<%= shortened_filename(file) %>">
8
7
  <a href="#<%= id(file) %>" class="block" data-action="click->slideover#openEvent" data-index="<%= id(file) %>">
9
8
  <div class="flex items-center px-4 py-4 sm:px-6 justify-between">
10
- <div class="min-w-0 flex-1 justify-between items-center mr-4">
11
- <div class="flex-1 flex items-center justify-between">
12
- <p class="text-sm font-medium text-blue-700 truncate">
13
- <%= shortened_filename(file) %>
14
- </p>
15
- <div class="ml-2 flex-shrink-0 flex">
16
- <p class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full <%= coverage_badge_class(file.covered_percent) %>">
17
- <%= sprintf("%.2f", file.covered_percent.round(2)) %>%
18
- </p>
9
+ <div class="flex-1 flex items-center justify-between pr-4">
10
+ <div>
11
+ <div class="min-w-0 flex-1 justify-between items-center mr-4">
12
+ <div class="text-sm font-medium text-blue-700 truncate">
13
+ <%= shortened_filename(file) %>
14
+ </div>
15
+ <div class="mt-2">
16
+ <div class="lg:flex">
17
+ <p class="flex items-center text-sm">
18
+ <span class="font-bold pr-2">Lines:</span>
19
+ <%= format_number(file.lines.count) %>
20
+ </p>
21
+ <p class="mt-2 flex items-center text-sm lg:mt-0 lg:ml-6">
22
+ <span class="font-bold pr-2">Relevent Lines:</span>
23
+ <%= format_number(file.covered_lines.count + file.missed_lines.count) %>
24
+ </p>
25
+ <p class="mt-2 flex items-center text-sm lg:mt-0 lg:ml-6">
26
+ <span class="font-bold pr-2">Covered Lines:</span>
27
+ <%= format_number(file.covered_lines.count) %>
28
+ </p>
29
+ <p class="mt-2 flex items-center text-sm lg:mt-0 lg:ml-6">
30
+ <span class="font-bold pr-2">Missed Lines:</span>
31
+ <%= format_number(file.missed_lines.count) %>
32
+ </p>
33
+ <p class="mt-2 flex items-center text-sm lg:mt-0 lg:ml-6">
34
+ <span class="font-bold pr-2">AVG Hits/Lines:</span>
35
+ <%= format_number(file.covered_strength.round(2)) %>
36
+ </p>
37
+ </div>
38
+ <% if branchable_result? %>
39
+ <div class="lg:flex mt-2">
40
+ <p class="flex items-center text-sm lg:mt-0">
41
+ <span class="font-bold pr-2">% Covered Branches:</span>
42
+ <%= sprintf("%.2f", file.branches_coverage_percent.round(2)) %>%
43
+ </p>
44
+ <p class="mt-2 flex items-center text-sm lg:mt-0 lg:ml-6">
45
+ <span class="font-bold pr-2">Branches:</span>
46
+ <%= format_number(file.total_branches.count) %>
47
+ </p>
48
+ <p class="mt-2 flex items-center text-sm lg:mt-0 lg:ml-6">
49
+ <span class="font-bold pr-2">Covered Branches:</span>
50
+ <%= format_number(file.covered_branches.count) %>
51
+ </p>
52
+ <p class="mt-2 flex items-center text-sm lg:mt-0 lg:ml-6">
53
+ <span class="font-bold pr-2">Missed Branches:</span>
54
+ <%= format_number(file.missed_branches.count) %>
55
+ </p>
56
+ </div>
57
+ <% end %>
58
+ </div>
19
59
  </div>
20
60
  </div>
21
- <div class="mt-2">
22
- <div class="lg:flex">
23
- <p class="flex items-center text-sm">
24
- <span class="font-bold pr-2">Lines:</span>
25
- <%= format_number(file.lines.count) %>
26
- </p>
27
- <p class="mt-2 flex items-center text-sm lg:mt-0 lg:ml-6">
28
- <span class="font-bold pr-2">Relevent Lines:</span>
29
- <%= format_number(file.covered_lines.count + file.missed_lines.count) %>
30
- </p>
31
- <p class="mt-2 flex items-center text-sm lg:mt-0 lg:ml-6">
32
- <span class="font-bold pr-2">Covered Lines:</span>
33
- <%= format_number(file.covered_lines.count) %>
34
- </p>
35
- <p class="mt-2 flex items-center text-sm lg:mt-0 lg:ml-6">
36
- <span class="font-bold pr-2">Missed Lines:</span>
37
- <%= format_number(file.missed_lines.count) %>
38
- </p>
39
- <p class="mt-2 flex items-center text-sm lg:mt-0 lg:ml-6">
40
- <span class="font-bold pr-2">AVG Hits/Lines:</span>
41
- <%= format_number(file.covered_strength.round(2)) %>
42
- </p>
43
- </div>
44
- <% if branchable_result? %>
45
- <div class="lg:flex mt-2">
46
- <p class="flex items-center text-sm lg:mt-0">
47
- <span class="font-bold pr-2">% Covered Branches:</span>
48
- <%= sprintf("%.2f", file.branches_coverage_percent.round(2)) %>%
49
- </p>
50
- <p class="mt-2 flex items-center text-sm lg:mt-0 lg:ml-6">
51
- <span class="font-bold pr-2">Branches:</span>
52
- <%= format_number(file.total_branches.count) %>
53
- </p>
54
- <p class="mt-2 flex items-center text-sm lg:mt-0 lg:ml-6">
55
- <span class="font-bold pr-2">Covered Branches:</span>
56
- <%= format_number(file.covered_branches.count) %>
57
- </p>
58
- <p class="mt-2 flex items-center text-sm lg:mt-0 lg:ml-6">
59
- <span class="font-bold pr-2">Missed Branches:</span>
60
- <%= format_number(file.missed_branches.count) %>
61
- </p>
62
- </div>
63
- <% end %>
61
+ <div class="flex-shrink-0 flex">
62
+ <p class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full <%= coverage_badge_class(file.covered_percent) %>">
63
+ <%= sprintf("%.2f", file.covered_percent.round(2)) %>%
64
+ </p>
64
65
  </div>
65
66
  </div>
66
67
  <div>
@@ -70,4 +71,4 @@
70
71
  </div>
71
72
  </div>
72
73
  </a>
73
- </li>
74
+ </li>
data/views/group_page.erb CHANGED
@@ -30,7 +30,7 @@
30
30
  <%= generate_stat_card('Branches Covered', format_number(files.covered_branches), 'text-green-500') %>
31
31
  <%= generate_stat_card('Branches Missed', format_number(files.missed_branches), 'text-red-500') %>
32
32
  <%= generate_stat_card('Branches', files.branch_covered_percent.round(2).to_s + '%', coverage_class(files.branch_covered_percent)) %>
33
- <% end %>
33
+ <% end %>
34
34
  </ul>
35
35
  </nav>
36
36
  </div>
@@ -53,4 +53,4 @@
53
53
  </main>
54
54
  </div>
55
55
  </div>
56
- </div>
56
+ </div>
data/views/main.erb CHANGED
@@ -2,9 +2,9 @@
2
2
  <html data-controller="darktheme" data-darktheme-target="body" data-darktheme-dark-class="dark">
3
3
  <head>
4
4
  <title>Code Coverage for <%= SimpleCov.project_name %></title>
5
- <meta http-equiv="content-type" content="text/html; charset=utf-8" />
5
+ <meta http-equiv="content-type" content="text/html; charset=utf-8">
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
- <link href="<%= assets_path('application.css') %>" media="screen, projection, print" rel="stylesheet" type="text/css"/>
7
+ <link href="<%= assets_path('application.css') %>" media="screen, projection, print" rel="stylesheet" type="text/css">
8
8
  </head>
9
9
  <body class="bg-gray-50 text-slate-500 dark:bg-slate-900 dark:text-slate-400"
10
10
  data-controller="slideover navigation search" data-slideover-hide-class="hidden" data-slideover-allow-close-value="true"
@@ -31,12 +31,12 @@
31
31
  <path fill-rule="evenodd" d="M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z" clip-rule="evenodd" />
32
32
  </svg>
33
33
  </div>
34
- <input data-action="input->search#searchEvent" class="block w-full rounded-md border border-slate-900/10 bg-white/95 py-2 pl-10 pr-3 text-sm text-slate-500 placeholder-slate-500 focus:border-blue-700 focus:focus:placeholder-slate-400 focus:outline-none focus:ring-1 focus:ring-blue-700 dark:border-slate-50/[0.2] dark:bg-transparent dark:text-slate-400" placeholder="Search File(s)" type="search" />
34
+ <input data-action="input->search#searchEvent" class="block w-full rounded-md border border-slate-900/10 bg-white/95 py-2 pl-10 pr-3 text-sm text-slate-500 placeholder-slate-500 focus:border-blue-700 focus:focus:placeholder-slate-400 focus:outline-none focus:ring-1 focus:ring-blue-700 dark:border-slate-50/[0.2] dark:bg-transparent dark:text-slate-400" placeholder="Search File(s)" type="search" autocomplete="on">
35
35
  </div>
36
36
  </div>
37
37
  </div>
38
38
  </div>
39
- <div class="relative ml-auto flex w-96 justify-end ml-6">
39
+ <div class="relative flex w-96 justify-end ml-6">
40
40
  <div class="relative z-0 inline-flex shadow-sm rounded-md">
41
41
  <button data-action="click->search#orderEvent" data-search-target="asc" value="-1" type="button" class="relative inline-flex items-center px-2 py-2 rounded-l-md text-sm font-medium border border-slate-900/10 dark:border-slate-50/[0.2] focus:outline-none focus:ring-blue-700 focus:border-blue-700 dark:bg-slate-900 text-slate-500 dark:text-slate-400">
42
42
  <span class="sr-only">ascending</span>
@@ -52,7 +52,7 @@
52
52
  </button>
53
53
  </div>
54
54
  <div class="ml-3 pl-3 border-l border-slate-900/10 dark:border-slate-50/[0.2]">
55
- <select data-search-target="sort" data-action="input->search#sortEvent" class="block w-full pr-10 py-2 text-base border-slate-900/10 dark:border-slate-50/[0.2] focus:outline-none focus:ring-blue-700 focus:border-blue-700 rounded-md text-slate-500 dark:bg-slate-900 dark:text-slate-400" >
55
+ <select data-search-target="sort" data-action="input->search#sortEvent" class="block w-full pr-10 py-2 text-base border-slate-900/10 dark:border-slate-50/[0.2] focus:outline-none focus:ring-blue-700 focus:border-blue-700 rounded-md text-slate-500 dark:bg-slate-900 dark:text-slate-400">
56
56
  <option value="coveredpercent">% Covered</option>
57
57
  <option value="lines"># of Lines</option>
58
58
  <option value="releventlines">Relevent Lines</option>
@@ -109,7 +109,7 @@
109
109
  </svg>
110
110
  <span class="mt-2 text-center">
111
111
  <span><%= name %></span>
112
- <span class="<%= coverage_class(files.covered_percent) %>"><%= files.covered_percent.round(2)%>%</span>
112
+ <span class="<%= coverage_class(files.covered_percent) %>"><%= files.covered_percent.round(2) %>%</span>
113
113
  </span>
114
114
  </div>
115
115
  <% end %>
@@ -121,8 +121,7 @@
121
121
  <%= generate_group_page(name, files, result.created_at) %>
122
122
  <% end %>
123
123
  <div class="fixed inset-0 overflow-hidden z-50 hidden" aria-labelledby="slide-over-title" role="dialog" aria-modal="true"
124
- data-slideover-target="container" data-action="click->slideover#closeBackground keyup@window->slideover#closeWithKeyboard"
125
- >
124
+ data-slideover-target="container" data-action="click->slideover#closeBackground keyup@window->slideover#closeWithKeyboard">
126
125
  <div class="absolute inset-0 overflow-hidden">
127
126
  <div data-slideover-target="background" class="absolute inset-0 bg-gray-500 bg-opacity-75 transition-opacity" aria-hidden="true"></div>
128
127
  <div class="pointer-events-none fixed inset-y-0 right-0 flex max-w-full pl-10">
@@ -144,4 +143,4 @@
144
143
  </div>
145
144
  <script src="<%= assets_path('application.js') %>" type="text/javascript"></script>
146
145
  </body>
147
- </html>
146
+ </html>
data/views/stat_card.erb CHANGED
@@ -9,4 +9,4 @@
9
9
  </p>
10
10
  </div>
11
11
  </div>
12
- </li>
12
+ </li>