ruby_jard 0.2.0 → 0.2.1

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 (75) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +4 -1
  3. data/CHANGELOG.md +18 -0
  4. data/CNAME +1 -0
  5. data/README.md +206 -33
  6. data/_config.yml +1 -0
  7. data/docs/_config.yml +8 -0
  8. data/docs/demo.png +0 -0
  9. data/docs/index.md +238 -0
  10. data/docs/logo.jpg +0 -0
  11. data/docs/screen-backtrace.png +0 -0
  12. data/docs/screen-repl.png +0 -0
  13. data/docs/screen-source.png +0 -0
  14. data/docs/screen-threads.png +0 -0
  15. data/docs/screen-variables.png +0 -0
  16. data/images/bg_hr.png +0 -0
  17. data/images/blacktocat.png +0 -0
  18. data/images/body-bg.jpg +0 -0
  19. data/images/download-button.png +0 -0
  20. data/images/github-button.png +0 -0
  21. data/images/header-bg.jpg +0 -0
  22. data/images/highlight-bg.jpg +0 -0
  23. data/images/icon_download.png +0 -0
  24. data/images/sidebar-bg.jpg +0 -0
  25. data/images/sprite_download.png +0 -0
  26. data/javascripts/main.js +1 -0
  27. data/lib/ruby_jard.rb +3 -18
  28. data/lib/ruby_jard/box_drawer.rb +68 -22
  29. data/lib/ruby_jard/color_scheme.rb +28 -0
  30. data/lib/ruby_jard/color_schemes.rb +26 -0
  31. data/lib/ruby_jard/color_schemes/256_color_scheme.rb +64 -0
  32. data/lib/ruby_jard/color_schemes/deep_space_color_scheme.rb +63 -0
  33. data/lib/ruby_jard/column.rb +12 -6
  34. data/lib/ruby_jard/commands/continue_command.rb +1 -0
  35. data/lib/ruby_jard/commands/list_command.rb +29 -0
  36. data/lib/ruby_jard/commands/next_command.rb +1 -0
  37. data/lib/ruby_jard/commands/step_command.rb +1 -0
  38. data/lib/ruby_jard/commands/step_out_command.rb +1 -0
  39. data/lib/ruby_jard/console.rb +102 -18
  40. data/lib/ruby_jard/control_flow.rb +9 -8
  41. data/lib/ruby_jard/decorators/color_decorator.rb +46 -57
  42. data/lib/ruby_jard/decorators/inspection_decorator.rb +76 -0
  43. data/lib/ruby_jard/decorators/loc_decorator.rb +83 -107
  44. data/lib/ruby_jard/decorators/source_decorator.rb +1 -1
  45. data/lib/ruby_jard/keys.rb +1 -0
  46. data/lib/ruby_jard/layout.rb +9 -99
  47. data/lib/ruby_jard/layout_calculator.rb +151 -0
  48. data/lib/ruby_jard/layouts/narrow_layout.rb +41 -0
  49. data/lib/ruby_jard/layouts/wide_layout.rb +17 -103
  50. data/lib/ruby_jard/repl_processor.rb +5 -1
  51. data/lib/ruby_jard/repl_proxy.rb +2 -1
  52. data/lib/ruby_jard/row.rb +5 -5
  53. data/lib/ruby_jard/row_renderer.rb +108 -0
  54. data/lib/ruby_jard/screen.rb +20 -115
  55. data/lib/ruby_jard/screen_drawer.rb +8 -75
  56. data/lib/ruby_jard/screen_manager.rb +78 -55
  57. data/lib/ruby_jard/screen_renderer.rb +138 -0
  58. data/lib/ruby_jard/screens/backtrace_screen.rb +67 -69
  59. data/lib/ruby_jard/screens/menu_screen.rb +43 -38
  60. data/lib/ruby_jard/screens/source_screen.rb +43 -27
  61. data/lib/ruby_jard/screens/threads_screen.rb +91 -39
  62. data/lib/ruby_jard/screens/variables_screen.rb +72 -56
  63. data/lib/ruby_jard/session.rb +16 -0
  64. data/lib/ruby_jard/span.rb +8 -6
  65. data/lib/ruby_jard/version.rb +1 -1
  66. data/ruby_jard.gemspec +4 -4
  67. data/stylesheets/github-light.css +130 -0
  68. data/stylesheets/normalize.css +424 -0
  69. data/stylesheets/print.css +228 -0
  70. data/stylesheets/stylesheet.css +245 -0
  71. metadata +52 -21
  72. data/lib/ruby_jard/templates/column_template.rb +0 -17
  73. data/lib/ruby_jard/templates/row_template.rb +0 -22
  74. data/lib/ruby_jard/templates/space_template.rb +0 -15
  75. data/lib/ruby_jard/templates/span_template.rb +0 -25
