ruby_jard 0.2.3 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (91) hide show
  1. checksums.yaml +4 -4
  2. data/.github/FUNDING.yml +3 -0
  3. data/.github/workflows/documentation.yml +65 -0
  4. data/.github/workflows/{ruby.yml → rspec.yml} +22 -11
  5. data/.rubocop.yml +6 -0
  6. data/CHANGELOG.md +15 -3
  7. data/Gemfile +9 -2
  8. data/README.md +52 -332
  9. data/benchmark/path_filter_bench.rb +58 -0
  10. data/lib/ruby_jard.rb +15 -5
  11. data/lib/ruby_jard/color_schemes.rb +9 -1
  12. data/lib/ruby_jard/color_schemes/256_color_scheme.rb +21 -35
  13. data/lib/ruby_jard/color_schemes/256_light_color_scheme.rb +23 -35
  14. data/lib/ruby_jard/color_schemes/deep_space_color_scheme.rb +20 -34
  15. data/lib/ruby_jard/color_schemes/gruvbox_color_scheme.rb +20 -34
  16. data/lib/ruby_jard/color_schemes/one_half_dark_color_scheme.rb +20 -34
  17. data/lib/ruby_jard/color_schemes/one_half_light_color_scheme.rb +21 -34
  18. data/lib/ruby_jard/commands/color_helpers.rb +32 -0
  19. data/lib/ruby_jard/commands/frame_command.rb +2 -2
  20. data/lib/ruby_jard/commands/jard/color_scheme_command.rb +25 -3
  21. data/lib/ruby_jard/commands/jard/filter_command.rb +136 -0
  22. data/lib/ruby_jard/commands/jard/output_command.rb +13 -5
  23. data/lib/ruby_jard/commands/jard_command.rb +3 -1
  24. data/lib/ruby_jard/config.rb +9 -2
  25. data/lib/ruby_jard/decorators/array_decorator.rb +79 -0
  26. data/lib/ruby_jard/decorators/attributes_decorator.rb +172 -0
  27. data/lib/ruby_jard/decorators/color_decorator.rb +12 -5
  28. data/lib/ruby_jard/decorators/hash_decorator.rb +74 -0
  29. data/lib/ruby_jard/decorators/inspection_decorator.rb +91 -58
  30. data/lib/ruby_jard/decorators/object_decorator.rb +122 -0
  31. data/lib/ruby_jard/decorators/path_decorator.rb +55 -72
  32. data/lib/ruby_jard/decorators/rails_decorator.rb +194 -0
  33. data/lib/ruby_jard/decorators/string_decorator.rb +41 -0
  34. data/lib/ruby_jard/decorators/struct_decorator.rb +79 -0
  35. data/lib/ruby_jard/frame.rb +23 -10
  36. data/lib/ruby_jard/keys.rb +1 -0
  37. data/lib/ruby_jard/layouts/narrow_horizontal_layout.rb +4 -0
  38. data/lib/ruby_jard/layouts/tiny_layout.rb +4 -0
  39. data/lib/ruby_jard/pager.rb +21 -5
  40. data/lib/ruby_jard/path_classifier.rb +133 -0
  41. data/lib/ruby_jard/path_filter.rb +125 -0
  42. data/lib/ruby_jard/reflection.rb +97 -0
  43. data/lib/ruby_jard/repl_processor.rb +71 -38
  44. data/lib/ruby_jard/row_renderer.rb +5 -3
  45. data/lib/ruby_jard/screen.rb +2 -2
  46. data/lib/ruby_jard/screen_manager.rb +13 -36
  47. data/lib/ruby_jard/screen_renderer.rb +1 -1
  48. data/lib/ruby_jard/screens/backtrace_screen.rb +55 -39
  49. data/lib/ruby_jard/screens/menu_screen.rb +30 -30
  50. data/lib/ruby_jard/screens/source_screen.rb +46 -62
  51. data/lib/ruby_jard/screens/threads_screen.rb +59 -72
  52. data/lib/ruby_jard/screens/variables_screen.rb +168 -124
  53. data/lib/ruby_jard/session.rb +120 -16
  54. data/lib/ruby_jard/thread_info.rb +69 -0
  55. data/lib/ruby_jard/version.rb +1 -1
  56. data/ruby_jard.gemspec +3 -1
  57. metadata +20 -39
  58. data/.travis.yml +0 -6
  59. data/CNAME +0 -1
  60. data/_config.yml +0 -1
  61. data/docs/_config.yml +0 -8
  62. data/docs/color_schemes/256-light.png +0 -0
  63. data/docs/color_schemes/256.png +0 -0
  64. data/docs/color_schemes/deep-space.png +0 -0
  65. data/docs/color_schemes/gruvbox.png +0 -0
  66. data/docs/color_schemes/one-half-dark.png +0 -0
  67. data/docs/color_schemes/one-half-light.png +0 -0
  68. data/docs/demo.png +0 -0
  69. data/docs/guide-ui.png +0 -0
  70. data/docs/index.md +0 -238
  71. data/docs/logo.jpg +0 -0
  72. data/docs/screen-backtrace.png +0 -0
  73. data/docs/screen-repl.png +0 -0
  74. data/docs/screen-source.png +0 -0
  75. data/docs/screen-threads.png +0 -0
  76. data/docs/screen-variables.png +0 -0
  77. data/images/bg_hr.png +0 -0
  78. data/images/blacktocat.png +0 -0
  79. data/images/body-bg.jpg +0 -0
  80. data/images/download-button.png +0 -0
  81. data/images/github-button.png +0 -0
  82. data/images/header-bg.jpg +0 -0
  83. data/images/highlight-bg.jpg +0 -0
  84. data/images/icon_download.png +0 -0
  85. data/images/sidebar-bg.jpg +0 -0
  86. data/images/sprite_download.png +0 -0
  87. data/javascripts/main.js +0 -1
  88. data/stylesheets/github-light.css +0 -130
  89. data/stylesheets/normalize.css +0 -424
  90. data/stylesheets/print.css +0 -228
  91. data/stylesheets/stylesheet.css +0 -245
