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.
- checksums.yaml +4 -4
- data/.rubocop.yml +4 -1
- data/CHANGELOG.md +18 -0
- data/CNAME +1 -0
- data/README.md +206 -33
- data/_config.yml +1 -0
- data/docs/_config.yml +8 -0
- data/docs/demo.png +0 -0
- data/docs/index.md +238 -0
- data/docs/logo.jpg +0 -0
- data/docs/screen-backtrace.png +0 -0
- data/docs/screen-repl.png +0 -0
- data/docs/screen-source.png +0 -0
- data/docs/screen-threads.png +0 -0
- data/docs/screen-variables.png +0 -0
- data/images/bg_hr.png +0 -0
- data/images/blacktocat.png +0 -0
- data/images/body-bg.jpg +0 -0
- data/images/download-button.png +0 -0
- data/images/github-button.png +0 -0
- data/images/header-bg.jpg +0 -0
- data/images/highlight-bg.jpg +0 -0
- data/images/icon_download.png +0 -0
- data/images/sidebar-bg.jpg +0 -0
- data/images/sprite_download.png +0 -0
- data/javascripts/main.js +1 -0
- data/lib/ruby_jard.rb +3 -18
- data/lib/ruby_jard/box_drawer.rb +68 -22
- data/lib/ruby_jard/color_scheme.rb +28 -0
- data/lib/ruby_jard/color_schemes.rb +26 -0
- data/lib/ruby_jard/color_schemes/256_color_scheme.rb +64 -0
- data/lib/ruby_jard/color_schemes/deep_space_color_scheme.rb +63 -0
- data/lib/ruby_jard/column.rb +12 -6
- data/lib/ruby_jard/commands/continue_command.rb +1 -0
- data/lib/ruby_jard/commands/list_command.rb +29 -0
- data/lib/ruby_jard/commands/next_command.rb +1 -0
- data/lib/ruby_jard/commands/step_command.rb +1 -0
- data/lib/ruby_jard/commands/step_out_command.rb +1 -0
- data/lib/ruby_jard/console.rb +102 -18
- data/lib/ruby_jard/control_flow.rb +9 -8
- data/lib/ruby_jard/decorators/color_decorator.rb +46 -57
- data/lib/ruby_jard/decorators/inspection_decorator.rb +76 -0
- data/lib/ruby_jard/decorators/loc_decorator.rb +83 -107
- data/lib/ruby_jard/decorators/source_decorator.rb +1 -1
- data/lib/ruby_jard/keys.rb +1 -0
- data/lib/ruby_jard/layout.rb +9 -99
- data/lib/ruby_jard/layout_calculator.rb +151 -0
- data/lib/ruby_jard/layouts/narrow_layout.rb +41 -0
- data/lib/ruby_jard/layouts/wide_layout.rb +17 -103
- data/lib/ruby_jard/repl_processor.rb +5 -1
- data/lib/ruby_jard/repl_proxy.rb +2 -1
- data/lib/ruby_jard/row.rb +5 -5
- data/lib/ruby_jard/row_renderer.rb +108 -0
- data/lib/ruby_jard/screen.rb +20 -115
- data/lib/ruby_jard/screen_drawer.rb +8 -75
- data/lib/ruby_jard/screen_manager.rb +78 -55
- data/lib/ruby_jard/screen_renderer.rb +138 -0
- data/lib/ruby_jard/screens/backtrace_screen.rb +67 -69
- data/lib/ruby_jard/screens/menu_screen.rb +43 -38
- data/lib/ruby_jard/screens/source_screen.rb +43 -27
- data/lib/ruby_jard/screens/threads_screen.rb +91 -39
- data/lib/ruby_jard/screens/variables_screen.rb +72 -56
- data/lib/ruby_jard/session.rb +16 -0
- data/lib/ruby_jard/span.rb +8 -6
- data/lib/ruby_jard/version.rb +1 -1
- data/ruby_jard.gemspec +4 -4
- data/stylesheets/github-light.css +130 -0
- data/stylesheets/normalize.css +424 -0
- data/stylesheets/print.css +228 -0
- data/stylesheets/stylesheet.css +245 -0
- metadata +52 -21
- data/lib/ruby_jard/templates/column_template.rb +0 -17
- data/lib/ruby_jard/templates/row_template.rb +0 -22
- data/lib/ruby_jard/templates/space_template.rb +0 -15
- 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.
|
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-
|
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:
|
28
|
+
name: pry
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.
|
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.
|
40
|
+
version: 0.13.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
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.
|
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.
|
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.
|
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
|