lazyrails-tui 0.1.2 → 0.2.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.
- checksums.yaml +4 -4
- data/lib/lazyrails/app.rb +23 -23
- data/lib/lazyrails/data_loader.rb +32 -32
- data/lib/lazyrails/input_mode.rb +1 -1
- data/lib/lazyrails/message_handlers.rb +2 -2
- data/lib/lazyrails/renderer.rb +4 -4
- data/lib/lazyrails/structs.rb +25 -12
- data/lib/lazyrails/table_browser.rb +3 -5
- data/lib/lazyrails/version.rb +1 -1
- metadata +8 -8
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 15f9781893fa5d9ccd84a85d88f3204c2bfb3593cd2ec5169dea14b5ebdf5901
|
|
4
|
+
data.tar.gz: '0658498a1425bbcd2135be3d9c29aec4101ff900c8998bc797962985b292f37f'
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b2e651987bb7be6eda53e531b86c4a417c08919cacfbb51eb456b99299cb4fc354ab878b643ab3de36d9fde28941ba22bdb9d6eaca3e07646667eb3ba9196fc9
|
|
7
|
+
data.tar.gz: f3bc7782b311f84a6363d05afc4adf07e29d5723cefd0a11d52bea669cfcb9f5f5628034b2d6cb6897404f9efdc562fa106a7c797ce0b1b2bdb77db06454b58c
|
data/lib/lazyrails/app.rb
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
module LazyRails
|
|
4
4
|
# Custom messages for async operations
|
|
5
|
-
|
|
5
|
+
TestFinishedEvent = Data.define(:path, :status, :output, :command_entry) do
|
|
6
6
|
def initialize(command_entry: nil, **kwargs)
|
|
7
7
|
super
|
|
8
8
|
end
|
|
@@ -128,29 +128,29 @@ module LazyRails
|
|
|
128
128
|
end
|
|
129
129
|
|
|
130
130
|
def update(msg)
|
|
131
|
-
return handle_welcome(msg) if @welcome.visible? && msg.is_a?(Chamomile::
|
|
132
|
-
return handle_help_key(msg) if @help.visible? && msg.is_a?(Chamomile::
|
|
133
|
-
return handle_generator_wizard(msg) if @generator_wizard.visible? && msg.is_a?(Chamomile::
|
|
131
|
+
return handle_welcome(msg) if @welcome.visible? && msg.is_a?(Chamomile::KeyEvent)
|
|
132
|
+
return handle_help_key(msg) if @help.visible? && msg.is_a?(Chamomile::KeyEvent)
|
|
133
|
+
return handle_generator_wizard(msg) if @generator_wizard.visible? && msg.is_a?(Chamomile::KeyEvent)
|
|
134
134
|
return handle_confirmation(msg) if @confirmation
|
|
135
135
|
return handle_input_mode(msg) if @input_mode.active?
|
|
136
136
|
|
|
137
137
|
case msg
|
|
138
|
-
when Chamomile::
|
|
139
|
-
when Chamomile::
|
|
140
|
-
when Chamomile::
|
|
141
|
-
when Chamomile::
|
|
142
|
-
when
|
|
143
|
-
when
|
|
144
|
-
when
|
|
145
|
-
when
|
|
146
|
-
when
|
|
147
|
-
when
|
|
148
|
-
when
|
|
149
|
-
when
|
|
150
|
-
when
|
|
151
|
-
when
|
|
152
|
-
when
|
|
153
|
-
when
|
|
138
|
+
when Chamomile::ResizeEvent then handle_resize(msg)
|
|
139
|
+
when Chamomile::KeyEvent then return handle_key(msg)
|
|
140
|
+
when Chamomile::TickEvent then return handle_tick
|
|
141
|
+
when Chamomile::InterruptEvent then return shutdown
|
|
142
|
+
when IntrospectLoadedEvent then return handle_introspect_loaded(msg)
|
|
143
|
+
when GemsLoadedEvent then handle_gems_loaded(msg)
|
|
144
|
+
when TestsLoadedEvent then handle_tests_loaded(msg)
|
|
145
|
+
when CommandFinishedEvent then return handle_command_finished(msg)
|
|
146
|
+
when TestFinishedEvent then handle_test_finished(msg)
|
|
147
|
+
when TableRowsLoadedEvent then handle_table_rows_loaded(msg)
|
|
148
|
+
when EvalFinishedEvent then handle_eval_finished(msg)
|
|
149
|
+
when CredentialsLoadedEvent then handle_credentials_loaded(msg)
|
|
150
|
+
when MailersLoadedEvent then handle_mailers_loaded(msg)
|
|
151
|
+
when MailerPreviewLoadedEvent then handle_mailer_preview_loaded(msg)
|
|
152
|
+
when JobsLoadedEvent then handle_jobs_loaded(msg)
|
|
153
|
+
when JobActionEvent then return handle_job_action(msg)
|
|
154
154
|
end
|
|
155
155
|
|
|
156
156
|
nil
|
|
@@ -163,7 +163,7 @@ module LazyRails
|
|
|
163
163
|
left_content = render_left_panels(left_width)
|
|
164
164
|
right_content = render_right_pane(right_width)
|
|
165
165
|
|
|
166
|
-
layout = Flourish.
|
|
166
|
+
layout = Flourish.horizontal([left_content, " ", right_content], align: :top)
|
|
167
167
|
|
|
168
168
|
base = if @input_mode.active?
|
|
169
169
|
"#{layout}\n#{render_filter_bar}"
|
|
@@ -448,7 +448,7 @@ module LazyRails
|
|
|
448
448
|
end
|
|
449
449
|
|
|
450
450
|
def handle_input_mode(msg)
|
|
451
|
-
return nil unless msg.is_a?(Chamomile::
|
|
451
|
+
return nil unless msg.is_a?(Chamomile::KeyEvent)
|
|
452
452
|
|
|
453
453
|
signal = @input_mode.handle_key(msg)
|
|
454
454
|
|
|
@@ -482,7 +482,7 @@ module LazyRails
|
|
|
482
482
|
end
|
|
483
483
|
|
|
484
484
|
def handle_confirmation(msg)
|
|
485
|
-
return nil unless msg.is_a?(Chamomile::
|
|
485
|
+
return nil unless msg.is_a?(Chamomile::KeyEvent)
|
|
486
486
|
|
|
487
487
|
@confirmation.handle_key(msg.key)
|
|
488
488
|
|
|
@@ -12,12 +12,12 @@ module LazyRails
|
|
|
12
12
|
|
|
13
13
|
if result.success?
|
|
14
14
|
data = Introspect.load(result.stdout)
|
|
15
|
-
|
|
15
|
+
IntrospectLoadedEvent.new(data: data, error: nil)
|
|
16
16
|
else
|
|
17
|
-
|
|
17
|
+
IntrospectLoadedEvent.new(data: nil, error: result.stderr)
|
|
18
18
|
end
|
|
19
19
|
rescue StandardError => e
|
|
20
|
-
|
|
20
|
+
IntrospectLoadedEvent.new(data: nil, error: e.message)
|
|
21
21
|
end)
|
|
22
22
|
end
|
|
23
23
|
|
|
@@ -26,9 +26,9 @@ module LazyRails
|
|
|
26
26
|
cmd(lambda do
|
|
27
27
|
lockfile = File.join(project_dir, "Gemfile.lock")
|
|
28
28
|
gems = Parsers::GemfileLock.parse(lockfile)
|
|
29
|
-
|
|
29
|
+
GemsLoadedEvent.new(gems: gems, error: nil)
|
|
30
30
|
rescue StandardError => e
|
|
31
|
-
|
|
31
|
+
GemsLoadedEvent.new(gems: [], error: e.message)
|
|
32
32
|
end)
|
|
33
33
|
end
|
|
34
34
|
|
|
@@ -51,9 +51,9 @@ module LazyRails
|
|
|
51
51
|
end
|
|
52
52
|
end
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
TestsLoadedEvent.new(files: files, error: nil)
|
|
55
55
|
rescue StandardError => e
|
|
56
|
-
|
|
56
|
+
TestsLoadedEvent.new(files: [], error: e.message)
|
|
57
57
|
end)
|
|
58
58
|
end
|
|
59
59
|
|
|
@@ -63,7 +63,7 @@ module LazyRails
|
|
|
63
63
|
project_dir = @project.dir
|
|
64
64
|
cmd(lambda {
|
|
65
65
|
result = CommandRunner.run(command, dir: project_dir)
|
|
66
|
-
|
|
66
|
+
CommandFinishedEvent.new(entry: result, panel: panel_type)
|
|
67
67
|
})
|
|
68
68
|
end
|
|
69
69
|
|
|
@@ -76,7 +76,7 @@ module LazyRails
|
|
|
76
76
|
cmd(lambda {
|
|
77
77
|
result = CommandRunner.run(test_cmd, dir: project_dir)
|
|
78
78
|
status = result.success? ? :passed : :failed
|
|
79
|
-
|
|
79
|
+
TestFinishedEvent.new(path: path, status: status, output: result.stdout + result.stderr, command_entry: result)
|
|
80
80
|
})
|
|
81
81
|
end
|
|
82
82
|
|
|
@@ -91,16 +91,16 @@ module LazyRails
|
|
|
91
91
|
if result.success?
|
|
92
92
|
data = JSON.parse(result.stdout, symbolize_names: false)
|
|
93
93
|
if data["error"]
|
|
94
|
-
|
|
94
|
+
TableRowsLoadedEvent.new(table: table_name, columns: [], rows: [], total: 0, error: data["error"])
|
|
95
95
|
else
|
|
96
|
-
|
|
96
|
+
TableRowsLoadedEvent.new(table: table_name, columns: data["columns"], rows: data["rows"],
|
|
97
97
|
total: data["total"] || 0, error: nil)
|
|
98
98
|
end
|
|
99
99
|
else
|
|
100
|
-
|
|
100
|
+
TableRowsLoadedEvent.new(table: table_name, columns: [], rows: [], total: 0, error: result.stderr)
|
|
101
101
|
end
|
|
102
102
|
rescue StandardError => e
|
|
103
|
-
|
|
103
|
+
TableRowsLoadedEvent.new(table: table_name, columns: [], rows: [], total: 0, error: e.message)
|
|
104
104
|
end)
|
|
105
105
|
end
|
|
106
106
|
|
|
@@ -118,10 +118,10 @@ module LazyRails
|
|
|
118
118
|
error: result.success? ? nil : result.stderr.strip,
|
|
119
119
|
duration_ms: result.duration_ms
|
|
120
120
|
)
|
|
121
|
-
|
|
121
|
+
EvalFinishedEvent.new(entry: entry, command_entry: result)
|
|
122
122
|
rescue StandardError => e
|
|
123
123
|
entry = EvalEntry.new(expression: expression, result: nil, error: e.message, duration_ms: 0)
|
|
124
|
-
|
|
124
|
+
EvalFinishedEvent.new(entry: entry)
|
|
125
125
|
end)
|
|
126
126
|
end
|
|
127
127
|
|
|
@@ -132,13 +132,13 @@ module LazyRails
|
|
|
132
132
|
args = ["bin/rails", "credentials:show"]
|
|
133
133
|
args += ["--environment", env] unless env == "development"
|
|
134
134
|
result = CommandRunner.run(args, dir: project_dir)
|
|
135
|
-
|
|
135
|
+
CredentialsLoadedEvent.new(
|
|
136
136
|
environment: credential_file.environment,
|
|
137
137
|
content: result.success? ? result.stdout : nil,
|
|
138
138
|
error: result.success? ? nil : result.stderr
|
|
139
139
|
)
|
|
140
140
|
rescue StandardError => e
|
|
141
|
-
|
|
141
|
+
CredentialsLoadedEvent.new(environment: credential_file.environment, content: nil, error: e.message)
|
|
142
142
|
end)
|
|
143
143
|
end
|
|
144
144
|
|
|
@@ -167,9 +167,9 @@ module LazyRails
|
|
|
167
167
|
end
|
|
168
168
|
end
|
|
169
169
|
|
|
170
|
-
|
|
170
|
+
MailersLoadedEvent.new(previews: previews, error: nil)
|
|
171
171
|
rescue StandardError => e
|
|
172
|
-
|
|
172
|
+
MailersLoadedEvent.new(previews: [], error: e.message)
|
|
173
173
|
end)
|
|
174
174
|
end
|
|
175
175
|
|
|
@@ -187,13 +187,13 @@ module LazyRails
|
|
|
187
187
|
result = CommandRunner.run(["bin/rails", "runner", script], dir: project_dir)
|
|
188
188
|
if result.success?
|
|
189
189
|
data = JSON.parse(result.stdout, symbolize_names: true)
|
|
190
|
-
|
|
190
|
+
MailerPreviewLoadedEvent.new(preview: preview, error: nil, **data)
|
|
191
191
|
else
|
|
192
|
-
|
|
192
|
+
MailerPreviewLoadedEvent.new(preview: preview, subject: nil, to: nil,
|
|
193
193
|
from: nil, body: nil, error: result.stderr)
|
|
194
194
|
end
|
|
195
195
|
rescue StandardError => e
|
|
196
|
-
|
|
196
|
+
MailerPreviewLoadedEvent.new(preview: preview, subject: nil, to: nil,
|
|
197
197
|
from: nil, body: nil, error: e.message)
|
|
198
198
|
end)
|
|
199
199
|
end
|
|
@@ -211,16 +211,16 @@ module LazyRails
|
|
|
211
211
|
|
|
212
212
|
if result.success?
|
|
213
213
|
data = JSON.parse(result.stdout, symbolize_names: false)
|
|
214
|
-
return
|
|
214
|
+
return JobsLoadedEvent.new(available: false, jobs: [], counts: {}, error: nil) if data["available"] == false
|
|
215
215
|
|
|
216
216
|
counts = (data["counts"] || {}).transform_keys(&:to_sym)
|
|
217
217
|
jobs = (data["jobs"] || []).map { |j| parse_job_entry(j) }
|
|
218
|
-
|
|
218
|
+
JobsLoadedEvent.new(available: true, jobs: jobs, counts: counts, error: nil)
|
|
219
219
|
else
|
|
220
|
-
|
|
220
|
+
JobsLoadedEvent.new(available: true, jobs: [], counts: {}, error: result.stderr)
|
|
221
221
|
end
|
|
222
222
|
rescue StandardError => e
|
|
223
|
-
|
|
223
|
+
JobsLoadedEvent.new(available: true, jobs: [], counts: {}, error: e.message)
|
|
224
224
|
end)
|
|
225
225
|
end
|
|
226
226
|
|
|
@@ -245,12 +245,12 @@ module LazyRails
|
|
|
245
245
|
)
|
|
246
246
|
if result.success?
|
|
247
247
|
data = JSON.parse(result.stdout, symbolize_names: false)
|
|
248
|
-
|
|
248
|
+
JobActionEvent.new(action: "retry_all", job_id: nil, success: data["success"], error: data["error"])
|
|
249
249
|
else
|
|
250
|
-
|
|
250
|
+
JobActionEvent.new(action: "retry_all", job_id: nil, success: false, error: result.stderr)
|
|
251
251
|
end
|
|
252
252
|
rescue StandardError => e
|
|
253
|
-
|
|
253
|
+
JobActionEvent.new(action: "retry_all", job_id: nil, success: false, error: e.message)
|
|
254
254
|
end)
|
|
255
255
|
end
|
|
256
256
|
|
|
@@ -269,12 +269,12 @@ module LazyRails
|
|
|
269
269
|
result = CommandRunner.run(["bin/rails", "runner", script, action, id.to_s], dir: project_dir)
|
|
270
270
|
if result.success?
|
|
271
271
|
data = JSON.parse(result.stdout, symbolize_names: false)
|
|
272
|
-
|
|
272
|
+
JobActionEvent.new(action: action, job_id: id, success: data["success"], error: data["error"])
|
|
273
273
|
else
|
|
274
|
-
|
|
274
|
+
JobActionEvent.new(action: action, job_id: id, success: false, error: result.stderr)
|
|
275
275
|
end
|
|
276
276
|
rescue StandardError => e
|
|
277
|
-
|
|
277
|
+
JobActionEvent.new(action: action, job_id: id, success: false, error: e.message)
|
|
278
278
|
end)
|
|
279
279
|
end
|
|
280
280
|
|
data/lib/lazyrails/input_mode.rb
CHANGED
|
@@ -31,7 +31,7 @@ module LazyRails
|
|
|
31
31
|
when :escape then :cancelled
|
|
32
32
|
when :enter then { action: :submitted, value: @input.value, purpose: @purpose }
|
|
33
33
|
else
|
|
34
|
-
@input.
|
|
34
|
+
@input.handle(msg)
|
|
35
35
|
@purpose == :filter ? { action: :changed, value: @input.value } : nil
|
|
36
36
|
end
|
|
37
37
|
end
|
|
@@ -205,8 +205,8 @@ module LazyRails
|
|
|
205
205
|
@width = msg.width
|
|
206
206
|
@height = msg.height
|
|
207
207
|
right_width = @width - (@width * App::LEFT_WIDTH_RATIO).to_i - 1
|
|
208
|
-
@detail_viewport.
|
|
209
|
-
@detail_viewport.
|
|
208
|
+
@detail_viewport.width = right_width - 4
|
|
209
|
+
@detail_viewport.height = @height - 4
|
|
210
210
|
update_detail_content
|
|
211
211
|
end
|
|
212
212
|
end
|
data/lib/lazyrails/renderer.rb
CHANGED
|
@@ -44,7 +44,7 @@ module LazyRails
|
|
|
44
44
|
sections << output
|
|
45
45
|
end
|
|
46
46
|
|
|
47
|
-
Flourish.
|
|
47
|
+
Flourish.vertical(sections, align: :left)
|
|
48
48
|
end
|
|
49
49
|
|
|
50
50
|
def panel_cache_key(panel, focused, width, height)
|
|
@@ -110,9 +110,9 @@ module LazyRails
|
|
|
110
110
|
end
|
|
111
111
|
|
|
112
112
|
def render_right_pane(width)
|
|
113
|
-
@detail_viewport.
|
|
114
|
-
@detail_viewport.
|
|
115
|
-
@detail_viewport.
|
|
113
|
+
@detail_viewport.width = width - 4
|
|
114
|
+
@detail_viewport.height = @height - 4
|
|
115
|
+
@detail_viewport.content = @detail_content
|
|
116
116
|
|
|
117
117
|
content = @detail_viewport.view
|
|
118
118
|
border_color = UNFOCUSED_COLOR
|
data/lib/lazyrails/structs.rb
CHANGED
|
@@ -150,20 +150,33 @@ module LazyRails
|
|
|
150
150
|
end
|
|
151
151
|
end
|
|
152
152
|
|
|
153
|
-
#
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
153
|
+
# Events for async data loading
|
|
154
|
+
IntrospectLoadedEvent = Data.define(:data, :error)
|
|
155
|
+
GemsLoadedEvent = Data.define(:gems, :error)
|
|
156
|
+
TestsLoadedEvent = Data.define(:files, :error)
|
|
157
|
+
CommandFinishedEvent = Data.define(:entry, :panel)
|
|
158
|
+
TableRowsLoadedEvent = Data.define(:table, :columns, :rows, :total, :error)
|
|
159
|
+
EvalFinishedEvent = Data.define(:entry, :command_entry) do
|
|
160
160
|
def initialize(command_entry: nil, **kwargs)
|
|
161
161
|
super
|
|
162
162
|
end
|
|
163
163
|
end
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
164
|
+
CredentialsLoadedEvent = Data.define(:environment, :content, :error)
|
|
165
|
+
MailersLoadedEvent = Data.define(:previews, :error)
|
|
166
|
+
MailerPreviewLoadedEvent = Data.define(:preview, :subject, :to, :from, :body, :error)
|
|
167
|
+
JobsLoadedEvent = Data.define(:available, :jobs, :counts, :error)
|
|
168
|
+
JobActionEvent = Data.define(:action, :job_id, :success, :error)
|
|
169
|
+
|
|
170
|
+
# Backward compat aliases
|
|
171
|
+
IntrospectLoadedMsg = IntrospectLoadedEvent
|
|
172
|
+
GemsLoadedMsg = GemsLoadedEvent
|
|
173
|
+
TestsLoadedMsg = TestsLoadedEvent
|
|
174
|
+
CommandFinishedMsg = CommandFinishedEvent
|
|
175
|
+
TableRowsLoadedMsg = TableRowsLoadedEvent
|
|
176
|
+
EvalFinishedMsg = EvalFinishedEvent
|
|
177
|
+
CredentialsLoadedMsg = CredentialsLoadedEvent
|
|
178
|
+
MailersLoadedMsg = MailersLoadedEvent
|
|
179
|
+
MailerPreviewLoadedMsg = MailerPreviewLoadedEvent
|
|
180
|
+
JobsLoadedMsg = JobsLoadedEvent
|
|
181
|
+
JobActionMsg = JobActionEvent
|
|
169
182
|
end
|
|
@@ -67,15 +67,13 @@ module LazyRails
|
|
|
67
67
|
@error = nil
|
|
68
68
|
@total_rows = total
|
|
69
69
|
|
|
70
|
-
table_columns = columns.map do |col|
|
|
71
|
-
Petals::Table::Column.new(title: col, width: column_width(col, columns.size))
|
|
72
|
-
end
|
|
73
|
-
|
|
74
70
|
table_rows = rows.map do |row|
|
|
75
71
|
row.map { |v| v.nil? ? "NULL" : v.to_s }
|
|
76
72
|
end
|
|
77
73
|
|
|
78
|
-
@table_widget = Petals::Table.new(
|
|
74
|
+
@table_widget = Petals::Table.new(rows: table_rows) do |t|
|
|
75
|
+
columns.each { |col| t.column col, width: column_width(col, columns.size) }
|
|
76
|
+
end
|
|
79
77
|
end
|
|
80
78
|
|
|
81
79
|
def current_query_params
|
data/lib/lazyrails/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: lazyrails-tui
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jack Killilea
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-03-
|
|
11
|
+
date: 2026-03-12 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: chamomile
|
|
@@ -16,42 +16,42 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '0.
|
|
19
|
+
version: '0.2'
|
|
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
|
-
version: '0.
|
|
26
|
+
version: '0.2'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: chamomile-flourish
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
31
|
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '0.
|
|
33
|
+
version: '0.2'
|
|
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.2'
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: chamomile-petals
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
45
|
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '0.
|
|
47
|
+
version: '0.2'
|
|
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.2'
|
|
55
55
|
description: LazyRails gives Rails developers a fast, navigable TUI that surfaces
|
|
56
56
|
everything the Rails CLI offers in a single split-pane interface.
|
|
57
57
|
email:
|