@@ -0,0 +1,245 @@
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; } }
metadata CHANGED
@@ -1,64 +1,63 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_jard
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Minh Nguyen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-19 00:00:00.000000000 Z
11
+ date: 2020-07-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: byebug
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: 11.1.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 11.1.0
27
27
  - !ruby/object:Gem::Dependency
28
- name: pastel
28
+ name: pry
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.7.4
33
+ version: 0.13.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.7.4
40
+ version: 0.13.0
41
41
  - !ruby/object:Gem::Dependency
42
- name: pry
42
+ name: tty-screen
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.13.0
47
+ version: 0.8.1
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.13.0
54
+ version: 0.8.1
55
55
  description: |-
56
56
  Ruby Jard provides an unified experience debugging Ruby source code in different platforms and \
57
57
  editors.
58
58
  email:
59
59
  - nguyenquangminh0711@gmail.com
60
- executables:
61
- - console
60
+ executables: []
62
61
  extensions: []
63
62
  extra_rdoc_files: []
64
63
  files:
@@ -67,19 +66,46 @@ files:
67
66
  - ".rubocop.yml"
68
67
  - ".travis.yml"
69
68
  - CHANGELOG.md
69
+ - CNAME
70
70
  - CODE_OF_CONDUCT.md
71
71
  - Gemfile
72
72
  - LICENSE.txt
73
73
  - README.md
74
74
  - Rakefile
75
+ - _config.yml
75
76
  - bin/console
77
+ - docs/_config.yml
78
+ - docs/demo.png
76
79
  - docs/guide-ui.png
80
+ - docs/index.md
81
+ - docs/logo.jpg
82
+ - docs/screen-backtrace.png
83
+ - docs/screen-repl.png
84
+ - docs/screen-source.png
85
+ - docs/screen-threads.png
86
+ - docs/screen-variables.png
87
+ - images/bg_hr.png
88
+ - images/blacktocat.png
89
+ - images/body-bg.jpg
90
+ - images/download-button.png
91
+ - images/github-button.png
92
+ - images/header-bg.jpg
93
+ - images/highlight-bg.jpg
94
+ - images/icon_download.png
95
+ - images/sidebar-bg.jpg
96
+ - images/sprite_download.png
97
+ - javascripts/main.js
77
98
  - lib/ruby_jard.rb
78
99
  - lib/ruby_jard/box_drawer.rb
100
+ - lib/ruby_jard/color_scheme.rb
101
+ - lib/ruby_jard/color_schemes.rb
102
+ - lib/ruby_jard/color_schemes/256_color_scheme.rb
103
+ - lib/ruby_jard/color_schemes/deep_space_color_scheme.rb
79
104
  - lib/ruby_jard/column.rb
80
105
  - lib/ruby_jard/commands/continue_command.rb
81
106
  - lib/ruby_jard/commands/down_command.rb
82
107
  - lib/ruby_jard/commands/frame_command.rb
108
+ - lib/ruby_jard/commands/list_command.rb
83
109
  - lib/ruby_jard/commands/next_command.rb
84
110
  - lib/ruby_jard/commands/step_command.rb
85
111
  - lib/ruby_jard/commands/step_out_command.rb
