solidstats 2.0.0 → 3.0.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 (135) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +12 -63
  3. data/README.md +27 -0
  4. data/Rakefile +3 -3
  5. data/app/assets/javascripts/solidstats/dashboard.js +0 -46
  6. data/app/assets/stylesheets/solidstats/dashboard.css +48 -0
  7. data/app/controllers/solidstats/dashboard_controller.rb +73 -61
  8. data/app/controllers/solidstats/logs_controller.rb +72 -0
  9. data/app/controllers/solidstats/performance_controller.rb +25 -0
  10. data/app/controllers/solidstats/productivity_controller.rb +39 -0
  11. data/app/controllers/solidstats/quality_controller.rb +152 -0
  12. data/app/controllers/solidstats/securities_controller.rb +30 -0
  13. data/app/helpers/solidstats/application_helper.rb +124 -11
  14. data/app/helpers/solidstats/performance_helper.rb +87 -0
  15. data/app/helpers/solidstats/productivity_helper.rb +38 -0
  16. data/app/services/solidstats/bundler_audit_service.rb +206 -0
  17. data/app/services/solidstats/coverage_compass_service.rb +335 -0
  18. data/app/services/solidstats/load_lens_service.rb +474 -0
  19. data/app/services/solidstats/log_size_monitor_service.rb +197 -66
  20. data/app/services/solidstats/my_todo_service.rb +242 -0
  21. data/app/services/solidstats/style_patrol_service.rb +319 -0
  22. data/app/views/layouts/solidstats/application.html.erb +8 -2
  23. data/app/views/layouts/solidstats/dashboard.html.erb +84 -0
  24. data/app/views/solidstats/dashboard/dashboard.html.erb +39 -0
  25. data/app/views/solidstats/logs/logs_size.html.erb +409 -0
  26. data/app/views/solidstats/performance/load_lens.html.erb +158 -0
  27. data/app/views/solidstats/productivity/_todo_list.html.erb +49 -0
  28. data/app/views/solidstats/productivity/my_todos.html.erb +84 -0
  29. data/app/views/solidstats/quality/coverage_compass.html.erb +420 -0
  30. data/app/views/solidstats/quality/style_patrol.html.erb +463 -0
  31. data/app/views/solidstats/securities/bundler_audit.html.erb +345 -0
  32. data/app/views/solidstats/shared/_dashboard_card.html.erb +160 -0
  33. data/app/views/solidstats/shared/_quick_actions.html.erb +26 -0
  34. data/config/routes.rb +31 -6
  35. data/lib/generators/solidstats/clean/clean_generator.rb +24 -0
  36. data/lib/generators/solidstats/clean/templates/README +8 -0
  37. data/lib/generators/solidstats/install/install_generator.rb +51 -10
  38. data/lib/generators/solidstats/install/templates/README +7 -0
  39. data/lib/solidstats/engine.rb +6 -71
  40. data/lib/solidstats/version.rb +1 -1
  41. data/lib/solidstats.rb +19 -303
  42. data/lib/tasks/solidstats.rake +67 -0
  43. data/lib/tasks/solidstats_performance.rake +61 -0
  44. data/lib/tasks/solidstats_tasks.rake +16 -4
  45. metadata +33 -95
  46. data/app/assets/javascripts/solidstats/gem_metadata.js +0 -554
  47. data/app/assets/stylesheets/solidstats/components/action_button.css +0 -99
  48. data/app/assets/stylesheets/solidstats/components/dashboard.css +0 -151
  49. data/app/assets/stylesheets/solidstats/components/dashboard_header.css +0 -93
  50. data/app/assets/stylesheets/solidstats/components/dashboard_layout.css +0 -97
  51. data/app/assets/stylesheets/solidstats/components/gem_metadata.css +0 -1403
  52. data/app/assets/stylesheets/solidstats/components/navigation.css +0 -80
  53. data/app/assets/stylesheets/solidstats/components/quick_navigation.css +0 -54
  54. data/app/assets/stylesheets/solidstats/components/security.css +0 -332
  55. data/app/assets/stylesheets/solidstats/components/status_badge.css +0 -58
  56. data/app/assets/stylesheets/solidstats/components/summary_card.css +0 -66
  57. data/app/assets/stylesheets/solidstats/components/tab_navigation.css +0 -95
  58. data/app/components/solidstats/base_component.rb +0 -88
  59. data/app/components/solidstats/code_quality/code_quality_section_component.html.erb +0 -0
  60. data/app/components/solidstats/code_quality/code_quality_section_component.rb +0 -0
  61. data/app/components/solidstats/code_quality/section_component.html.erb +0 -45
  62. data/app/components/solidstats/code_quality/section_component.rb +0 -34
  63. data/app/components/solidstats/dashboard_header_component.html.erb +0 -39
  64. data/app/components/solidstats/dashboard_header_component.rb +0 -33
  65. data/app/components/solidstats/previews/action_button_component_preview/button_vs_link.html.erb +0 -6
  66. data/app/components/solidstats/previews/action_button_component_preview/sizes.html.erb +0 -6
  67. data/app/components/solidstats/previews/action_button_component_preview/variants.html.erb +0 -6
  68. data/app/components/solidstats/previews/action_button_component_preview/with_icons.html.erb +0 -6
  69. data/app/components/solidstats/previews/action_button_component_preview.rb +0 -64
  70. data/app/components/solidstats/previews/navigation_component_preview.rb +0 -74
  71. data/app/components/solidstats/previews/stats_overview_component_preview.rb +0 -100
  72. data/app/components/solidstats/previews/status_badge_component_preview/sizes.html.erb +0 -6
  73. data/app/components/solidstats/previews/status_badge_component_preview/statuses.html.erb +0 -6
  74. data/app/components/solidstats/previews/status_badge_component_preview/with_icons.html.erb +0 -6
  75. data/app/components/solidstats/previews/status_badge_component_preview.rb +0 -49
  76. data/app/components/solidstats/previews/summary_card_component_preview/clickable.html.erb +0 -9
  77. data/app/components/solidstats/previews/summary_card_component_preview/dashboard_layout.html.erb +0 -9
  78. data/app/components/solidstats/previews/summary_card_component_preview/statuses.html.erb +0 -6
  79. data/app/components/solidstats/previews/summary_card_component_preview/value_formats.html.erb +0 -6
  80. data/app/components/solidstats/previews/summary_card_component_preview.rb +0 -67
  81. data/app/components/solidstats/quick_navigation_component.html.erb +0 -8
  82. data/app/components/solidstats/quick_navigation_component.rb +0 -21
  83. data/app/components/solidstats/security/gem_impact_analysis_component.html.erb +0 -44
  84. data/app/components/solidstats/security/gem_impact_analysis_component.rb +0 -45
  85. data/app/components/solidstats/security/overview_component.html.erb +0 -21
  86. data/app/components/solidstats/security/overview_component.rb +0 -104
  87. data/app/components/solidstats/security/section_component.html.erb +0 -26
  88. data/app/components/solidstats/security/section_component.rb +0 -52
  89. data/app/components/solidstats/security/timeline_component.html.erb +0 -39
  90. data/app/components/solidstats/security/timeline_component.rb +0 -43
  91. data/app/components/solidstats/tasks_section_component.html.erb +0 -17
  92. data/app/components/solidstats/tasks_section_component.rb +0 -22
  93. data/app/components/solidstats/ui/action_button_component.html.erb +0 -6
  94. data/app/components/solidstats/ui/action_button_component.rb +0 -71
  95. data/app/components/solidstats/ui/dashboard_layout_component.html.erb +0 -19
  96. data/app/components/solidstats/ui/dashboard_layout_component.rb +0 -85
  97. data/app/components/solidstats/ui/navigation_component.html.erb +0 -34
  98. data/app/components/solidstats/ui/navigation_component.rb +0 -72
  99. data/app/components/solidstats/ui/stats_overview_component.html.erb +0 -14
  100. data/app/components/solidstats/ui/stats_overview_component.rb +0 -78
  101. data/app/components/solidstats/ui/status_badge_component.html.erb +0 -6
  102. data/app/components/solidstats/ui/status_badge_component.rb +0 -42
  103. data/app/components/solidstats/ui/summary_card_component.html.erb +0 -12
  104. data/app/components/solidstats/ui/summary_card_component.rb +0 -63
  105. data/app/components/solidstats/ui/tab_navigation_component.html.erb +0 -22
  106. data/app/components/solidstats/ui/tab_navigation_component.rb +0 -79
  107. data/app/services/solidstats/audit_service.rb +0 -56
  108. data/app/services/solidstats/data_collector_service.rb +0 -83
  109. data/app/services/solidstats/gem_metadata/fetcher_service.rb +0 -136
  110. data/app/services/solidstats/todo_service.rb +0 -114
  111. data/app/views/solidstats/dashboard/_log_monitor.html.erb +0 -759
  112. data/app/views/solidstats/dashboard/_todos.html.erb +0 -151
  113. data/app/views/solidstats/dashboard/audit/_additional_styles.css +0 -22
  114. data/app/views/solidstats/dashboard/audit/_audit_badge.html.erb +0 -5
  115. data/app/views/solidstats/dashboard/audit/_audit_details.html.erb +0 -495
  116. data/app/views/solidstats/dashboard/audit/_audit_summary.html.erb +0 -26
  117. data/app/views/solidstats/dashboard/audit/_no_vulnerabilities.html.erb +0 -3
  118. data/app/views/solidstats/dashboard/audit/_security_audit.html.erb +0 -14
  119. data/app/views/solidstats/dashboard/audit/_vulnerabilities_table.html.erb +0 -1120
  120. data/app/views/solidstats/dashboard/audit/_vulnerability_details.html.erb +0 -63
  121. data/app/views/solidstats/dashboard/index.html.erb +0 -81
  122. data/app/views/solidstats/gem_metadata/_panel.html.erb +0 -419
  123. data/lib/generators/solidstats/feature/feature_generator.rb +0 -170
  124. data/lib/generators/solidstats/feature/templates/component.html.erb +0 -84
  125. data/lib/generators/solidstats/feature/templates/component.rb.erb +0 -103
  126. data/lib/generators/solidstats/feature/templates/component.scss +0 -243
  127. data/lib/generators/solidstats/feature/templates/component_test.rb.erb +0 -183
  128. data/lib/generators/solidstats/feature/templates/controller.rb.erb +0 -44
  129. data/lib/generators/solidstats/feature/templates/controller_test.rb.erb +0 -111
  130. data/lib/generators/solidstats/feature/templates/detail_view.html.erb +0 -755
  131. data/lib/generators/solidstats/feature/templates/preview.rb.erb +0 -107
  132. data/lib/generators/solidstats/feature/templates/service.rb.erb +0 -132
  133. data/lib/generators/solidstats/feature/templates/service_test.rb.erb +0 -109
  134. data/lib/generators/solidstats/install_generator.rb +0 -109
  135. data/lib/tasks/solidstats_install.rake +0 -133
