rooibos 0.6.2 → 0.7.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/LICENSES/BSD-2-Clause.txt +9 -0
- data/REUSE.toml +5 -0
- data/exe/.gitkeep +0 -0
- data/lib/rooibos/cli/commands/new.rb +24 -0
- data/lib/rooibos/command/batch.rb +10 -0
- data/lib/rooibos/command/bubble.rb +34 -0
- data/lib/rooibos/command/custom.rb +3 -2
- data/lib/rooibos/command/deliver.rb +50 -0
- data/lib/rooibos/command/http.rb +1 -1
- data/lib/rooibos/command/lifecycle.rb +3 -1
- data/lib/rooibos/command/outlet.rb +19 -9
- data/lib/rooibos/command.rb +107 -3
- data/lib/rooibos/configuration.rb +29 -0
- data/lib/rooibos/message/bubbled.rb +29 -0
- data/lib/rooibos/message.rb +24 -6
- data/lib/rooibos/router/action.rb +36 -0
- data/lib/rooibos/router/flow/dispatch.rb +39 -0
- data/lib/rooibos/router/flow/inward.rb +41 -0
- data/lib/rooibos/router/flow/outward.rb +44 -0
- data/lib/rooibos/router/guard.rb +56 -0
- data/lib/rooibos/router/predicate.rb +65 -0
- data/lib/rooibos/router/registry/actions.rb +41 -0
- data/lib/rooibos/router/registry/forwards.rb +58 -0
- data/lib/rooibos/router/registry/observes.rb +57 -0
- data/lib/rooibos/router/registry/otherwises.rb +29 -0
- data/lib/rooibos/router/registry/receives.rb +57 -0
- data/lib/rooibos/router/registry/routes.rb +59 -0
- data/lib/rooibos/router/registry.rb +26 -0
- data/lib/rooibos/router/route.rb +42 -0
- data/lib/rooibos/router/router_update.rb +53 -0
- data/lib/rooibos/router/rule/forward.rb +39 -0
- data/lib/rooibos/router/rule/observe.rb +22 -0
- data/lib/rooibos/router/rule/otherwise.rb +26 -0
- data/lib/rooibos/router/rule/receive.rb +22 -0
- data/lib/rooibos/router/rule.rb +40 -0
- data/lib/rooibos/router.rb +424 -438
- data/lib/rooibos/runtime.rb +37 -52
- data/lib/rooibos/test_helper.rb +22 -0
- data/lib/rooibos/transition.rb +92 -0
- data/lib/rooibos/version.rb +1 -1
- data/lib/rooibos.rb +2 -57
- data/sig/rooibos/cli.rbs +1 -0
- data/sig/rooibos/command.rbs +44 -0
- data/sig/rooibos/configuration.rbs +20 -0
- data/sig/rooibos/message.rbs +12 -0
- data/sig/rooibos/router/action.rbs +33 -0
- data/sig/rooibos/router/actions.rbs +27 -0
- data/sig/rooibos/router/flow/dispatch.rbs +29 -0
- data/sig/rooibos/router/flow/inward.rbs +37 -0
- data/sig/rooibos/router/flow/outward.rbs +36 -0
- data/sig/rooibos/router/forward.rbs +35 -0
- data/sig/rooibos/router/forwards.rbs +34 -0
- data/sig/rooibos/router/guard.rbs +21 -0
- data/sig/rooibos/router/observe.rbs +20 -0
- data/sig/rooibos/router/observes.rbs +38 -0
- data/sig/rooibos/router/otherwise.rbs +22 -0
- data/sig/rooibos/router/otherwises.rbs +20 -0
- data/sig/rooibos/router/predicate.rbs +51 -0
- data/sig/rooibos/router/receive.rbs +20 -0
- data/sig/rooibos/router/receives.rbs +38 -0
- data/sig/rooibos/router/registry.rbs +24 -0
- data/sig/rooibos/router/route.rbs +46 -0
- data/sig/rooibos/router/router_update.rbs +33 -0
- data/sig/rooibos/router/routes.rbs +41 -0
- data/sig/rooibos/router/rule.rbs +36 -0
- data/sig/rooibos/router.rbs +216 -161
- data/sig/rooibos/runtime.rbs +0 -1
- data/sig/rooibos/test_helper.rbs +6 -0
- data/sig/rooibos/transition.rbs +33 -0
- data/sig/rooibos.rbs +0 -10
- metadata +144 -198
- data/.builds/ruby-3.2.yml +0 -55
- data/.builds/ruby-3.3.yml +0 -55
- data/.builds/ruby-3.4.yml +0 -55
- data/.builds/ruby-4.0.0.yml +0 -55
- data/.pre-commit-config.yaml +0 -16
- data/.rubocop.yml +0 -8
- data/AGENTS.md +0 -108
- data/CHANGELOG.md +0 -308
- data/README.md +0 -183
- data/README.rdoc +0 -374
- data/Rakefile +0 -16
- data/Steepfile +0 -13
- data/doc/best_practices/forms_and_validation.md +0 -20
- data/doc/best_practices/http_workflows.md +0 -20
- data/doc/best_practices/index.md +0 -26
- data/doc/best_practices/lists_and_tables.md +0 -20
- data/doc/best_practices/modal_dialogs.md +0 -20
- data/doc/best_practices/no_stateful_widgets.md +0 -184
- data/doc/best_practices/orchestration.md +0 -20
- data/doc/best_practices/streaming_data.md +0 -20
- data/doc/contributors/design/commands_and_outlets.md +0 -214
- data/doc/contributors/design/mvu_tea_implementations_research.md +0 -373
- data/doc/contributors/documentation_plan.md +0 -616
- data/doc/contributors/documentation_stub_audit.md +0 -112
- data/doc/contributors/documentation_style.md +0 -275
- data/doc/contributors/e2e_pty.md +0 -168
- data/doc/contributors/maybe_stateful_router.md +0 -56
- data/doc/contributors/specs/earliest_tutorial_steps_per_story.md +0 -70
- data/doc/contributors/specs/file_browser.md +0 -789
- data/doc/contributors/specs/file_browser_stories.md +0 -784
- data/doc/contributors/specs/tutorials_to_stories.rb +0 -167
- data/doc/contributors/todo/scrollbar.md +0 -118
- data/doc/contributors/tutorial_old/01_project_setup.md +0 -20
- data/doc/contributors/tutorial_old/02_hello_world.md +0 -24
- data/doc/contributors/tutorial_old/03_adding_state.md +0 -26
- data/doc/contributors/tutorial_old/06_organizing_your_code.md +0 -20
- data/doc/contributors/tutorial_old/07_your_first_command.md +0 -21
- data/doc/contributors/tutorial_old/08_the_preview_pane.md +0 -20
- data/doc/contributors/tutorial_old/09_loading_states.md +0 -20
- data/doc/contributors/tutorial_old/10_testing_your_app.md +0 -20
- data/doc/contributors/tutorial_old/11_polish_and_refine.md +0 -20
- data/doc/contributors/tutorial_old/12_going_further.md +0 -20
- data/doc/contributors/tutorial_old/index.md +0 -20
- data/doc/custom.css +0 -22
- data/doc/essentials/commands.md +0 -20
- data/doc/essentials/index.md +0 -31
- data/doc/essentials/messages.md +0 -21
- data/doc/essentials/models.md +0 -21
- data/doc/essentials/shortcuts.md +0 -19
- data/doc/essentials/the_elm_architecture.md +0 -24
- data/doc/essentials/the_runtime.md +0 -21
- data/doc/essentials/update_functions.md +0 -20
- data/doc/essentials/views.md +0 -22
- data/doc/getting_started/for_go_developers.md +0 -16
- data/doc/getting_started/for_python_developers.md +0 -16
- data/doc/getting_started/for_rails_developers.md +0 -17
- data/doc/getting_started/for_ratatui_ruby_developers.md +0 -17
- data/doc/getting_started/for_react_developers.md +0 -17
- data/doc/getting_started/index.md +0 -52
- data/doc/getting_started/install.md +0 -20
- data/doc/getting_started/quickstart.md +0 -20
- data/doc/getting_started/ruby_primer.md +0 -19
- data/doc/getting_started/why_rooibos.md +0 -20
- data/doc/images/verify_readme_usage.png +0 -0
- data/doc/images/widget_cmd_exec.png +0 -0
- data/doc/index.md +0 -93
- data/doc/scaling_up/async_patterns.md +0 -20
- data/doc/scaling_up/command_composition.md +0 -20
- data/doc/scaling_up/custom_commands.md +0 -21
- data/doc/scaling_up/fractal_architecture.md +0 -20
- data/doc/scaling_up/index.md +0 -30
- data/doc/scaling_up/message_routing.md +0 -20
- data/doc/scaling_up/ractor_safety.md +0 -20
- data/doc/scaling_up/testing.md +0 -21
- data/doc/troubleshooting/common_errors.md +0 -20
- data/doc/troubleshooting/debugging.md +0 -21
- data/doc/troubleshooting/index.md +0 -23
- data/doc/troubleshooting/performance.md +0 -20
- data/doc/tutorial/01_project_setup.md +0 -44
- data/doc/tutorial/02_hello_world.md +0 -45
- data/doc/tutorial/03_static_file_list.md +0 -44
- data/doc/tutorial/04_arrow_navigation.md +0 -47
- data/doc/tutorial/05_real_files.md +0 -45
- data/doc/tutorial/06_safe_refactoring.md +0 -21
- data/doc/tutorial/07_red_first_tdd.md +0 -26
- data/doc/tutorial/08_file_metadata.md +0 -42
- data/doc/tutorial/09_text_preview.md +0 -44
- data/doc/tutorial/10_directory_tree.md +0 -42
- data/doc/tutorial/11_pane_focus.md +0 -40
- data/doc/tutorial/12_sorting.md +0 -41
- data/doc/tutorial/13_filtering.md +0 -43
- data/doc/tutorial/14_toggle_hidden.md +0 -41
- data/doc/tutorial/15_text_input_widget.md +0 -43
- data/doc/tutorial/16_rename_files.md +0 -42
- data/doc/tutorial/17_confirmation_dialogs.md +0 -43
- data/doc/tutorial/18_progress_indicators.md +0 -43
- data/doc/tutorial/19_atomic_operations.md +0 -42
- data/doc/tutorial/20_external_editor.md +0 -42
- data/doc/tutorial/21_modal_overlays.md +0 -41
- data/doc/tutorial/22_error_handling.md +0 -43
- data/doc/tutorial/23_terminal_capabilities.md +0 -53
- data/doc/tutorial/24_mouse_events.md +0 -43
- data/doc/tutorial/25_resize_events.md +0 -43
- data/doc/tutorial/26_loading_states.md +0 -42
- data/doc/tutorial/27_performance.md +0 -43
- data/doc/tutorial/28_color_schemes.md +0 -47
- data/doc/tutorial/29_configuration.md +0 -124
- data/doc/tutorial/30_going_further.md +0 -17
- data/doc/tutorial/index.md +0 -17
- data/examples/app_fractal_dashboard/README.md +0 -60
- data/examples/app_fractal_dashboard/app.rb +0 -63
- data/examples/app_fractal_dashboard/dashboard/base.rb +0 -73
- data/examples/app_fractal_dashboard/dashboard/update_helpers.rb +0 -86
- data/examples/app_fractal_dashboard/dashboard/update_manual.rb +0 -87
- data/examples/app_fractal_dashboard/dashboard/update_router.rb +0 -43
- data/examples/app_fractal_dashboard/fragments/custom_shell_input.rb +0 -81
- data/examples/app_fractal_dashboard/fragments/custom_shell_modal.rb +0 -82
- data/examples/app_fractal_dashboard/fragments/custom_shell_output.rb +0 -90
- data/examples/app_fractal_dashboard/fragments/disk_usage.rb +0 -47
- data/examples/app_fractal_dashboard/fragments/network_panel.rb +0 -45
- data/examples/app_fractal_dashboard/fragments/ping.rb +0 -47
- data/examples/app_fractal_dashboard/fragments/stats_panel.rb +0 -45
- data/examples/app_fractal_dashboard/fragments/system_info.rb +0 -47
- data/examples/app_fractal_dashboard/fragments/uptime.rb +0 -47
- data/examples/tutorial/01/app.rb +0 -50
- data/examples/tutorial/02/app.rb +0 -64
- data/examples/tutorial/03/app.rb +0 -91
- data/examples/tutorial/06_safe_refactoring/app.rb +0 -124
- data/examples/verify_readme_usage/README.md +0 -54
- data/examples/verify_readme_usage/app.rb +0 -47
- data/examples/verify_website_first_app/app.rb +0 -85
- data/examples/verify_website_hello_mvu/app.rb +0 -31
- data/examples/widget_command_system/README.md +0 -70
- data/examples/widget_command_system/app.rb +0 -134
- data/generate_tutorial_stubs.rb +0 -126
- data/mise.toml +0 -8
- data/rbs_collection.lock.yaml +0 -108
- data/rbs_collection.yaml +0 -15
- data/tasks/example_viewer.html.erb +0 -172
- data/tasks/install.rake +0 -29
- data/tasks/resources/build.yml.erb +0 -55
- data/tasks/resources/index.html.erb +0 -44
- data/tasks/resources/rubies.yml +0 -7
- data/tasks/steep.rake +0 -11
- /data/{vendor/goodcop/base.yml → lib/rooibos/rubocop.yml} +0 -0
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rooibos
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.7.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Kerrick Long
|
|
@@ -15,14 +15,14 @@ dependencies:
|
|
|
15
15
|
requirements:
|
|
16
16
|
- - "~>"
|
|
17
17
|
- !ruby/object:Gem::Version
|
|
18
|
-
version: '1.
|
|
18
|
+
version: '1.4'
|
|
19
19
|
type: :runtime
|
|
20
20
|
prerelease: false
|
|
21
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
22
22
|
requirements:
|
|
23
23
|
- - "~>"
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
|
-
version: '1.
|
|
25
|
+
version: '1.4'
|
|
26
26
|
- !ruby/object:Gem::Dependency
|
|
27
27
|
name: concurrent-ruby
|
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -51,6 +51,20 @@ dependencies:
|
|
|
51
51
|
- - "~>"
|
|
52
52
|
- !ruby/object:Gem::Version
|
|
53
53
|
version: '0.7'
|
|
54
|
+
- !ruby/object:Gem::Dependency
|
|
55
|
+
name: ostruct
|
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
|
57
|
+
requirements:
|
|
58
|
+
- - "~>"
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: '0.6'
|
|
61
|
+
type: :runtime
|
|
62
|
+
prerelease: false
|
|
63
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
64
|
+
requirements:
|
|
65
|
+
- - "~>"
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: '0.6'
|
|
54
68
|
- !ruby/object:Gem::Dependency
|
|
55
69
|
name: rdoc
|
|
56
70
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -83,16 +97,44 @@ dependencies:
|
|
|
83
97
|
name: minitest-mock
|
|
84
98
|
requirement: !ruby/object:Gem::Requirement
|
|
85
99
|
requirements:
|
|
86
|
-
- - "
|
|
100
|
+
- - ">="
|
|
87
101
|
- !ruby/object:Gem::Version
|
|
88
|
-
version: '
|
|
102
|
+
version: '0'
|
|
89
103
|
type: :development
|
|
90
104
|
prerelease: false
|
|
91
105
|
version_requirements: !ruby/object:Gem::Requirement
|
|
92
106
|
requirements:
|
|
93
|
-
- - "
|
|
107
|
+
- - ">="
|
|
108
|
+
- !ruby/object:Gem::Version
|
|
109
|
+
version: '0'
|
|
110
|
+
- !ruby/object:Gem::Dependency
|
|
111
|
+
name: steep
|
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
|
113
|
+
requirements:
|
|
114
|
+
- - ">="
|
|
115
|
+
- !ruby/object:Gem::Version
|
|
116
|
+
version: '0'
|
|
117
|
+
type: :development
|
|
118
|
+
prerelease: false
|
|
119
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
120
|
+
requirements:
|
|
121
|
+
- - ">="
|
|
122
|
+
- !ruby/object:Gem::Version
|
|
123
|
+
version: '0'
|
|
124
|
+
- !ruby/object:Gem::Dependency
|
|
125
|
+
name: debug
|
|
126
|
+
requirement: !ruby/object:Gem::Requirement
|
|
127
|
+
requirements:
|
|
128
|
+
- - ">="
|
|
129
|
+
- !ruby/object:Gem::Version
|
|
130
|
+
version: '1.0'
|
|
131
|
+
type: :development
|
|
132
|
+
prerelease: false
|
|
133
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
134
|
+
requirements:
|
|
135
|
+
- - ">="
|
|
94
136
|
- !ruby/object:Gem::Version
|
|
95
|
-
version: '
|
|
137
|
+
version: '1.0'
|
|
96
138
|
description: "== Confidently Build Terminal Apps\n\nRooibos[https://rooibos.run] helps
|
|
97
139
|
you build interactive terminal applications.\nKeep your code understandable and
|
|
98
140
|
testable as it scales. Rooibos handles\nkeyboard, mouse, and async work so you can
|
|
@@ -167,15 +209,15 @@ description: "== Confidently Build Terminal Apps\n\nRooibos[https://rooibos.run]
|
|
|
167
209
|
= -> (message, model) {\n case message\n in { type: :timer, envelope: :tick,
|
|
168
210
|
elapsed: }\n [model.with(frame: model.frame + 1), Rooibos::Command.wait(1.0
|
|
169
211
|
/ 24, :tick)]\n end\n }\n\n<b>And more!</b> \\Rooibos includes <tt>all</tt>,
|
|
170
|
-
<tt>batch</tt>, <tt>
|
|
171
|
-
<tt>
|
|
172
|
-
commands. You can also define
|
|
173
|
-
\n\nEvery command produces a message, and Update handles it the same
|
|
174
|
-
Testing\n\n\\Rooibos makes TUIs so easy to test, you'll save more time
|
|
175
|
-
tests than\nby not testing.\n\n<b>Unit test Update, View, and Init.</b>
|
|
176
|
-
needed. Test helpers included.\n\n def test_moves_selection_down_with_j\n
|
|
177
|
-
= Ractor.make_shareable(FileBrowser::Model.new(\n path: \"/\", entries:
|
|
178
|
-
exe lib], selected: \"bin\", error: nil))\n message = RatatuiRuby::Event::Key.new(code:
|
|
212
|
+
<tt>batch</tt>, <tt>bubble</tt>,\n<tt>cancel</tt>, <tt>custom</tt>, <tt>deliver</tt>,
|
|
213
|
+
<tt>exit</tt>,\n<tt>http</tt>, <tt>map</tt>, <tt>open</tt>, <tt>system</tt>, <tt>tick</tt>,\nand
|
|
214
|
+
<tt>wait</tt> commands. You can also define your own custom commands\nfor complex
|
|
215
|
+
orchestration. \n\nEvery command produces a message, and Update handles it the same
|
|
216
|
+
way.\n\n==== Testing\n\n\\Rooibos makes TUIs so easy to test, you'll save more time
|
|
217
|
+
by writing tests than\nby not testing.\n\n<b>Unit test Update, View, and Init.</b>
|
|
218
|
+
No terminal needed. Test helpers included.\n\n def test_moves_selection_down_with_j\n
|
|
219
|
+
\ model = Ractor.make_shareable(FileBrowser::Model.new(\n path: \"/\", entries:
|
|
220
|
+
%w[bin exe lib], selected: \"bin\", error: nil))\n message = RatatuiRuby::Event::Key.new(code:
|
|
179
221
|
\"j\")\n\n result = FileBrowser::Update.call(message, model)\n\n assert_equal
|
|
180
222
|
\"exe\", result.selected\n end\n\n<b>Style assertions.</b> Draw to a headless terminal,
|
|
181
223
|
verify colors and modifiers.\n\n def test_directories_are_blue\n with_test_terminal(60,
|
|
@@ -201,193 +243,61 @@ description: "== Confidently Build Terminal Apps\n\nRooibos[https://rooibos.run]
|
|
|
201
243
|
fragment has its own Model,\nView, Update, and Init. Parents compose children. The
|
|
202
244
|
pattern scales.\n\nThe Router DSL eliminates boilerplate:\n\n module Dashboard\n
|
|
203
245
|
\ include Rooibos::Router\n\n route :stats, to: StatsPanel\n route :network,
|
|
204
|
-
to: NetworkPanel\n\n
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
below\n end\n\nDeclare routes and
|
|
209
|
-
|
|
210
|
-
scaffolds projects and runs applications.\n\n
|
|
211
|
-
project structure\n rooibos run #
|
|
212
|
-
apps include tests, type signatures,
|
|
213
|
-
and mouse support.\n\n\n---\n\n=== The
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
Rooibos
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
246
|
+
to: NetworkPanel\n\n receive_events :ctrl_c, -> { Rooibos::Command.exit }\n\n
|
|
247
|
+
\ only when: -> (_message, model) { !model.modal_open } do\n receive_events
|
|
248
|
+
:q, -> { Rooibos::Command.exit }\n forward_events :s, to: :stats, as: :fetch\n
|
|
249
|
+
\ forward_events :p, to: :network, as: :ping\n end\n\n Update = from_router\n\n
|
|
250
|
+
\ # ... Model, Init, View below\n end\n\nDeclare routes and event handlers. The
|
|
251
|
+
router generates Update for you. Use\nguards to ignore messages when needed.\n\n====
|
|
252
|
+
CLI\n\nThe <tt>rooibos</tt> command scaffolds projects and runs applications.\n\n
|
|
253
|
+
\ rooibos new my_app # Generate project structure\n rooibos run #
|
|
254
|
+
Run the app in current directory\n\nGenerated apps include tests, type signatures,
|
|
255
|
+
and a working welcome\nscreen with keyboard and mouse support.\n\n\n---\n\n=== The
|
|
256
|
+
Ecosystem\n\n\\Rooibos builds on RatatuiRuby[https://www.ratatui-ruby.dev], a Rubygem
|
|
257
|
+
built on\nRatatui[https://ratatui.rs]. You get native performance with the joy of
|
|
258
|
+
Ruby.\n\\Rooibos is one way to manage state and composition. Kit is another.\n\n====
|
|
259
|
+
Rooibos[https://www.rooibos.run]\n\nModel-View-Update architecture. Inspired by
|
|
260
|
+
Elm, Bubble Tea, and React +\nRedux. Your UI is a pure function of state.\n\n- Functional
|
|
261
|
+
programming with MVU\n- Commands work off the main thread\n- Messages, not callbacks,
|
|
262
|
+
drive updates\n\n==== {Kit}[https://sr.ht/~kerrick/ratatui_ruby/#chapter-3-the-object-path--kit]
|
|
220
263
|
(Coming Soon)\n\nComponent-based architecture. Encapsulate state, input handling,
|
|
221
264
|
and\nrendering in reusable pieces.\n\n- OOP with stateful components\n- Separate
|
|
222
265
|
UI state from domain logic\n- Built-in focus management & click handling\n\nBoth
|
|
223
266
|
use the same widget library and rendering engine. Pick the paradigm\nthat fits your
|
|
224
|
-
brain.\n\n\n---\n\n=== Links\n\n[Get Started]\n {Getting Started}[https://
|
|
225
|
-
\ {Tutorial}[https://
|
|
226
|
-
\
|
|
227
|
-
|
|
228
|
-
\ {
|
|
229
|
-
\
|
|
230
|
-
|
|
231
|
-
\ {
|
|
232
|
-
\ {
|
|
233
|
-
\ {
|
|
234
|
-
\ {
|
|
235
|
-
\ {
|
|
236
|
-
\
|
|
237
|
-
https://rooibos.run\n[Source] https://git.sr.ht/~kerrick/rooibos\n[RubyGems] https://rubygems.org/gems/rooibos\n\n©
|
|
267
|
+
brain.\n\n\n---\n\n=== Links\n\n[Get Started]\n {Getting Started}[https://www.rooibos.run/docs/trunk/doc/getting_started/index_md.html],\n
|
|
268
|
+
\ {Tutorial}[https://www.rooibos.run/docs/trunk/doc/tutorial/index_md.html],\n {Examples}[https://www.rooibos.run/docs/trunk/examples/app_fractal_dashboard/README_md.html]\n\n[Coming
|
|
269
|
+
From...]\n {React/Redux}[https://www.rooibos.run/docs/trunk/doc/getting_started/for_react_developers_md.html],\n
|
|
270
|
+
\ {BubbleTea}[https://www.rooibos.run/docs/trunk/doc/getting_started/for_go_developers_md.html],\n
|
|
271
|
+
\ {Textual}[https://www.rooibos.run/docs/trunk/doc/getting_started/for_python_developers_md.html]\n\n[Learn
|
|
272
|
+
More]\n {Essentials}[https://www.rooibos.run/docs/trunk/doc/essentials/index_md.html],\n
|
|
273
|
+
\ {Scaling Up}[https://www.rooibos.run/docs/trunk/doc/scaling_up/index_md.html],\n
|
|
274
|
+
\ {Best Practices}[https://www.rooibos.run/docs/trunk/doc/best_practices/index_md.html],\n
|
|
275
|
+
\ {Troubleshooting}[https://www.rooibos.run/docs/trunk/doc/troubleshooting/index_md.html]\n\n[Community]\n
|
|
276
|
+
\ {Forum}[https://forum.setdef.com/c/rooibos],\n {Announcements}[https://forum.setdef.com/tags/c/rooibos/announcement],\n
|
|
277
|
+
\ {Bug Tracker}[https://forum.setdef.com/tags/c/rooibos/bug],\n {Contribution Guide}[https://github.com/setdef/Rooibos/blob/trunk/CONTRIBUTING.md],\n
|
|
278
|
+
\ {Code of Conduct}[https://github.com/setdef/Rooibos/blob/trunk/CODE_OF_CONDUCT.md]\n\n\n---\n\n[Website]
|
|
279
|
+
https://rooibos.run\n[Source] https://github.com/setdef/Rooibos\n[RubyGems] https://rubygems.org/gems/rooibos\n\n©
|
|
238
280
|
2026 Kerrick Long · Library: LGPL-3.0-or-later · Website: CC-BY-NC-ND-4.0 · Snippets:
|
|
239
281
|
MIT-0\n"
|
|
240
282
|
email:
|
|
241
283
|
- me@kerricklong.com
|
|
242
284
|
executables:
|
|
285
|
+
- ".gitkeep"
|
|
243
286
|
- rooibos
|
|
244
287
|
extensions: []
|
|
245
288
|
extra_rdoc_files: []
|
|
246
289
|
files:
|
|
247
|
-
- ".builds/ruby-3.2.yml"
|
|
248
|
-
- ".builds/ruby-3.3.yml"
|
|
249
|
-
- ".builds/ruby-3.4.yml"
|
|
250
|
-
- ".builds/ruby-4.0.0.yml"
|
|
251
|
-
- ".pre-commit-config.yaml"
|
|
252
|
-
- ".rubocop.yml"
|
|
253
|
-
- AGENTS.md
|
|
254
|
-
- CHANGELOG.md
|
|
255
290
|
- LICENSE
|
|
256
291
|
- LICENSES/AGPL-3.0-or-later.txt
|
|
292
|
+
- LICENSES/BSD-2-Clause.txt
|
|
257
293
|
- LICENSES/CC-BY-SA-4.0.txt
|
|
258
294
|
- LICENSES/CC0-1.0.txt
|
|
259
295
|
- LICENSES/LGPL-3.0-or-later.txt
|
|
260
296
|
- LICENSES/MIT-0.txt
|
|
261
297
|
- LICENSES/MIT.txt
|
|
262
|
-
- README.md
|
|
263
|
-
- README.rdoc
|
|
264
298
|
- REUSE.toml
|
|
265
|
-
-
|
|
266
|
-
- Steepfile
|
|
267
|
-
- doc/best_practices/forms_and_validation.md
|
|
268
|
-
- doc/best_practices/http_workflows.md
|
|
269
|
-
- doc/best_practices/index.md
|
|
270
|
-
- doc/best_practices/lists_and_tables.md
|
|
271
|
-
- doc/best_practices/modal_dialogs.md
|
|
272
|
-
- doc/best_practices/no_stateful_widgets.md
|
|
273
|
-
- doc/best_practices/orchestration.md
|
|
274
|
-
- doc/best_practices/streaming_data.md
|
|
275
|
-
- doc/contributors/design/commands_and_outlets.md
|
|
276
|
-
- doc/contributors/design/mvu_tea_implementations_research.md
|
|
277
|
-
- doc/contributors/documentation_plan.md
|
|
278
|
-
- doc/contributors/documentation_stub_audit.md
|
|
279
|
-
- doc/contributors/documentation_style.md
|
|
280
|
-
- doc/contributors/e2e_pty.md
|
|
281
|
-
- doc/contributors/maybe_stateful_router.md
|
|
282
|
-
- doc/contributors/specs/earliest_tutorial_steps_per_story.md
|
|
283
|
-
- doc/contributors/specs/file_browser.md
|
|
284
|
-
- doc/contributors/specs/file_browser_stories.md
|
|
285
|
-
- doc/contributors/specs/tutorials_to_stories.rb
|
|
286
|
-
- doc/contributors/todo/scrollbar.md
|
|
287
|
-
- doc/contributors/tutorial_old/01_project_setup.md
|
|
288
|
-
- doc/contributors/tutorial_old/02_hello_world.md
|
|
289
|
-
- doc/contributors/tutorial_old/03_adding_state.md
|
|
290
|
-
- doc/contributors/tutorial_old/06_organizing_your_code.md
|
|
291
|
-
- doc/contributors/tutorial_old/07_your_first_command.md
|
|
292
|
-
- doc/contributors/tutorial_old/08_the_preview_pane.md
|
|
293
|
-
- doc/contributors/tutorial_old/09_loading_states.md
|
|
294
|
-
- doc/contributors/tutorial_old/10_testing_your_app.md
|
|
295
|
-
- doc/contributors/tutorial_old/11_polish_and_refine.md
|
|
296
|
-
- doc/contributors/tutorial_old/12_going_further.md
|
|
297
|
-
- doc/contributors/tutorial_old/index.md
|
|
298
|
-
- doc/custom.css
|
|
299
|
-
- doc/essentials/commands.md
|
|
300
|
-
- doc/essentials/index.md
|
|
301
|
-
- doc/essentials/messages.md
|
|
302
|
-
- doc/essentials/models.md
|
|
303
|
-
- doc/essentials/shortcuts.md
|
|
304
|
-
- doc/essentials/the_elm_architecture.md
|
|
305
|
-
- doc/essentials/the_runtime.md
|
|
306
|
-
- doc/essentials/update_functions.md
|
|
307
|
-
- doc/essentials/views.md
|
|
308
|
-
- doc/getting_started/for_go_developers.md
|
|
309
|
-
- doc/getting_started/for_python_developers.md
|
|
310
|
-
- doc/getting_started/for_rails_developers.md
|
|
311
|
-
- doc/getting_started/for_ratatui_ruby_developers.md
|
|
312
|
-
- doc/getting_started/for_react_developers.md
|
|
313
|
-
- doc/getting_started/index.md
|
|
314
|
-
- doc/getting_started/install.md
|
|
315
|
-
- doc/getting_started/quickstart.md
|
|
316
|
-
- doc/getting_started/ruby_primer.md
|
|
317
|
-
- doc/getting_started/why_rooibos.md
|
|
318
|
-
- doc/images/verify_readme_usage.png
|
|
319
|
-
- doc/images/widget_cmd_exec.png
|
|
320
|
-
- doc/index.md
|
|
321
|
-
- doc/scaling_up/async_patterns.md
|
|
322
|
-
- doc/scaling_up/command_composition.md
|
|
323
|
-
- doc/scaling_up/custom_commands.md
|
|
324
|
-
- doc/scaling_up/fractal_architecture.md
|
|
325
|
-
- doc/scaling_up/index.md
|
|
326
|
-
- doc/scaling_up/message_routing.md
|
|
327
|
-
- doc/scaling_up/ractor_safety.md
|
|
328
|
-
- doc/scaling_up/testing.md
|
|
329
|
-
- doc/troubleshooting/common_errors.md
|
|
330
|
-
- doc/troubleshooting/debugging.md
|
|
331
|
-
- doc/troubleshooting/index.md
|
|
332
|
-
- doc/troubleshooting/performance.md
|
|
333
|
-
- doc/tutorial/01_project_setup.md
|
|
334
|
-
- doc/tutorial/02_hello_world.md
|
|
335
|
-
- doc/tutorial/03_static_file_list.md
|
|
336
|
-
- doc/tutorial/04_arrow_navigation.md
|
|
337
|
-
- doc/tutorial/05_real_files.md
|
|
338
|
-
- doc/tutorial/06_safe_refactoring.md
|
|
339
|
-
- doc/tutorial/07_red_first_tdd.md
|
|
340
|
-
- doc/tutorial/08_file_metadata.md
|
|
341
|
-
- doc/tutorial/09_text_preview.md
|
|
342
|
-
- doc/tutorial/10_directory_tree.md
|
|
343
|
-
- doc/tutorial/11_pane_focus.md
|
|
344
|
-
- doc/tutorial/12_sorting.md
|
|
345
|
-
- doc/tutorial/13_filtering.md
|
|
346
|
-
- doc/tutorial/14_toggle_hidden.md
|
|
347
|
-
- doc/tutorial/15_text_input_widget.md
|
|
348
|
-
- doc/tutorial/16_rename_files.md
|
|
349
|
-
- doc/tutorial/17_confirmation_dialogs.md
|
|
350
|
-
- doc/tutorial/18_progress_indicators.md
|
|
351
|
-
- doc/tutorial/19_atomic_operations.md
|
|
352
|
-
- doc/tutorial/20_external_editor.md
|
|
353
|
-
- doc/tutorial/21_modal_overlays.md
|
|
354
|
-
- doc/tutorial/22_error_handling.md
|
|
355
|
-
- doc/tutorial/23_terminal_capabilities.md
|
|
356
|
-
- doc/tutorial/24_mouse_events.md
|
|
357
|
-
- doc/tutorial/25_resize_events.md
|
|
358
|
-
- doc/tutorial/26_loading_states.md
|
|
359
|
-
- doc/tutorial/27_performance.md
|
|
360
|
-
- doc/tutorial/28_color_schemes.md
|
|
361
|
-
- doc/tutorial/29_configuration.md
|
|
362
|
-
- doc/tutorial/30_going_further.md
|
|
363
|
-
- doc/tutorial/index.md
|
|
364
|
-
- examples/app_fractal_dashboard/README.md
|
|
365
|
-
- examples/app_fractal_dashboard/app.rb
|
|
366
|
-
- examples/app_fractal_dashboard/dashboard/base.rb
|
|
367
|
-
- examples/app_fractal_dashboard/dashboard/update_helpers.rb
|
|
368
|
-
- examples/app_fractal_dashboard/dashboard/update_manual.rb
|
|
369
|
-
- examples/app_fractal_dashboard/dashboard/update_router.rb
|
|
370
|
-
- examples/app_fractal_dashboard/fragments/custom_shell_input.rb
|
|
371
|
-
- examples/app_fractal_dashboard/fragments/custom_shell_modal.rb
|
|
372
|
-
- examples/app_fractal_dashboard/fragments/custom_shell_output.rb
|
|
373
|
-
- examples/app_fractal_dashboard/fragments/disk_usage.rb
|
|
374
|
-
- examples/app_fractal_dashboard/fragments/network_panel.rb
|
|
375
|
-
- examples/app_fractal_dashboard/fragments/ping.rb
|
|
376
|
-
- examples/app_fractal_dashboard/fragments/stats_panel.rb
|
|
377
|
-
- examples/app_fractal_dashboard/fragments/system_info.rb
|
|
378
|
-
- examples/app_fractal_dashboard/fragments/uptime.rb
|
|
379
|
-
- examples/tutorial/01/app.rb
|
|
380
|
-
- examples/tutorial/02/app.rb
|
|
381
|
-
- examples/tutorial/03/app.rb
|
|
382
|
-
- examples/tutorial/06_safe_refactoring/app.rb
|
|
383
|
-
- examples/verify_readme_usage/README.md
|
|
384
|
-
- examples/verify_readme_usage/app.rb
|
|
385
|
-
- examples/verify_website_first_app/app.rb
|
|
386
|
-
- examples/verify_website_hello_mvu/app.rb
|
|
387
|
-
- examples/widget_command_system/README.md
|
|
388
|
-
- examples/widget_command_system/app.rb
|
|
299
|
+
- exe/.gitkeep
|
|
389
300
|
- exe/rooibos
|
|
390
|
-
- generate_tutorial_stubs.rb
|
|
391
301
|
- lib/rooibos.rb
|
|
392
302
|
- lib/rooibos/cli.rb
|
|
393
303
|
- lib/rooibos/cli/commands/new.rb
|
|
@@ -395,16 +305,20 @@ files:
|
|
|
395
305
|
- lib/rooibos/command.rb
|
|
396
306
|
- lib/rooibos/command/all.rb
|
|
397
307
|
- lib/rooibos/command/batch.rb
|
|
308
|
+
- lib/rooibos/command/bubble.rb
|
|
398
309
|
- lib/rooibos/command/custom.rb
|
|
310
|
+
- lib/rooibos/command/deliver.rb
|
|
399
311
|
- lib/rooibos/command/http.rb
|
|
400
312
|
- lib/rooibos/command/lifecycle.rb
|
|
401
313
|
- lib/rooibos/command/open.rb
|
|
402
314
|
- lib/rooibos/command/outlet.rb
|
|
403
315
|
- lib/rooibos/command/wait.rb
|
|
316
|
+
- lib/rooibos/configuration.rb
|
|
404
317
|
- lib/rooibos/error.rb
|
|
405
318
|
- lib/rooibos/message.rb
|
|
406
319
|
- lib/rooibos/message/all.rb
|
|
407
320
|
- lib/rooibos/message/batch.rb
|
|
321
|
+
- lib/rooibos/message/bubbled.rb
|
|
408
322
|
- lib/rooibos/message/canceled.rb
|
|
409
323
|
- lib/rooibos/message/error.rb
|
|
410
324
|
- lib/rooibos/message/http_response.rb
|
|
@@ -414,14 +328,33 @@ files:
|
|
|
414
328
|
- lib/rooibos/message/system/stream.rb
|
|
415
329
|
- lib/rooibos/message/timer.rb
|
|
416
330
|
- lib/rooibos/router.rb
|
|
331
|
+
- lib/rooibos/router/action.rb
|
|
332
|
+
- lib/rooibos/router/flow/dispatch.rb
|
|
333
|
+
- lib/rooibos/router/flow/inward.rb
|
|
334
|
+
- lib/rooibos/router/flow/outward.rb
|
|
335
|
+
- lib/rooibos/router/guard.rb
|
|
336
|
+
- lib/rooibos/router/predicate.rb
|
|
337
|
+
- lib/rooibos/router/registry.rb
|
|
338
|
+
- lib/rooibos/router/registry/actions.rb
|
|
339
|
+
- lib/rooibos/router/registry/forwards.rb
|
|
340
|
+
- lib/rooibos/router/registry/observes.rb
|
|
341
|
+
- lib/rooibos/router/registry/otherwises.rb
|
|
342
|
+
- lib/rooibos/router/registry/receives.rb
|
|
343
|
+
- lib/rooibos/router/registry/routes.rb
|
|
344
|
+
- lib/rooibos/router/route.rb
|
|
345
|
+
- lib/rooibos/router/router_update.rb
|
|
346
|
+
- lib/rooibos/router/rule.rb
|
|
347
|
+
- lib/rooibos/router/rule/forward.rb
|
|
348
|
+
- lib/rooibos/router/rule/observe.rb
|
|
349
|
+
- lib/rooibos/router/rule/otherwise.rb
|
|
350
|
+
- lib/rooibos/router/rule/receive.rb
|
|
351
|
+
- lib/rooibos/rubocop.yml
|
|
417
352
|
- lib/rooibos/runtime.rb
|
|
418
353
|
- lib/rooibos/shortcuts.rb
|
|
419
354
|
- lib/rooibos/test_helper.rb
|
|
355
|
+
- lib/rooibos/transition.rb
|
|
420
356
|
- lib/rooibos/version.rb
|
|
421
357
|
- lib/rooibos/welcome.rb
|
|
422
|
-
- mise.toml
|
|
423
|
-
- rbs_collection.lock.yaml
|
|
424
|
-
- rbs_collection.yaml
|
|
425
358
|
- sig/concurrent.rbs
|
|
426
359
|
- sig/examples/verify_readme_usage/app.rbs
|
|
427
360
|
- sig/examples/widget_command_system/app.rbs
|
|
@@ -430,34 +363,47 @@ files:
|
|
|
430
363
|
- sig/rooibos.rbs
|
|
431
364
|
- sig/rooibos/cli.rbs
|
|
432
365
|
- sig/rooibos/command.rbs
|
|
366
|
+
- sig/rooibos/configuration.rbs
|
|
433
367
|
- sig/rooibos/error.rbs
|
|
434
368
|
- sig/rooibos/message.rbs
|
|
435
369
|
- sig/rooibos/router.rbs
|
|
370
|
+
- sig/rooibos/router/action.rbs
|
|
371
|
+
- sig/rooibos/router/actions.rbs
|
|
372
|
+
- sig/rooibos/router/flow/dispatch.rbs
|
|
373
|
+
- sig/rooibos/router/flow/inward.rbs
|
|
374
|
+
- sig/rooibos/router/flow/outward.rbs
|
|
375
|
+
- sig/rooibos/router/forward.rbs
|
|
376
|
+
- sig/rooibos/router/forwards.rbs
|
|
377
|
+
- sig/rooibos/router/guard.rbs
|
|
378
|
+
- sig/rooibos/router/observe.rbs
|
|
379
|
+
- sig/rooibos/router/observes.rbs
|
|
380
|
+
- sig/rooibos/router/otherwise.rbs
|
|
381
|
+
- sig/rooibos/router/otherwises.rbs
|
|
382
|
+
- sig/rooibos/router/predicate.rbs
|
|
383
|
+
- sig/rooibos/router/receive.rbs
|
|
384
|
+
- sig/rooibos/router/receives.rbs
|
|
385
|
+
- sig/rooibos/router/registry.rbs
|
|
386
|
+
- sig/rooibos/router/route.rbs
|
|
387
|
+
- sig/rooibos/router/router_update.rbs
|
|
388
|
+
- sig/rooibos/router/routes.rbs
|
|
389
|
+
- sig/rooibos/router/rule.rbs
|
|
436
390
|
- sig/rooibos/runtime.rbs
|
|
437
391
|
- sig/rooibos/shortcuts.rbs
|
|
438
392
|
- sig/rooibos/test_helper.rbs
|
|
393
|
+
- sig/rooibos/transition.rbs
|
|
439
394
|
- sig/rooibos/version.rbs
|
|
440
395
|
- sig/rooibos/welcome.rbs
|
|
441
|
-
- tasks/example_viewer.html.erb
|
|
442
|
-
- tasks/install.rake
|
|
443
|
-
- tasks/resources/build.yml.erb
|
|
444
|
-
- tasks/resources/index.html.erb
|
|
445
|
-
- tasks/resources/rubies.yml
|
|
446
|
-
- tasks/steep.rake
|
|
447
|
-
- vendor/goodcop/base.yml
|
|
448
396
|
homepage: https://rooibos.run
|
|
449
397
|
licenses:
|
|
450
398
|
- LGPL-3.0-or-later
|
|
451
399
|
metadata:
|
|
452
400
|
allowed_push_host: https://rubygems.org
|
|
453
401
|
homepage_uri: https://rooibos.run
|
|
454
|
-
bug_tracker_uri: https://
|
|
455
|
-
mailing_list_uri: https://
|
|
456
|
-
source_code_uri: https://
|
|
457
|
-
changelog_uri: https://
|
|
458
|
-
documentation_uri: https://
|
|
459
|
-
wiki_uri: https://man.sr.ht/~kerrick/ratatui_ruby/
|
|
460
|
-
funding_uri: https://opencollective.com/ratatui
|
|
402
|
+
bug_tracker_uri: https://forum.setdef.com/tags/c/rooibos/bug
|
|
403
|
+
mailing_list_uri: https://forum.setdef.com/c/rooibos
|
|
404
|
+
source_code_uri: https://github.com/setdef/Rooibos
|
|
405
|
+
changelog_uri: https://rooibos.run/docs/trunk/CHANGELOG_md.html
|
|
406
|
+
documentation_uri: https://rooibos.run/docs/
|
|
461
407
|
rubygems_mfa_required: 'true'
|
|
462
408
|
rdoc_options: []
|
|
463
409
|
require_paths:
|
data/.builds/ruby-3.2.yml
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
# SPDX-FileCopyrightText: 2026 Kerrick Long <me@kerricklong.com>
|
|
2
|
-
# SPDX-License-Identifier: LGPL-3.0-or-later
|
|
3
|
-
|
|
4
|
-
image: archlinux
|
|
5
|
-
packages:
|
|
6
|
-
- bash
|
|
7
|
-
- base-devel
|
|
8
|
-
- curl
|
|
9
|
-
- openssl
|
|
10
|
-
- libyaml
|
|
11
|
-
- zlib
|
|
12
|
-
- readline
|
|
13
|
-
- gdbm
|
|
14
|
-
- ncurses
|
|
15
|
-
- libffi
|
|
16
|
-
- clang
|
|
17
|
-
- git
|
|
18
|
-
artifacts:
|
|
19
|
-
- rooibos/pkg/rooibos-0.6.2.gem
|
|
20
|
-
sources:
|
|
21
|
-
- https://git.sr.ht/~kerrick/rooibos
|
|
22
|
-
tasks:
|
|
23
|
-
- setup: |
|
|
24
|
-
curl https://mise.jdx.dev/install.sh | sh
|
|
25
|
-
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.buildenv
|
|
26
|
-
echo 'eval "$($HOME/.local/bin/mise activate bash)"' >> ~/.buildenv
|
|
27
|
-
echo 'export LANG="en_US.UTF-8"' >> ~/.buildenv
|
|
28
|
-
echo 'export LC_ALL="en_US.UTF-8"' >> ~/.buildenv
|
|
29
|
-
echo 'export BINDGEN_EXTRA_CLANG_ARGS="-include stdbool.h"' >> ~/.buildenv
|
|
30
|
-
. ~/.buildenv
|
|
31
|
-
export CI="true"
|
|
32
|
-
cd rooibos
|
|
33
|
-
sed -i 's/ruby = .*/ruby = "3.2"/' mise.toml
|
|
34
|
-
mise install
|
|
35
|
-
mise x -- pip install reuse
|
|
36
|
-
mise x -- gem install bundler:4.0.3
|
|
37
|
-
mise reshim
|
|
38
|
-
mise x -- bundle config set --local frozen 'true'
|
|
39
|
-
mise x -- bundle install
|
|
40
|
-
- test: |
|
|
41
|
-
. ~/.buildenv
|
|
42
|
-
cd rooibos
|
|
43
|
-
echo "Installing rooibos gem globally for integration tests..."
|
|
44
|
-
mise x -- bundle exec rake install:force
|
|
45
|
-
echo "Testing Ruby 3.2"
|
|
46
|
-
mise x -- bundle exec rake test
|
|
47
|
-
- lint: |
|
|
48
|
-
. ~/.buildenv
|
|
49
|
-
cd rooibos
|
|
50
|
-
echo "Linting Ruby 3.2"
|
|
51
|
-
mise x -- bundle exec rake lint
|
|
52
|
-
- package: |
|
|
53
|
-
. ~/.buildenv
|
|
54
|
-
cd rooibos
|
|
55
|
-
mise x -- bundle exec rake build
|
data/.builds/ruby-3.3.yml
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
# SPDX-FileCopyrightText: 2026 Kerrick Long <me@kerricklong.com>
|
|
2
|
-
# SPDX-License-Identifier: LGPL-3.0-or-later
|
|
3
|
-
|
|
4
|
-
image: archlinux
|
|
5
|
-
packages:
|
|
6
|
-
- bash
|
|
7
|
-
- base-devel
|
|
8
|
-
- curl
|
|
9
|
-
- openssl
|
|
10
|
-
- libyaml
|
|
11
|
-
- zlib
|
|
12
|
-
- readline
|
|
13
|
-
- gdbm
|
|
14
|
-
- ncurses
|
|
15
|
-
- libffi
|
|
16
|
-
- clang
|
|
17
|
-
- git
|
|
18
|
-
artifacts:
|
|
19
|
-
- rooibos/pkg/rooibos-0.6.2.gem
|
|
20
|
-
sources:
|
|
21
|
-
- https://git.sr.ht/~kerrick/rooibos
|
|
22
|
-
tasks:
|
|
23
|
-
- setup: |
|
|
24
|
-
curl https://mise.jdx.dev/install.sh | sh
|
|
25
|
-
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.buildenv
|
|
26
|
-
echo 'eval "$($HOME/.local/bin/mise activate bash)"' >> ~/.buildenv
|
|
27
|
-
echo 'export LANG="en_US.UTF-8"' >> ~/.buildenv
|
|
28
|
-
echo 'export LC_ALL="en_US.UTF-8"' >> ~/.buildenv
|
|
29
|
-
echo 'export BINDGEN_EXTRA_CLANG_ARGS="-include stdbool.h"' >> ~/.buildenv
|
|
30
|
-
. ~/.buildenv
|
|
31
|
-
export CI="true"
|
|
32
|
-
cd rooibos
|
|
33
|
-
sed -i 's/ruby = .*/ruby = "3.3"/' mise.toml
|
|
34
|
-
mise install
|
|
35
|
-
mise x -- pip install reuse
|
|
36
|
-
mise x -- gem install bundler:4.0.3
|
|
37
|
-
mise reshim
|
|
38
|
-
mise x -- bundle config set --local frozen 'true'
|
|
39
|
-
mise x -- bundle install
|
|
40
|
-
- test: |
|
|
41
|
-
. ~/.buildenv
|
|
42
|
-
cd rooibos
|
|
43
|
-
echo "Installing rooibos gem globally for integration tests..."
|
|
44
|
-
mise x -- bundle exec rake install:force
|
|
45
|
-
echo "Testing Ruby 3.3"
|
|
46
|
-
mise x -- bundle exec rake test
|
|
47
|
-
- lint: |
|
|
48
|
-
. ~/.buildenv
|
|
49
|
-
cd rooibos
|
|
50
|
-
echo "Linting Ruby 3.3"
|
|
51
|
-
mise x -- bundle exec rake lint
|
|
52
|
-
- package: |
|
|
53
|
-
. ~/.buildenv
|
|
54
|
-
cd rooibos
|
|
55
|
-
mise x -- bundle exec rake build
|
data/.builds/ruby-3.4.yml
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
# SPDX-FileCopyrightText: 2026 Kerrick Long <me@kerricklong.com>
|
|
2
|
-
# SPDX-License-Identifier: LGPL-3.0-or-later
|
|
3
|
-
|
|
4
|
-
image: archlinux
|
|
5
|
-
packages:
|
|
6
|
-
- bash
|
|
7
|
-
- base-devel
|
|
8
|
-
- curl
|
|
9
|
-
- openssl
|
|
10
|
-
- libyaml
|
|
11
|
-
- zlib
|
|
12
|
-
- readline
|
|
13
|
-
- gdbm
|
|
14
|
-
- ncurses
|
|
15
|
-
- libffi
|
|
16
|
-
- clang
|
|
17
|
-
- git
|
|
18
|
-
artifacts:
|
|
19
|
-
- rooibos/pkg/rooibos-0.6.2.gem
|
|
20
|
-
sources:
|
|
21
|
-
- https://git.sr.ht/~kerrick/rooibos
|
|
22
|
-
tasks:
|
|
23
|
-
- setup: |
|
|
24
|
-
curl https://mise.jdx.dev/install.sh | sh
|
|
25
|
-
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.buildenv
|
|
26
|
-
echo 'eval "$($HOME/.local/bin/mise activate bash)"' >> ~/.buildenv
|
|
27
|
-
echo 'export LANG="en_US.UTF-8"' >> ~/.buildenv
|
|
28
|
-
echo 'export LC_ALL="en_US.UTF-8"' >> ~/.buildenv
|
|
29
|
-
echo 'export BINDGEN_EXTRA_CLANG_ARGS="-include stdbool.h"' >> ~/.buildenv
|
|
30
|
-
. ~/.buildenv
|
|
31
|
-
export CI="true"
|
|
32
|
-
cd rooibos
|
|
33
|
-
sed -i 's/ruby = .*/ruby = "3.4"/' mise.toml
|
|
34
|
-
mise install
|
|
35
|
-
mise x -- pip install reuse
|
|
36
|
-
mise x -- gem install bundler:4.0.3
|
|
37
|
-
mise reshim
|
|
38
|
-
mise x -- bundle config set --local frozen 'true'
|
|
39
|
-
mise x -- bundle install
|
|
40
|
-
- test: |
|
|
41
|
-
. ~/.buildenv
|
|
42
|
-
cd rooibos
|
|
43
|
-
echo "Installing rooibos gem globally for integration tests..."
|
|
44
|
-
mise x -- bundle exec rake install:force
|
|
45
|
-
echo "Testing Ruby 3.4"
|
|
46
|
-
mise x -- bundle exec rake test
|
|
47
|
-
- lint: |
|
|
48
|
-
. ~/.buildenv
|
|
49
|
-
cd rooibos
|
|
50
|
-
echo "Linting Ruby 3.4"
|
|
51
|
-
mise x -- bundle exec rake lint
|
|
52
|
-
- package: |
|
|
53
|
-
. ~/.buildenv
|
|
54
|
-
cd rooibos
|
|
55
|
-
mise x -- bundle exec rake build
|