@@ -87,6 +113,7 @@ files:
87
113
  - lib/ruby_jard/console.rb
88
114
  - lib/ruby_jard/control_flow.rb
89
115
  - lib/ruby_jard/decorators/color_decorator.rb
116
+ - lib/ruby_jard/decorators/inspection_decorator.rb
90
117
  - lib/ruby_jard/decorators/loc_decorator.rb
91
118
  - lib/ruby_jard/decorators/path_decorator.rb
92
119
  - lib/ruby_jard/decorators/source_decorator.rb
@@ -94,13 +121,17 @@ files:
94
121
  - lib/ruby_jard/key_bindings.rb
95
122
  - lib/ruby_jard/keys.rb
96
123
  - lib/ruby_jard/layout.rb
124
+ - lib/ruby_jard/layout_calculator.rb
125
+ - lib/ruby_jard/layouts/narrow_layout.rb
97
126
  - lib/ruby_jard/layouts/wide_layout.rb
98
127
  - lib/ruby_jard/repl_processor.rb
99
128
  - lib/ruby_jard/repl_proxy.rb
100
129
  - lib/ruby_jard/row.rb
130
+ - lib/ruby_jard/row_renderer.rb
101
131
  - lib/ruby_jard/screen.rb
102
132
  - lib/ruby_jard/screen_drawer.rb
103
133
  - lib/ruby_jard/screen_manager.rb
134
+ - lib/ruby_jard/screen_renderer.rb
104
135
  - lib/ruby_jard/screens.rb
105
136
  - lib/ruby_jard/screens/backtrace_screen.rb
106
137
  - lib/ruby_jard/screens/empty_screen.rb
@@ -110,14 +141,14 @@ files:
110
141
  - lib/ruby_jard/screens/variables_screen.rb
111
142
  - lib/ruby_jard/session.rb
112
143
  - lib/ruby_jard/span.rb
113
- - lib/ruby_jard/templates/column_template.rb
114
144
  - lib/ruby_jard/templates/layout_template.rb
115
- - lib/ruby_jard/templates/row_template.rb
116
145
  - lib/ruby_jard/templates/screen_template.rb
117
- - lib/ruby_jard/templates/space_template.rb
118
- - lib/ruby_jard/templates/span_template.rb
119
146
  - lib/ruby_jard/version.rb
120
147
  - ruby_jard.gemspec
148
+ - stylesheets/github-light.css
149
+ - stylesheets/normalize.css
150
+ - stylesheets/print.css
151
+ - stylesheets/stylesheet.css
121
152
  homepage: https://github.com/nguyenquangminh0711/ruby_jard
122
153
  licenses:
123
154
  - MIT
@@ -141,7 +172,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
141
172
  - !ruby/object:Gem::Version
142
173
  version: '0'
143
174
  requirements: []
144
- rubygems_version: 3.1.2
175
+ rubygems_version: 3.0.3
145
176
  signing_key:
146
177
  specification_version: 4
147
178
  summary: Just Another Ruby Debugger
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module RubyJard
4
- module Templates
5
- ##
6
- # Template for a column. All items in a column align with each other. A column includes one or more spans.
7
- class ColumnTemplate
8
- attr_reader :spans, :margin_right, :margin_left
9
-
10
- def initialize(spans: [], margin_left: 0, margin_right: 0)
11
- @spans = spans
12
- @margin_left = margin_left
13
- @margin_right = margin_right
14
- end
15
- end
16
- end
17
- end
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module RubyJard
4
- module Templates
5
- ##
6
- # Template for a row. Each screen has only 1 template for row. Each row includes multiple columns.
7
- class RowTemplate
8
- attr_reader :columns, :line_limit
9
-
10
- def initialize(columns: [], line_limit: nil)
11
- @columns = columns
12
- @line_limit = line_limit
13
- end
14
-
15
- def priorities
16
- columns.flat_map do |column|
17
- column.spans.flat_map(&:priority)
18
- end.uniq.compact.sort.reverse
19
- end
20
- end
21
- end
22
- end