@@ -1,151 +0,0 @@
1
- /* Main Dashboard Styles */
2
- .solidstats-dashboard {
3
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
4
- color: #333;
5
- max-width: 1200px;
6
- margin: 0 auto;
7
- padding: 20px;
8
- }
9
-
10
- /* Section Styles */
11
- .dashboard-section {
12
- display: none;
13
- margin-bottom: 3rem;
14
- opacity: 0;
15
- transform: translateY(10px);
16
- transition: opacity 0.3s ease, transform 0.3s ease;
17
- }
18
-
19
- .dashboard-section.active {
20
- display: block;
21
- opacity: 1;
22
- transform: translateY(0);
23
- }
24
-
25
- .section-title {
26
- font-size: 1.5rem;
27
- font-weight: 600;
28
- margin-bottom: 1.5rem;
29
- color: #2c3e50;
30
- border-bottom: 2px solid #ecf0f1;
31
- padding-bottom: 0.5rem;
32
- }
33
-
34
- /* Tab Styles */
35
- .tabs-container {
36
- margin-top: 2rem;
37
- }
38
-
39
- .tabs-header {
40
- display: flex;
41
- border-bottom: 2px solid #ecf0f1;
42
- margin-bottom: 1.5rem;
43
- gap: 0.5rem;
44
- }
45
-
46
- .tab-button {
47
- padding: 0.75rem 1.5rem;
48
- background: none;
49
- border: none;
50
- cursor: pointer;
51
- border-radius: 6px 6px 0 0;
52
- transition: all 0.2s ease;
53
- font-weight: 500;
54
- color: #666;
55
- display: flex;
56
- align-items: center;
57
- gap: 0.5rem;
58
- }
59
-
60
- .tab-button:hover {
61
- background-color: #f8f9fa;
62
- color: #333;
63
- }
64
-
65
- .tab-button.active {
66
- background-color: #007bff;
67
- color: white;
68
- border-bottom: 2px solid #007bff;
69
- margin-bottom: -2px;
70
- }
71
-
72
- .tab-content {
73
- display: none;
74
- }
75
-
76
- .tab-content.active {
77
- display: block;
78
- }
79
-
80
- .tab-icon {
81
- font-size: 1rem;
82
- }
83
-
84
- /* Card Styles */
85
- .stat-card {
86
- background: #fff;
87
- border-radius: 8px;
88
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
89
- padding: 1.5rem;
90
- margin-bottom: 1rem;
91
- border-left: 4px solid #007bff;
92
- transition: transform 0.2s ease;
93
- }
94
-
95
- .stat-card:hover {
96
- transform: translateY(-2px);
97
- }
98
-
99
- .stat-card.status-ok {
100
- border-left-color: #28a745;
101
- }
102
-
103
- .stat-card.status-warning {
104
- border-left-color: #ffc107;
105
- }
106
-
107
- .stat-card.status-danger {
108
- border-left-color: #dc3545;
109
- }
110
-
111
- .card-content {
112
- margin-top: 1rem;
113
- }
114
-
115
- /* Progress Bar */
116
- .progress-container {
117
- background-color: #e9ecef;
118
- border-radius: 4px;
119
- overflow: hidden;
120
- height: 20px;
121
- margin-bottom: 1rem;
122
- }
123
-
124
- .progress-bar {
125
- height: 100%;
126
- background-color: #28a745;
127
- transition: width 0.3s ease;
128
- }
129
-
130
- /* Empty State */
131
- .empty-state {
132
- text-align: center;
133
- padding: 3rem;
134
- color: #6c757d;
135
- }
136
-
137
- .empty-icon {
138
- font-size: 3rem;
139
- margin-bottom: 1rem;
140
- }
141
-
142
- .empty-message {
143
- font-size: 1.2rem;
144
- font-weight: 600;
145
- margin-bottom: 0.5rem;
146
- }
147
-
148
- .empty-description {
149
- font-size: 0.9rem;
150
- opacity: 0.8;
151
- }
@@ -1,93 +0,0 @@
1
- /* Dashboard Header Styles */
2
- .dashboard-header {
3
- margin-bottom: 2rem;
4
- position: sticky;
5
- top: 0;
6
- z-index: 100;
7
- background-color: #fff;
8
- padding: 15px 0;
9
- border-bottom: 1px solid #eaeaea;
10
- }
11
-
12
- .header-main {
13
- display: flex;
14
- justify-content: space-between;
15
- align-items: baseline;
16
- margin-bottom: 1rem;
17
- }
18
-
19
- .dashboard-header h1 {
20
- font-size: 1.8rem;
21
- font-weight: 600;
22
- margin: 0;
23
- }
24
-
25
- .audit-date {
26
- color: #666;
27
- margin: 0;
28
- font-size: 0.9rem;
29
- }
30
-
31
- .dashboard-nav {
32
- display: flex;
33
- justify-content: space-between;
34
- align-items: center;
35
- }
36
-
37
- .dashboard-nav ul {
38
- display: flex;
39
- list-style-type: none;
40
- margin: 0;
41
- padding: 0;
42
- gap: 1rem;
43
- }
44
-
45
- .nav-item {
46
- padding: 0.5rem 1rem;
47
- text-decoration: none;
48
- color: #666;
49
- border-radius: 6px;
50
- transition: all 0.2s;
51
- border: 1px solid transparent;
52
- }
53
-
54
- .nav-item:hover {
55
- background-color: #f8f9fa;
56
- color: #333;
57
- }
58
-
59
- .nav-item.active {
60
- background-color: #007bff;
61
- color: white;
62
- border-color: #007bff;
63
- }
64
-
65
- .dashboard-actions {
66
- display: flex;
67
- gap: 0.5rem;
68
- }
69
-
70
- .header-content {
71
- display: flex;
72
- justify-content: space-between;
73
- align-items: center;
74
- margin-bottom: 1rem;
75
- }
76
-
77
- .header-title h1 {
78
- margin: 0 0 0.5rem 0;
79
- font-size: 1.875rem;
80
- font-weight: 700;
81
- color: #111827;
82
- }
83
-
84
- .last-updated {
85
- color: #6b7280;
86
- font-size: 0.875rem;
87
- font-weight: 500;
88
- }
89
-
90
- .header-actions {
91
- display: flex;
92
- gap: 0.5rem;
93
- }
@@ -1,97 +0,0 @@
1
- /* DashboardLayoutComponent Styles */
2
- .solidstats-dashboard {
3
- min-height: 100vh;
4
- background-color: #f9fafb;
5
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
6
- }
7
-
8
- .dashboard-header {
9
- background-color: #ffffff;
10
- border-bottom: 1px solid #e5e7eb;
11
- padding: 1rem 2rem;
12
- position: sticky;
13
- top: 0;
14
- z-index: 10;
15
- }
16
-
17
- .header-main {
18
- margin-bottom: 1rem;
19
- }
20
-
21
- .header-main h1 {
22
- margin: 0 0 0.5rem 0;
23
- font-size: 1.875rem;
24
- font-weight: 700;
25
- color: #111827;
26
- display: flex;
27
- align-items: center;
28
- gap: 0.5rem;
29
- }
30
-
31
- .audit-date {
32
- display: inline-block;
33
- color: #6b7280;
34
- font-size: 0.875rem;
35
- font-weight: 500;
36
- }
37
-
38
- /* Stats Summary Grid */
39
- .stats-summary {
40
- display: grid;
41
- grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
42
- gap: 1.5rem;
43
- margin-bottom: 2rem;
44
- padding: 0 2rem;
45
- }
46
-
47
- /* Dashboard Sections */
48
- .dashboard-section {
49
- padding: 2rem;
50
- margin-bottom: 2rem;
51
- }
52
-
53
- .dashboard-section:not(.active) {
54
- display: none;
55
- }
56
-
57
- .tab-content {
58
- display: none;
59
- }
60
-
61
- .tab-content.active {
62
- display: block;
63
- }
64
-
65
- .section-title {
66
- margin: 0 0 1.5rem 0;
67
- font-size: 1.5rem;
68
- font-weight: 600;
69
- color: #111827;
70
- }
71
-
72
- /* Responsive Design */
73
- @media (max-width: 768px) {
74
- .dashboard-header {
75
- padding: 1rem;
76
- }
77
-
78
- .dashboard-nav {
79
- flex-direction: column;
80
- gap: 1rem;
81
- align-items: stretch;
82
- }
83
-
84
- .dashboard-nav ul {
85
- justify-content: center;
86
- flex-wrap: wrap;
87
- }
88
-
89
- .stats-summary {
90
- grid-template-columns: 1fr;
91
- padding: 0 1rem;
92
- }
93
-
94
- .dashboard-section {
95
- padding: 1rem;
96
- }
97
- }