@@ -1,228 +0,0 @@
1
- html, body, div, span, applet, object, iframe,
2
- h1, h2, h3, h4, h5, h6, p, blockquote, pre,
3
- a, abbr, acronym, address, big, cite, code,
4
- del, dfn, em, img, ins, kbd, q, s, samp,
5
- small, strike, strong, sub, sup, tt, var,
6
- b, u, i, center,
7
- dl, dt, dd, ol, ul, li,
8
- fieldset, form, label, legend,
9
- table, caption, tbody, tfoot, thead, tr, th, td,
10
- article, aside, canvas, details, embed,
11
- figure, figcaption, footer, header, hgroup,
12
- menu, nav, output, ruby, section, summary,
13
- time, mark, audio, video {
14
- padding: 0;
15
- margin: 0;
16
- font: inherit;
17
- font-size: 100%;
18
- vertical-align: baseline;
19
- border: 0;
20
- }
21
- /* HTML5 display-role reset for older browsers */
22
- article, aside, details, figcaption, figure,
23
- footer, header, hgroup, menu, nav, section {
24
- display: block;
25
- }
26
- body {
27
- line-height: 1;
28
- }
29
- ol, ul {
30
- list-style: none;
31
- }
32
- blockquote, q {
33
- quotes: none;
34
- }
35
- blockquote:before, blockquote:after,
36
- q:before, q:after {
37
- content: '';
38
- content: none;
39
- }
40
- table {
41
- border-spacing: 0;
42
- border-collapse: collapse;
43
- }
44
- body {
45
- font-family: 'Helvetica Neue', Helvetica, Arial, serif;
46
- font-size: 13px;
47
- line-height: 1.5;
48
- color: #000;
49
- }
50
-
51
- a {
52
- font-weight: bold;
53
- color: #d5000d;
54
- }
55
-
56
- header {
57
- padding-top: 35px;
58
- padding-bottom: 10px;
59
- }
60
-
61
- header h1 {
62
- font-size: 48px;
63
- font-weight: bold;
64
- line-height: 1.2;
65
- color: #303030;
66
- letter-spacing: -1px;
67
- }
68
-
69
- header h2 {
70
- font-size: 24px;
71
- font-weight: normal;
72
- line-height: 1.3;
73
- color: #aaa;
74
- letter-spacing: -1px;
75
- }
76
- #downloads {
77
- display: none;
78
- }
79
- #main_content {
80
- padding-top: 20px;
81
- }
82
-
83
- code, pre {
84
- margin-bottom: 30px;
85
- font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal;
86
- font-size: 12px;
87
- color: #222;
88
- }
89
-
90
- code {
91
- padding: 0 3px;
92
- }
93
-
94
- pre {
95
- padding: 20px;
96
- overflow: auto;
97
- border: solid 1px #ddd;
98
- }
99
- pre code {
100
- padding: 0;
101
- }
102
-
103
- ul, ol, dl {
104
- margin-bottom: 20px;
105
- }
106
-
107
-
108
- /* COMMON STYLES */
109
-
110
- table {
111
- width: 100%;
112
- border: 1px solid #ebebeb;
113
- }
114
-
115
- th {
116
- font-weight: 500;
117
- }
118
-
119
- td {
120
- font-weight: 300;
121
- text-align: center;
122
- border: 1px solid #ebebeb;
123
- }
124
-
125
- form {
126
- padding: 20px;
127
- background: #f2f2f2;
128
-
129
- }
130
-
131
-
132
- /* GENERAL ELEMENT TYPE STYLES */
133
-
134
- h1 {
135
- font-size: 2.8em;
136
- }
137
-
138
- h2 {
139
- margin-bottom: 8px;
140
- font-size: 22px;
141
- font-weight: bold;
142
- color: #303030;
143
- }
144
-
145
- h3 {
146
- margin-bottom: 8px;
147
- font-size: 18px;
148
- font-weight: bold;
149
- color: #d5000d;
150
- }
151
-
152
- h4 {
153
- font-size: 16px;
154
- font-weight: bold;
155
- color: #303030;
156
- }
157
-
158
- h5 {
159
- font-size: 1em;
160
- color: #303030;
161
- }
162
-
163
- h6 {
164
- font-size: .8em;
165
- color: #303030;
166
- }
167
-
168
- p {
169
- margin-bottom: 20px;
170
- font-weight: 300;
171
- }
172
-
173
- a {
174
- text-decoration: none;
175
- }
176
-
177
- p a {
178
- font-weight: 400;
179
- }
180
-
181
- blockquote {
182
- padding: 0 0 0 30px;
183
- margin-bottom: 20px;
184
- font-size: 1.6em;
185
- border-left: 10px solid #e9e9e9;
186
- }
187
-
188
- ul li {
189
- padding-left: 20px;
190
- list-style-position: inside;
191
- list-style: disc;
192
- }
193
-
194
- ol li {
195
- padding-left: 3px;
196
- list-style-position: inside;
197
- list-style: decimal;
198
- }
199
-
200
- dl dd {
201
- font-style: italic;
202
- font-weight: 100;
203
- }
204
-
205
- footer {
206
- padding-top: 20px;
207
- padding-bottom: 30px;
208
- margin-top: 40px;
209
- font-size: 13px;
210
- color: #aaa;
211
- }
212
-
213
- footer a {
214
- color: #666;
215
- }
216
-
217
- /* MISC */
218
- .clearfix:after {
219
- display: block;
220
- height: 0;
221
- clear: both;
222
- visibility: hidden;
223
- content: '.';
224
- }
225
-
226
- .clearfix {display: inline-block;}
227
- * html .clearfix {height: 1%;}
228
- .clearfix {display: block;}
@@ -1,245 +0,0 @@
1
- * {
2
- box-sizing: border-box; }
3
-
4
- body {
5
- padding: 0;
6
- margin: 0;
7
- font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
8
- font-size: 16px;
9
- line-height: 1.5;
10
- color: #606c71; }
11
-
12
- a {
13
- color: #1e6bb8;
14
- text-decoration: none; }
15
- a:hover {
16
- text-decoration: underline; }
17
-
18
- .btn {
19
- display: inline-block;
20
- margin-bottom: 1rem;
21
- color: rgba(255, 255, 255, 0.7);
22
- background-color: rgba(255, 255, 255, 0.08);
23
- border-color: rgba(255, 255, 255, 0.2);
24
- border-style: solid;
25
- border-width: 1px;
26
- border-radius: 0.3rem;
27
- transition: color 0.2s, background-color 0.2s, border-color 0.2s; }
28
- .btn + .btn {
29
- margin-left: 1rem; }
30
-
31
- .btn:hover {
32
- color: rgba(255, 255, 255, 0.8);
33
- text-decoration: none;
34
- background-color: rgba(255, 255, 255, 0.2);
35
- border-color: rgba(255, 255, 255, 0.3); }
36
-
37
- @media screen and (min-width: 64em) {
38
- .btn {
39
- padding: 0.75rem 1rem; } }
40
-
41
- @media screen and (min-width: 42em) and (max-width: 64em) {
42
- .btn {
43
- padding: 0.6rem 0.9rem;
44
- font-size: 0.9rem; } }
45
-
46
- @media screen and (max-width: 42em) {
47
- .btn {
48
- display: block;
49
- width: 100%;
50
- padding: 0.75rem;
51
- font-size: 0.9rem; }
52
- .btn + .btn {
53
- margin-top: 1rem;
54
- margin-left: 0; } }
55
-
56
- .page-header {
57
- color: #fff;
58
- text-align: center;
59
- background-color: #159957;
60
- background-image: linear-gradient(120deg, #155799, #159957); }
61
-
62
- @media screen and (min-width: 64em) {
63
- .page-header {
64
- padding: 5rem 6rem; } }
65
-
66
- @media screen and (min-width: 42em) and (max-width: 64em) {
67
- .page-header {
68
- padding: 3rem 4rem; } }
69
-
70
- @media screen and (max-width: 42em) {
71
- .page-header {
72
- padding: 2rem 1rem; } }
73
-
74
- .project-name {
75
- margin-top: 0;
76
- margin-bottom: 0.1rem; }
77
-
78
- @media screen and (min-width: 64em) {
79
- .project-name {
80
- font-size: 3.25rem; } }
81
-
82
- @media screen and (min-width: 42em) and (max-width: 64em) {
83
- .project-name {
84
- font-size: 2.25rem; } }
85
-
86
- @media screen and (max-width: 42em) {
87
- .project-name {
88
- font-size: 1.75rem; } }
89
-
90
- .project-tagline {
91
- margin-bottom: 2rem;
92
- font-weight: normal;
93
- opacity: 0.7; }
94
-
95
- @media screen and (min-width: 64em) {
96
- .project-tagline {
97
- font-size: 1.25rem; } }
98
-
99
- @media screen and (min-width: 42em) and (max-width: 64em) {
100
- .project-tagline {
101
- font-size: 1.15rem; } }
102
-
103
- @media screen and (max-width: 42em) {
104
- .project-tagline {
105
- font-size: 1rem; } }
106
-
107
- .main-content :first-child {
108
- margin-top: 0; }
109
- .main-content img {
110
- max-width: 100%; }
111
- .main-content h1, .main-content h2, .main-content h3, .main-content h4, .main-content h5, .main-content h6 {
112
- margin-top: 2rem;
113
- margin-bottom: 1rem;
114
- font-weight: normal;
115
- color: #159957; }
116
- .main-content p {
117
- margin-bottom: 1em; }
118
- .main-content code {
119
- padding: 2px 4px;
120
- font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
121
- font-size: 0.9rem;
122
- color: #383e41;
123
- background-color: #f3f6fa;
124
- border-radius: 0.3rem; }
125
- .main-content pre {
126
- padding: 0.8rem;
127
- margin-top: 0;
128
- margin-bottom: 1rem;
129
- font: 1rem Consolas, "Liberation Mono", Menlo, Courier, monospace;
130
- color: #567482;
131
- word-wrap: normal;
132
- background-color: #f3f6fa;
133
- border: solid 1px #dce6f0;
134
- border-radius: 0.3rem; }
135
- .main-content pre > code {
136
- padding: 0;
137
- margin: 0;
138
- font-size: 0.9rem;
139
- color: #567482;
140
- word-break: normal;
141
- white-space: pre;
142
- background: transparent;
143
- border: 0; }
144
- .main-content .highlight {
145
- margin-bottom: 1rem; }
146
- .main-content .highlight pre {
147
- margin-bottom: 0;
148
- word-break: normal; }
149
- .main-content .highlight pre, .main-content pre {
150
- padding: 0.8rem;
151
- overflow: auto;
152
- font-size: 0.9rem;
153
- line-height: 1.45;
154
- border-radius: 0.3rem; }
155
- .main-content pre code, .main-content pre tt {
156
- display: inline;
157
- max-width: initial;
158
- padding: 0;
159
- margin: 0;
160
- overflow: initial;
161
- line-height: inherit;
162
- word-wrap: normal;
163
- background-color: transparent;
164
- border: 0; }
165
- .main-content pre code:before, .main-content pre code:after, .main-content pre tt:before, .main-content pre tt:after {
166
- content: normal; }
167
- .main-content ul, .main-content ol {
168
- margin-top: 0; }
169
- .main-content blockquote {
170
- padding: 0 1rem;
171
- margin-left: 0;
172
- color: #819198;
173
- border-left: 0.3rem solid #dce6f0; }
174
- .main-content blockquote > :first-child {
175
- margin-top: 0; }
176
- .main-content blockquote > :last-child {
177
- margin-bottom: 0; }
178
- .main-content table {
179
- display: block;
180
- width: 100%;
181
- overflow: auto;
182
- word-break: normal;
183
- word-break: keep-all; }
184
- .main-content table th {
185
- font-weight: bold; }
186
- .main-content table th, .main-content table td {
187
- padding: 0.5rem 1rem;
188
- border: 1px solid #e9ebec; }
189
- .main-content dl {
190
- padding: 0; }
191
- .main-content dl dt {
192
- padding: 0;
193
- margin-top: 1rem;
194
- font-size: 1rem;
195
- font-weight: bold; }
196
- .main-content dl dd {
197
- padding: 0;
198
- margin-bottom: 1rem; }
199
- .main-content hr {
200
- height: 2px;
201
- padding: 0;
202
- margin: 1rem 0;
203
- background-color: #eff0f1;
204
- border: 0; }
205
-
206
- @media screen and (min-width: 64em) {
207
- .main-content {
208
- max-width: 64rem;
209
- padding: 2rem 6rem;
210
- margin: 0 auto;
211
- font-size: 1.1rem; } }
212
-
213
- @media screen and (min-width: 42em) and (max-width: 64em) {
214
- .main-content {
215
- padding: 2rem 4rem;
216
- font-size: 1.1rem; } }
217
-
218
- @media screen and (max-width: 42em) {
219
- .main-content {
220
- padding: 2rem 1rem;
221
- font-size: 1rem; } }
222
-
223
- .site-footer {
224
- padding-top: 2rem;
225
- margin-top: 2rem;
226
- border-top: solid 1px #eff0f1; }
227
-
228
- .site-footer-owner {
229
- display: block;
230
- font-weight: bold; }
231
-
232
- .site-footer-credits {
233
- color: #819198; }
234
-
235
- @media screen and (min-width: 64em) {
236
- .site-footer {
237
- font-size: 1rem; } }
238
-
239
- @media screen and (min-width: 42em) and (max-width: 64em) {
240
- .site-footer {
241
- font-size: 1rem; } }
242
-
243
- @media screen and (max-width: 42em) {
244
- .site-footer {
245
- font-size: 0.9rem; } }