simplecov-material 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +7 -0
  2. data/.circleci/config.yml +286 -0
  3. data/.circleci/setup-rubygems.sh +3 -0
  4. data/.codeclimate.json +86 -0
  5. data/.eslintignore +1 -0
  6. data/.eslintrc.yml +25 -0
  7. data/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
  8. data/.github/ISSUE_TEMPLATE/feature-request.md +20 -0
  9. data/.github/ISSUE_TEMPLATE/question.md +10 -0
  10. data/.github/PULL_REQUEST_TEMPLATE.md +32 -0
  11. data/.gitignore +12 -0
  12. data/.rubocop.yml +884 -0
  13. data/.stylelintignore +1 -0
  14. data/.stylelintrc +48 -0
  15. data/CHANGELOG.md +13 -0
  16. data/CODE_OF_CONDUCT.md +74 -0
  17. data/CONTRIBUTING.md +132 -0
  18. data/Gemfile +19 -0
  19. data/LICENSE +21 -0
  20. data/README.md +84 -0
  21. data/Rakefile +12 -0
  22. data/bin/console +12 -0
  23. data/bin/publish +82 -0
  24. data/bin/setup +6 -0
  25. data/dist/app.js +8 -0
  26. data/dist/app.scss +11 -0
  27. data/dist/scripts/dialog.js +8 -0
  28. data/dist/scripts/forms.js +13 -0
  29. data/dist/scripts/list.js +8 -0
  30. data/dist/scripts/navigation.js +14 -0
  31. data/dist/scripts/ripple.js +18 -0
  32. data/dist/scripts/table.js +18 -0
  33. data/dist/scripts/timeago.js +3 -0
  34. data/dist/scripts/topbar.js +5 -0
  35. data/dist/styles/dialog.scss +191 -0
  36. data/dist/styles/main.scss +141 -0
  37. data/dist/styles/table.scss +136 -0
  38. data/lib/simplecov-material.rb +123 -0
  39. data/lib/simplecov-material/version.rb +9 -0
  40. data/package.json +66 -0
  41. data/public/application.css +11083 -0
  42. data/public/application.js +936 -0
  43. data/public/fonts/0509ab09c1b0d2200a4135803c91d6ce.woff2 +0 -0
  44. data/public/fonts/29b882f018fa6fe75fd338aaae6235b8.woff +0 -0
  45. data/public/fonts/96c476804d7a788cc1c05351b287ee41.eot +0 -0
  46. data/public/fonts/da4ea5cdfca6b3baab285741f5ccb59f.ttf +0 -0
  47. data/simplecov-material.gemspec +32 -0
  48. data/test/fixtures/app/controllers/sample_controller.rb +12 -0
  49. data/test/fixtures/app/models/user.rb +12 -0
  50. data/test/fixtures/sample.rb +12 -0
  51. data/test/simplecov-material/simplecov_material_test.rb +40 -0
  52. data/test/test_helper.rb +17 -0
  53. data/views/dialog.erb +51 -0
  54. data/views/group_page.erb +110 -0
  55. data/views/main.erb +90 -0
  56. data/webpack.config.js +81 -0
  57. data/yarn.lock +6973 -0
  58. metadata +127 -0
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
@@ -0,0 +1,8 @@
1
+ import './scripts/table.js';
2
+ import './scripts/navigation.js';
3
+ import './scripts/topbar.js';
4
+ import './scripts/list.js';
5
+ import './scripts/ripple.js';
6
+ import './scripts/timeago.js';
7
+ import './scripts/forms.js';
8
+ import './scripts/dialog.js';
@@ -0,0 +1,11 @@
1
+ $material-design-icons-font-directory-path: "~material-design-icons-iconfont/dist/fonts/";
2
+ $mdc-theme-primary: #1A237E;
3
+ $mdc-theme-secondary: #4FC3F7;
4
+ $mdc-theme-on-primary: #FFF;
5
+ $mdc-theme-on-secondary: #000;
6
+
7
+ @import "~material-design-icons-iconfont/src/material-design-icons";
8
+ @import "material-components-web/material-components-web";
9
+ @import "./styles/main";
10
+ @import "./styles/table";
11
+ @import "./styles/dialog";
@@ -0,0 +1,8 @@
1
+ import {MDCDialog} from '@material/dialog';
2
+
3
+ export function openModal(fileName) {
4
+ const dialog = new MDCDialog(document.getElementById(fileName + '-dialog'));
5
+ dialog.open();
6
+ }
7
+
8
+ window.openModal = openModal;
@@ -0,0 +1,13 @@
1
+ import {MDCTextField} from '@material/textfield';
2
+ import {MDCTextFieldHelperText} from '@material/textfield/helper-text';
3
+
4
+ const textFields = document.querySelectorAll('.mdc-text-field');
5
+ const helperTexts = document.querySelectorAll('.mdc-text-field-helper-text');
6
+
7
+ for (var a = 0; a < textFields.length; a++) {
8
+ new MDCTextField(textFields[a]);
9
+ }
10
+
11
+ for (var b = 0; b < helperTexts.length; b++) {
12
+ new MDCTextFieldHelperText(helperTexts[b]);
13
+ }
@@ -0,0 +1,8 @@
1
+ import {MDCList} from '@material/list';
2
+
3
+ const lists = document.querySelectorAll('.mdc-list');
4
+
5
+ for (var i = 0; i < lists.length; i++) {
6
+ const list = MDCList.attachTo(lists[i]);
7
+ list.wrapFocus = true;
8
+ }
@@ -0,0 +1,14 @@
1
+ export function navigate(elementId) {
2
+ const tabGroups = document.querySelectorAll('.tab-groups');
3
+
4
+ for (var i = 0; i < tabGroups.length; i++) {
5
+ var txtValue = tabGroups[i].attributes.name.value;
6
+ if (txtValue.indexOf(elementId) > -1) {
7
+ tabGroups[i].style.display = '';
8
+ } else {
9
+ tabGroups[i].style.display = 'none';
10
+ }
11
+ }
12
+ }
13
+
14
+ window.navigate = navigate;
@@ -0,0 +1,18 @@
1
+
2
+ import {MDCRipple} from '@material/ripple';
3
+
4
+ const buttons = document.querySelectorAll('.mdc-button');
5
+ const listItems = document.querySelectorAll('.mdc-list-item');
6
+ const iconButtons = document.querySelectorAll('.mdc-icon-button');
7
+
8
+ for (var b = 0; b < buttons.length; b++) {
9
+ new MDCRipple.attachTo(buttons[b]);
10
+ }
11
+
12
+ for (var l = 0; l < listItems.length; l++) {
13
+ new MDCRipple.attachTo(listItems[l]);
14
+ }
15
+
16
+ for (var i = 0; i < iconButtons.length; i++) {
17
+ new MDCRipple.attachTo(iconButtons[i]);
18
+ }
@@ -0,0 +1,18 @@
1
+ export function searchTable(elementId) {
2
+ const input = document.getElementById(elementId);
3
+ const filter = input.value.toUpperCase();
4
+ const table = document.getElementById(elementId + '-table');
5
+ const rows = table.getElementsByTagName('tbody')[0].getElementsByTagName('tr');
6
+
7
+ for (var i = 0; i < rows.length; i++) {
8
+ var row = rows[i].getElementsByTagName('td')[0];
9
+ var txtValue = row.textContent || row.innerText;
10
+ if (txtValue.toUpperCase().indexOf(filter) > -1) {
11
+ rows[i].style.display = '';
12
+ } else {
13
+ rows[i].style.display = 'none';
14
+ }
15
+ }
16
+ }
17
+
18
+ window.searchTable = searchTable;
@@ -0,0 +1,3 @@
1
+ import {render} from 'timeago.js';
2
+
3
+ render(document.querySelectorAll('.timeago'));
@@ -0,0 +1,5 @@
1
+ import {MDCTopAppBar} from '@material/top-app-bar';
2
+
3
+ const topAppBar = MDCTopAppBar.attachTo(document.getElementById('app-bar'));
4
+
5
+ topAppBar.setScrollTarget(document.querySelector('.main-content'));
@@ -0,0 +1,191 @@
1
+ .mdc-dialog--scrollable {
2
+
3
+ .mdc-dialog__content {
4
+ padding: 0;
5
+ }
6
+ }
7
+
8
+ .mdc-dialog {
9
+
10
+ .mdc-dialog__surface {
11
+ max: {
12
+ width: 100%;
13
+ }
14
+ min: {
15
+ width: 560px;
16
+ }
17
+
18
+ width: 1000px;
19
+
20
+ .mdc-dialog__content {
21
+ padding: 0;
22
+ }
23
+ }
24
+
25
+ .mdc-dialog__actions {
26
+ justify: {
27
+ content: space-between !important;
28
+ }
29
+
30
+ .text {
31
+ justify: {
32
+ content: flex-start !important;
33
+ }
34
+ }
35
+
36
+ .buttons {
37
+ justify: {
38
+ content: flex-end !important;
39
+ }
40
+ }
41
+ }
42
+
43
+ .header {
44
+ padding: 10px;
45
+ }
46
+
47
+ code {
48
+ color: #000;
49
+ }
50
+
51
+ pre {
52
+ background: {
53
+ color: #546E7A;
54
+ }
55
+
56
+ color: #000;
57
+ margin: 0;
58
+ padding: 0;
59
+ white: {
60
+ space: normal;
61
+ }
62
+
63
+ ol {
64
+ color: #FFF;
65
+ padding: 0;
66
+ font: {
67
+ size: 12px;
68
+ }
69
+ margin: {
70
+ bottom: 0;
71
+ left: 45px;
72
+ right: 0;
73
+ top: 0;
74
+ }
75
+ }
76
+
77
+ li {
78
+ border: {
79
+ left: 5px solid #FFF;
80
+ }
81
+
82
+ margin: 0;
83
+ padding: 2px 6px;
84
+
85
+ code {
86
+ white: {
87
+ space: pre;
88
+ space: pre-wrap;
89
+ }
90
+ }
91
+ }
92
+
93
+ .hits {
94
+ background: {
95
+ color: #212121;
96
+ }
97
+ border: {
98
+ radius: 6px;
99
+ }
100
+
101
+ color: #FFF;
102
+ float: right;
103
+ font: {
104
+ size: 10px;
105
+ weight: bold;
106
+ }
107
+ margin: {
108
+ left: 10px;
109
+ }
110
+ padding: {
111
+ left: 5px;
112
+ right: 5px;
113
+ }
114
+ text: {
115
+ align: center;
116
+ }
117
+ }
118
+ }
119
+
120
+ .covered {
121
+ border: {
122
+ color: #388E3C;
123
+ }
124
+
125
+ &:nth-child(odd) {
126
+ background: {
127
+ color: #81C784;
128
+ }
129
+ }
130
+
131
+ &:nth-child(even) {
132
+ background: {
133
+ color: #A5D6A7;
134
+ }
135
+ }
136
+ }
137
+
138
+ .missed {
139
+ border: {
140
+ color: #D32F2F;
141
+ }
142
+
143
+ &:nth-child(odd) {
144
+ background: {
145
+ color: #E57373;
146
+ }
147
+ }
148
+
149
+ &:nth-child(even) {
150
+ background: {
151
+ color: #EF9A9A;
152
+ }
153
+ }
154
+ }
155
+
156
+ .never {
157
+ border: {
158
+ color: #000;
159
+ }
160
+
161
+ &:nth-child(odd) {
162
+ background: {
163
+ color: #EFEFEF;
164
+ }
165
+ }
166
+
167
+ &:nth-child(even) {
168
+ background: {
169
+ color: #F4F4F4;
170
+ }
171
+ }
172
+ }
173
+
174
+ .skipped {
175
+ border: {
176
+ color: #FBC02D;
177
+ }
178
+
179
+ &:nth-child(odd) {
180
+ background: {
181
+ color: #FFF176;
182
+ }
183
+ }
184
+
185
+ &:nth-child(even) {
186
+ background: {
187
+ color: #FFF59D;
188
+ }
189
+ }
190
+ }
191
+ }
@@ -0,0 +1,141 @@
1
+ body {
2
+ display: flex;
3
+ height: 100vh;
4
+ margin: 0;
5
+ }
6
+
7
+ section.footer {
8
+ background: {
9
+ color: #202124;
10
+ }
11
+
12
+ bottom: 0;
13
+ color: #FAFAFA;
14
+ height: 50px;
15
+ position: absolute;
16
+ width: 100%;
17
+ margin: {
18
+ left: -18px;
19
+ right: -18px;
20
+ }
21
+
22
+ div {
23
+ padding: {
24
+ right: 15px;
25
+ top: 15px;
26
+ }
27
+ text: {
28
+ align: right;
29
+ }
30
+
31
+ a {
32
+ color: #FAFAFA !important;
33
+ }
34
+ }
35
+ }
36
+
37
+ .bottom-spacer {
38
+ padding: {
39
+ bottom: 75px;
40
+ }
41
+ }
42
+
43
+ .mdc-drawer-app-content {
44
+ flex: auto;
45
+ overflow: auto;
46
+ position: relative;
47
+ }
48
+
49
+ .main-content {
50
+ height: 100%;
51
+ overflow: auto;
52
+ padding: 0 18px;
53
+ }
54
+
55
+ .app-bar {
56
+ position: absolute;
57
+
58
+ .mdc-top-app-bar__navigation-icon {
59
+ text: {
60
+ decoration: none;
61
+ }
62
+ }
63
+ }
64
+
65
+ .mdc-top-app-bar {
66
+ z: {
67
+ index: 7;
68
+ }
69
+ }
70
+
71
+ .red {
72
+ color: #D32F2F;
73
+ }
74
+
75
+ .yellow {
76
+ color: #FBC02D;
77
+ }
78
+
79
+ .green {
80
+ color: #388E3C;
81
+ }
82
+
83
+ .file_list_container {
84
+
85
+ .mdc-card {
86
+ margin: {
87
+ top: 25px;
88
+ }
89
+ }
90
+ }
91
+
92
+ .center {
93
+ text: {
94
+ align: center !important;
95
+ }
96
+ }
97
+
98
+ .clickable {
99
+ cursor: pointer;
100
+ }
101
+
102
+ .card-tile {
103
+ background: {
104
+ color: #202124;
105
+ }
106
+ border: {
107
+ radius: 10px;
108
+ }
109
+
110
+ color: #FFF;
111
+ padding: 25px 5px;
112
+ text: {
113
+ align: center;
114
+ }
115
+
116
+ .card-title {
117
+ font: {
118
+ size: 1.1rem;
119
+ weight: 500;
120
+ }
121
+ margin: {
122
+ bottom: 0;
123
+ top: 0;
124
+ }
125
+ }
126
+
127
+ .card-data {
128
+ margin: {
129
+ bottom: 5px;
130
+ top: 20px;
131
+ }
132
+ }
133
+ }
134
+
135
+ .parenthese::before {
136
+ content: "(";
137
+ }
138
+
139
+ .parenthese::after {
140
+ content: ")";
141
+ }