ratatui_ruby-devtools 0.1.3 → 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/CHANGELOG.md +11 -0
- data/LICENSES/BSD-2-Clause.txt +9 -0
- data/README.md +1 -1
- data/exe/hbs +149 -209
- data/exe/scaffold +169 -282
- data/lib/ratatui_ruby/devtools/tasks/lint.rake +3 -7
- data/lib/ratatui_ruby/devtools/tasks/release/ci_run.rb +44 -0
- data/lib/ratatui_ruby/devtools/tasks/release/github_cli.rb +36 -0
- data/lib/ratatui_ruby/devtools/tasks/release/native_gem_version.rb +70 -0
- data/lib/ratatui_ruby/devtools/tasks/release/platform_gem.rb +63 -0
- data/lib/ratatui_ruby/devtools/tasks/release/versioned_binary.rb +36 -0
- data/lib/ratatui_ruby/devtools/tasks/release.rake +87 -0
- data/lib/ratatui_ruby/devtools/tasks/resources/rubies.yml +1 -1
- data/lib/ratatui_ruby/devtools/templates/.github/workflows/build-gems.yml.erb +124 -0
- data/lib/ratatui_ruby/devtools/templates/.github/workflows/ci.yml.erb +77 -0
- data/lib/ratatui_ruby/devtools/templates/.gitignore.erb +2 -0
- data/lib/ratatui_ruby/devtools/templates/.rubocop.yml.erb +6 -4
- data/lib/ratatui_ruby/devtools/templates/AGENTS.md.erb +101 -28
- data/lib/ratatui_ruby/devtools/templates/CODE_OF_CONDUCT.md.erb +44 -0
- data/lib/ratatui_ruby/devtools/templates/CONTRIBUTING.md.erb +80 -0
- data/lib/ratatui_ruby/devtools/templates/Gemfile.erb +2 -2
- data/lib/ratatui_ruby/devtools/templates/README.md.erb +46 -13
- data/lib/ratatui_ruby/devtools/templates/REUSE.toml.erb +2 -2
- data/lib/ratatui_ruby/devtools/templates/Rakefile.erb +4 -4
- data/lib/ratatui_ruby/devtools/templates/bin/setup.erb +21 -11
- data/lib/ratatui_ruby/devtools/templates/bin/setup.ps1.erb +105 -0
- data/lib/ratatui_ruby/devtools/templates/doc/custom.css.erb +3 -3
- data/lib/ratatui_ruby/devtools/templates/doc/getting_started/quickstart.md.erb +3 -3
- data/lib/ratatui_ruby/devtools/templates/doc/index.md.erb +2 -2
- data/lib/ratatui_ruby/devtools/templates/ext/.cargo/config.toml.erb +15 -0
- data/lib/ratatui_ruby/devtools/templates/ext/.gitignore.erb +6 -0
- data/lib/ratatui_ruby/devtools/templates/ext/Cargo.toml.erb +20 -0
- data/lib/ratatui_ruby/devtools/templates/ext/clippy.toml.erb +9 -0
- data/lib/ratatui_ruby/devtools/templates/ext/extconf.rb.erb +23 -0
- data/lib/ratatui_ruby/devtools/templates/ext/src/lib.rs.erb +13 -0
- data/lib/ratatui_ruby/devtools/templates/gemspec.erb +21 -14
- data/lib/ratatui_ruby/devtools/templates/lib/main.rb.erb +19 -0
- data/lib/ratatui_ruby/devtools/templates/lib/test_helper.rb.erb +26 -0
- data/lib/ratatui_ruby/devtools/templates/lib/version.rb.erb +10 -0
- data/lib/ratatui_ruby/devtools/templates/mise.toml.erb +3 -3
- data/lib/ratatui_ruby/devtools/templates/tasks/example_viewer.html.erb +23 -23
- data/lib/ratatui_ruby/devtools/templates/tasks/resources/index.html.erb +15 -16
- data/lib/ratatui_ruby/devtools/templates/tasks/resources/rubies.yml.erb +5 -6
- data/lib/ratatui_ruby/devtools/templates/test/test_helper.rb.erb +15 -0
- data/lib/ratatui_ruby/devtools/version.rb +1 -1
- data/lib/ratatui_ruby/devtools.rb +2 -2
- metadata +24 -5
- data/lib/ratatui_ruby/devtools/tasks/resources/build.yml.erb +0 -54
- data/lib/ratatui_ruby/devtools/tasks/sourcehut.rake +0 -94
- data/lib/ratatui_ruby/devtools/templates/tasks/resources/build.yml.erb +0 -62
- /data/lib/ratatui_ruby/devtools/templates/{vendor/goodcop/base.yml → lib/rubocop.yml} +0 -0
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
|
|
12
12
|
### Getting Started
|
|
13
13
|
|
|
14
|
-
- [Why RatatuiRuby?](https://
|
|
14
|
+
- [Why RatatuiRuby?](https://www.ratatui-ruby.dev/docs/trunk/doc/getting_started/why_md.html): Philosophy, comparisons, and what makes us different
|
|
15
15
|
- [Quickstart](./getting_started/quickstart.md): Build your first TUI app
|
|
16
16
|
|
|
17
17
|
### Concepts
|
|
@@ -22,4 +22,4 @@
|
|
|
22
22
|
|
|
23
23
|
## Documentation for Contributors
|
|
24
24
|
|
|
25
|
-
- [Contributing Guidelines](
|
|
25
|
+
- [Contributing Guidelines](./CONTRIBUTING.md): How to contribute patches and features
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<%# REUSE-IgnoreStart -%>
|
|
2
|
+
# SPDX-FileCopyrightText: <%= year %> <%= copyright_holder %>
|
|
3
|
+
# SPDX-License-Identifier: <%= license %>
|
|
4
|
+
<%# REUSE-IgnoreEnd -%>
|
|
5
|
+
|
|
6
|
+
[target.aarch64-apple-darwin]
|
|
7
|
+
rustflags = ["-C", "link-arg=-undefined", "-C", "link-arg=dynamic_lookup"]
|
|
8
|
+
|
|
9
|
+
[target.x86_64-apple-darwin]
|
|
10
|
+
rustflags = ["-C", "link-arg=-undefined", "-C", "link-arg=dynamic_lookup"]
|
|
11
|
+
|
|
12
|
+
# Force dynamic linking on Alpine (musl) to fix "Dynamic loading not supported"
|
|
13
|
+
# errors when bindgen tries to load libclang.
|
|
14
|
+
[target.'cfg(target_env = "musl")']
|
|
15
|
+
rustflags = ["-C", "target-feature=-crt-static"]
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<%# REUSE-IgnoreStart -%>
|
|
2
|
+
# SPDX-FileCopyrightText: <%= year %> <%= copyright_holder %>
|
|
3
|
+
# SPDX-License-Identifier: <%= license %>
|
|
4
|
+
<%# REUSE-IgnoreEnd -%>
|
|
5
|
+
|
|
6
|
+
[package]
|
|
7
|
+
name = "<%= ext_name %>"
|
|
8
|
+
version = "0.1.0"
|
|
9
|
+
edition = "2021"
|
|
10
|
+
|
|
11
|
+
[lib]
|
|
12
|
+
crate-type = ["cdylib", "staticlib"]
|
|
13
|
+
|
|
14
|
+
[dependencies]
|
|
15
|
+
magnus = "0.8"
|
|
16
|
+
ratatui = { version = "0.30", features = ["widget-calendar", "layout-cache", "unstable-rendered-line-info"] }
|
|
17
|
+
|
|
18
|
+
# Optional: Arena allocation to avoid Box::leak for long-lived Ruby objects
|
|
19
|
+
# bumpalo = "3.16"
|
|
20
|
+
# lazy_static = "1.4"
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<%# REUSE-IgnoreStart -%>
|
|
2
|
+
# SPDX-FileCopyrightText: <%= year %> <%= copyright_holder %>
|
|
3
|
+
# SPDX-License-Identifier: <%= license %>
|
|
4
|
+
<%# REUSE-IgnoreEnd -%>
|
|
5
|
+
|
|
6
|
+
disallowed-methods = [
|
|
7
|
+
{ path = "std::boxed::Box::leak", reason = "Use bumpalo arena allocation instead." },
|
|
8
|
+
{ path = "std::vec::Vec::leak", reason = "Use bumpalo arena allocation instead." },
|
|
9
|
+
]
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
#--
|
|
4
|
+
<%# REUSE-IgnoreStart -%>
|
|
5
|
+
# SPDX-FileCopyrightText: <%= year %> <%= copyright_holder %>
|
|
6
|
+
# SPDX-License-Identifier: <%= license %>
|
|
7
|
+
<%# REUSE-IgnoreEnd -%>
|
|
8
|
+
#++
|
|
9
|
+
|
|
10
|
+
require "mkmf"
|
|
11
|
+
require "rb_sys/mkmf"
|
|
12
|
+
|
|
13
|
+
create_rust_makefile("<%= ext_name %>/<%= ext_name %>") do |r|
|
|
14
|
+
# Optional: Force release profile if needed
|
|
15
|
+
# r.profile = ENV.fetch("RB_SYS_CARGO_PROFILE", :release).to_sym
|
|
16
|
+
|
|
17
|
+
# Force static linking on musl to avoid "cdylib" issues
|
|
18
|
+
if RbConfig::CONFIG["target_os"].include?("linux-musl") || RbConfig::CONFIG["host_os"].include?("linux-musl")
|
|
19
|
+
r.extra_rustc_args = ["--crate-type", "staticlib"]
|
|
20
|
+
else
|
|
21
|
+
r.extra_rustc_args = ["--crate-type", "cdylib"]
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<%# REUSE-IgnoreStart -%>
|
|
2
|
+
// SPDX-FileCopyrightText: <%= year %> <%= copyright_holder %>
|
|
3
|
+
// SPDX-License-Identifier: <%= license %>
|
|
4
|
+
<%# REUSE-IgnoreEnd -%>
|
|
5
|
+
|
|
6
|
+
use magnus::{define_module, prelude::*, Error};
|
|
7
|
+
|
|
8
|
+
#[magnus::init]
|
|
9
|
+
fn init() -> Result<(), Error> {
|
|
10
|
+
let module = define_module("<%= module_name.split('::').first %>")?;
|
|
11
|
+
// Add your native methods here
|
|
12
|
+
Ok(())
|
|
13
|
+
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
#--
|
|
4
|
+
<%# REUSE-IgnoreStart -%>
|
|
4
5
|
# SPDX-FileCopyrightText: <%= Time.now.year %> <%= copyright_holder %>
|
|
5
|
-
# REUSE-IgnoreStart
|
|
6
6
|
# SPDX-License-Identifier: <%= license %>
|
|
7
|
-
|
|
7
|
+
<%# REUSE-IgnoreEnd -%>
|
|
8
8
|
#++
|
|
9
9
|
|
|
10
10
|
require_relative "<%= version_file_require %>"
|
|
@@ -17,26 +17,29 @@ Gem::Specification.new do |spec|
|
|
|
17
17
|
|
|
18
18
|
spec.summary = "<%= summary %>"
|
|
19
19
|
spec.description = "<%= description %>"
|
|
20
|
-
spec.homepage = "https://
|
|
20
|
+
spec.homepage = "https://TODO.example.com"
|
|
21
21
|
spec.license = "<%= license %>"
|
|
22
22
|
spec.required_ruby_version = [">= 3.2.9", "< 5"]
|
|
23
23
|
|
|
24
24
|
spec.metadata["allowed_push_host"] = "https://rubygems.org"
|
|
25
25
|
spec.metadata["homepage_uri"] = spec.homepage
|
|
26
|
-
spec.metadata["bug_tracker_uri"] = "https://
|
|
27
|
-
spec.metadata["mailing_list_uri"] = "https://
|
|
28
|
-
spec.metadata["source_code_uri"] = "https://
|
|
29
|
-
spec.metadata["changelog_uri"] = "https://
|
|
30
|
-
spec.metadata["documentation_uri"] = "https://
|
|
31
|
-
spec.metadata["wiki_uri"] = "https://man.sr.ht/~kerrick/ratatui_ruby/"
|
|
32
|
-
spec.metadata["funding_uri"] = "https://opencollective.com/ratatui" # Don't fund me, fund the upstream project.
|
|
26
|
+
spec.metadata["bug_tracker_uri"] = "https://forum.setdef.com/tags/c/<%= gem_name.tr('_', '-') %>/bug"
|
|
27
|
+
spec.metadata["mailing_list_uri"] = "https://forum.setdef.com/c/<%= gem_name.tr('_', '-') %>"
|
|
28
|
+
spec.metadata["source_code_uri"] = "https://github.com/<%= github_repo %>"
|
|
29
|
+
spec.metadata["changelog_uri"] = "https://TODO.example.com/docs/trunk/CHANGELOG_md.html"
|
|
30
|
+
spec.metadata["documentation_uri"] = "https://TODO.example.com/docs/"
|
|
33
31
|
spec.metadata["rubygems_mfa_required"] = "true"
|
|
34
32
|
|
|
35
33
|
gemspec = File.basename(__FILE__)
|
|
34
|
+
root_allowlist = %w[LICENSE REUSE.toml]
|
|
35
|
+
dir_denylist = %w[bin/ test/ spec/ features/ doc/ examples/ tasks/ .git .github appveyor Gemfile]
|
|
36
|
+
|
|
36
37
|
spec.files = IO.popen(%w[git ls-files -z], chdir: __dir__, err: IO::NULL) do |ls|
|
|
37
|
-
ls.readlines("\x0", chomp: true).
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
ls.readlines("\x0", chomp: true).select do |f|
|
|
39
|
+
next false if f == gemspec
|
|
40
|
+
next true if root_allowlist.include?(f)
|
|
41
|
+
next false unless f.include?("/")
|
|
42
|
+
!f.start_with?(*dir_denylist)
|
|
40
43
|
end
|
|
41
44
|
end
|
|
42
45
|
spec.bindir = "exe"
|
|
@@ -49,9 +52,13 @@ Gem::Specification.new do |spec|
|
|
|
49
52
|
spec.add_development_dependency "rake-compiler", "~> 1.2"
|
|
50
53
|
<%- end -%>
|
|
51
54
|
|
|
52
|
-
spec.add_dependency "
|
|
55
|
+
spec.add_dependency "ratatui_ruby"
|
|
56
|
+
spec.add_development_dependency "ostruct", "~> 0.6"
|
|
53
57
|
spec.add_development_dependency "rdoc", "~> 7.0"
|
|
54
58
|
spec.add_development_dependency "faker", "~> 3.5"
|
|
59
|
+
spec.add_development_dependency "minitest-mock"
|
|
60
|
+
spec.add_development_dependency "steep"
|
|
61
|
+
spec.add_development_dependency "debug", ">= 1.0"
|
|
55
62
|
<%- dependencies.each do |dep| -%>
|
|
56
63
|
spec.add_dependency "<%= dep[:name] %>", "<%= dep[:version] %>"
|
|
57
64
|
<%- end -%>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
#--
|
|
4
|
+
<%# REUSE-IgnoreStart -%>
|
|
5
|
+
# SPDX-FileCopyrightText: <%= year %> <%= copyright_holder %>
|
|
6
|
+
# SPDX-License-Identifier: <%= license %>
|
|
7
|
+
<%# REUSE-IgnoreEnd -%>
|
|
8
|
+
#++
|
|
9
|
+
|
|
10
|
+
require_relative "<%= gem_name.split('-').last %>/version"
|
|
11
|
+
|
|
12
|
+
# Entry point for the <%= gem_name %> gem.
|
|
13
|
+
#
|
|
14
|
+
# Ruby libraries benefit from a clear namespace. Gems need a central module.
|
|
15
|
+
#
|
|
16
|
+
# This module serves as the namespace root. All classes and utilities live here.
|
|
17
|
+
#
|
|
18
|
+
# Require this file to load the library.
|
|
19
|
+
<%= nested_module %>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
#--
|
|
4
|
+
<%# REUSE-IgnoreStart -%>
|
|
5
|
+
# SPDX-FileCopyrightText: <%= year %> <%= copyright_holder %>
|
|
6
|
+
# SPDX-License-Identifier: <%= license %>
|
|
7
|
+
<%# REUSE-IgnoreEnd -%>
|
|
8
|
+
#++
|
|
9
|
+
|
|
10
|
+
require "ratatui_ruby/test_helper"
|
|
11
|
+
|
|
12
|
+
module <%= module_name %>
|
|
13
|
+
# Test assertions and utilities for <%= gem_name %>.
|
|
14
|
+
#
|
|
15
|
+
# Includes {RatatuiRuby::TestHelper} for terminal test helpers
|
|
16
|
+
# (<tt>with_test_terminal</tt>, <tt>inject_key</tt>, etc.).
|
|
17
|
+
#
|
|
18
|
+
# Include this module in your Minitest classes:
|
|
19
|
+
#
|
|
20
|
+
# class TestMyApp < Minitest::Test
|
|
21
|
+
# include <%= module_name %>::TestHelper
|
|
22
|
+
# end
|
|
23
|
+
module TestHelper
|
|
24
|
+
include RatatuiRuby::TestHelper
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
<%# REUSE-IgnoreStart -%>
|
|
1
2
|
# SPDX-FileCopyrightText: <%= Time.now.year %> <%= copyright_holder %>
|
|
2
|
-
# REUSE-IgnoreStart
|
|
3
3
|
# SPDX-License-Identifier: <%= license %>
|
|
4
|
-
|
|
4
|
+
<%# REUSE-IgnoreEnd -%>
|
|
5
5
|
|
|
6
6
|
[tools]
|
|
7
|
-
ruby = "4.0.
|
|
7
|
+
ruby = "4.0.1"
|
|
8
8
|
<%- if has_rust -%>
|
|
9
9
|
rust = "1.91.1"
|
|
10
10
|
<%- end -%>
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
<%#
|
|
1
|
+
<%# REUSE-IgnoreStart -%>
|
|
2
|
+
<%= "<%#" %>
|
|
2
3
|
SPDX-FileCopyrightText: <%= Time.now.year %> <%= copyright_holder %>
|
|
3
|
-
REUSE-IgnoreStart
|
|
4
4
|
SPDX-License-Identifier: <%= license %>
|
|
5
|
-
REUSE-IgnoreEnd
|
|
6
5
|
%>
|
|
6
|
+
<%# REUSE-IgnoreEnd -%>
|
|
7
7
|
<!DOCTYPE html>
|
|
8
8
|
<html lang="en">
|
|
9
9
|
<head>
|
|
10
10
|
<meta charset="UTF-8">
|
|
11
11
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
12
|
-
<title
|
|
12
|
+
<title><%%= page_title %> - Example Viewer</title>
|
|
13
13
|
|
|
14
14
|
<script>
|
|
15
|
-
var rdoc_rel_prefix = "
|
|
16
|
-
var index_rel_prefix = "
|
|
15
|
+
var rdoc_rel_prefix = "<%%= doc_root_link.sub('index.html', '') %>";
|
|
16
|
+
var index_rel_prefix = "<%%= '../' * (relative_path.split('/').size - 1) %>";
|
|
17
17
|
</script>
|
|
18
18
|
|
|
19
|
-
<script src="
|
|
20
|
-
<script src="
|
|
21
|
-
<script src="
|
|
22
|
-
<script src="
|
|
23
|
-
<script src="
|
|
19
|
+
<script src="<%%= '../' * (relative_path.split('/').size - 1) %>js/search_navigation.js" defer></script>
|
|
20
|
+
<script src="<%%= '../' * (relative_path.split('/').size - 1) %>js/search_data.js" defer></script>
|
|
21
|
+
<script src="<%%= '../' * (relative_path.split('/').size - 1) %>js/search_ranker.js" defer></script>
|
|
22
|
+
<script src="<%%= '../' * (relative_path.split('/').size - 1) %>js/search_controller.js" defer></script>
|
|
23
|
+
<script src="<%%= '../' * (relative_path.split('/').size - 1) %>js/aliki.js" defer></script>
|
|
24
24
|
|
|
25
|
-
<link href="
|
|
26
|
-
<link href="
|
|
25
|
+
<link href="<%%= doc_root_link.sub('index.html', '') %>css/rdoc.css" rel="stylesheet">
|
|
26
|
+
<link href="<%%= doc_root_link.sub('index.html', '') %>custom.css" rel="stylesheet">
|
|
27
27
|
</head>
|
|
28
|
-
<body class="file
|
|
29
|
-
|
|
28
|
+
<body class="file<%%= ' has-toc' unless toc_items.empty? %>">
|
|
29
|
+
<%%= icons_svg %>
|
|
30
30
|
<header class="top-navbar">
|
|
31
31
|
<div class="navbar-brand">
|
|
32
32
|
Example Viewer
|
|
@@ -96,7 +96,7 @@ REUSE-IgnoreEnd
|
|
|
96
96
|
</span>
|
|
97
97
|
</summary>
|
|
98
98
|
<ul class="nav-list">
|
|
99
|
-
<li><a href="
|
|
99
|
+
<li><a href="<%%= doc_root_link %>">← Back to Docs</a></li>
|
|
100
100
|
</ul>
|
|
101
101
|
</details>
|
|
102
102
|
</div>
|
|
@@ -112,7 +112,7 @@ REUSE-IgnoreEnd
|
|
|
112
112
|
</span>
|
|
113
113
|
</summary>
|
|
114
114
|
<ul class="link-list nav-list">
|
|
115
|
-
|
|
115
|
+
<%%= render_tree(tree_data, relative_path, current_file_html) %>
|
|
116
116
|
</ul>
|
|
117
117
|
</details>
|
|
118
118
|
</div>
|
|
@@ -120,24 +120,24 @@ REUSE-IgnoreEnd
|
|
|
120
120
|
|
|
121
121
|
<main role="main">
|
|
122
122
|
<div class="breadcrumb">
|
|
123
|
-
|
|
123
|
+
<%%= breadcrumb_path %>
|
|
124
124
|
</div>
|
|
125
|
-
|
|
125
|
+
<%%= file_header_html %>
|
|
126
126
|
<div class="content">
|
|
127
|
-
|
|
127
|
+
<%%= file_content_html %>
|
|
128
128
|
</div>
|
|
129
129
|
</main>
|
|
130
130
|
|
|
131
|
-
|
|
131
|
+
<%% unless toc_items.empty? %>
|
|
132
132
|
<aside class="table-of-contents" role="complementary" aria-label="Table of Contents">
|
|
133
133
|
<div class="toc-sticky">
|
|
134
134
|
<div class="toc-list">
|
|
135
135
|
<h3>On This Page</h3>
|
|
136
|
-
|
|
136
|
+
<%%= render_toc(toc_items) %>
|
|
137
137
|
</div>
|
|
138
138
|
</div>
|
|
139
139
|
</aside>
|
|
140
|
-
|
|
140
|
+
<%% end %>
|
|
141
141
|
|
|
142
142
|
|
|
143
143
|
<script>
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
<%# REUSE-IgnoreStart -%>
|
|
2
|
+
<%= "<%#" %>
|
|
2
3
|
SPDX-FileCopyrightText: <%= Time.now.year %> <%= copyright_holder %>
|
|
3
|
-
|
|
4
|
-
REUSE-IgnoreStart
|
|
5
4
|
SPDX-License-Identifier: <%= license %>
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
%>
|
|
6
|
+
<%# REUSE-IgnoreEnd -%>
|
|
8
7
|
|
|
9
8
|
<!DOCTYPE html>
|
|
10
9
|
<html>
|
|
11
10
|
<head>
|
|
12
|
-
<title
|
|
11
|
+
<title><%%= project_name %> documentation</title>
|
|
13
12
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
14
13
|
<style>
|
|
15
14
|
:root { color-scheme: light dark; }
|
|
@@ -23,24 +22,24 @@ REUSE-IgnoreEnd
|
|
|
23
22
|
</style>
|
|
24
23
|
</head>
|
|
25
24
|
<body>
|
|
26
|
-
<h1
|
|
25
|
+
<h1><%%= project_name %> documentation</h1>
|
|
27
26
|
<ul>
|
|
28
|
-
|
|
27
|
+
<%% versions.each do |version| %>
|
|
29
28
|
<li>
|
|
30
|
-
<a href=
|
|
31
|
-
|
|
32
|
-
<span class=
|
|
33
|
-
|
|
29
|
+
<a href="<%%= version.slug %>/index.html">
|
|
30
|
+
<%%= version.name %>
|
|
31
|
+
<span class="meta">
|
|
32
|
+
<%% if version.latest? %>
|
|
34
33
|
Latest
|
|
35
|
-
|
|
34
|
+
<%% elsif version.edge? %>
|
|
36
35
|
Edge
|
|
37
|
-
|
|
36
|
+
<%% else %>
|
|
38
37
|
Historical
|
|
39
|
-
|
|
38
|
+
<%% end %>
|
|
40
39
|
</span>
|
|
41
40
|
</a>
|
|
42
41
|
</li>
|
|
43
|
-
|
|
42
|
+
<%% end %>
|
|
44
43
|
</ul>
|
|
45
44
|
</body>
|
|
46
45
|
</html>
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
+
<%# REUSE-IgnoreStart -%>
|
|
1
2
|
# SPDX-FileCopyrightText: <%= Time.now.year %> <%= copyright_holder %>
|
|
2
|
-
# REUSE-IgnoreStart
|
|
3
3
|
# SPDX-License-Identifier: <%= license %>
|
|
4
|
-
|
|
4
|
+
<%# REUSE-IgnoreEnd -%>
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
- "
|
|
8
|
-
|
|
9
|
-
- "4.0.0"
|
|
6
|
+
<% rubies.each do |ruby| -%>
|
|
7
|
+
- "<%= ruby %>"
|
|
8
|
+
<% end -%>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
#--
|
|
4
|
+
<%# REUSE-IgnoreStart -%>
|
|
5
|
+
# SPDX-FileCopyrightText: <%= year %> <%= copyright_holder %>
|
|
6
|
+
# SPDX-License-Identifier: <%= license %>
|
|
7
|
+
<%# REUSE-IgnoreEnd -%>
|
|
8
|
+
#++
|
|
9
|
+
|
|
10
|
+
$LOAD_PATH.unshift File.expand_path("../lib", __dir__)
|
|
11
|
+
require "<%= require_path %>"
|
|
12
|
+
require "ratatui_ruby"
|
|
13
|
+
require "<%= require_path %>/test_helper"
|
|
14
|
+
require "minitest/autorun"
|
|
15
|
+
require "minitest/mock"
|
|
@@ -145,10 +145,10 @@ module RatatuiRuby
|
|
|
145
145
|
|
|
146
146
|
private def discover_version_file
|
|
147
147
|
# Convention: lib/gem_name/version.rb (with underscores for namespacing)
|
|
148
|
-
# e.g., ratatui_ruby-
|
|
148
|
+
# e.g., ratatui_ruby-kit -> lib/ratatui_ruby/kit/version.rb
|
|
149
149
|
parts = gem_name.split("-")
|
|
150
150
|
if parts.size > 1
|
|
151
|
-
# ratatui_ruby-
|
|
151
|
+
# ratatui_ruby-kit -> ratatui_ruby/kit
|
|
152
152
|
path = "lib/#{parts.first}/#{parts[1..].join('/')}/version.rb"
|
|
153
153
|
else
|
|
154
154
|
# ratatui_ruby -> ratatui_ruby
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ratatui_ruby-devtools
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Kerrick Long
|
|
@@ -141,6 +141,7 @@ files:
|
|
|
141
141
|
- CHANGELOG.md
|
|
142
142
|
- LICENSE
|
|
143
143
|
- LICENSES/AGPL-3.0-or-later.txt
|
|
144
|
+
- LICENSES/BSD-2-Clause.txt
|
|
144
145
|
- LICENSES/CC-BY-SA-4.0.txt
|
|
145
146
|
- LICENSES/CC0-1.0.txt
|
|
146
147
|
- LICENSES/MIT-0.txt
|
|
@@ -190,11 +191,15 @@ files:
|
|
|
190
191
|
- lib/ratatui_ruby/devtools/tasks/license/snippets_rdoc.rb
|
|
191
192
|
- lib/ratatui_ruby/devtools/tasks/lint.rake
|
|
192
193
|
- lib/ratatui_ruby/devtools/tasks/rdoc_config.rb
|
|
193
|
-
- lib/ratatui_ruby/devtools/tasks/
|
|
194
|
+
- lib/ratatui_ruby/devtools/tasks/release.rake
|
|
195
|
+
- lib/ratatui_ruby/devtools/tasks/release/ci_run.rb
|
|
196
|
+
- lib/ratatui_ruby/devtools/tasks/release/github_cli.rb
|
|
197
|
+
- lib/ratatui_ruby/devtools/tasks/release/native_gem_version.rb
|
|
198
|
+
- lib/ratatui_ruby/devtools/tasks/release/platform_gem.rb
|
|
199
|
+
- lib/ratatui_ruby/devtools/tasks/release/versioned_binary.rb
|
|
194
200
|
- lib/ratatui_ruby/devtools/tasks/resources/index.html.erb
|
|
195
201
|
- lib/ratatui_ruby/devtools/tasks/resources/rubies.yml
|
|
196
202
|
- lib/ratatui_ruby/devtools/tasks/reuse.rake
|
|
197
|
-
- lib/ratatui_ruby/devtools/tasks/sourcehut.rake
|
|
198
203
|
- lib/ratatui_ruby/devtools/tasks/test.rake
|
|
199
204
|
- lib/ratatui_ruby/devtools/tasks/website.rake
|
|
200
205
|
- lib/ratatui_ruby/devtools/tasks/website/index_page.rb
|
|
@@ -203,17 +208,22 @@ files:
|
|
|
203
208
|
- lib/ratatui_ruby/devtools/tasks/website/versioned_documentation.rb
|
|
204
209
|
- lib/ratatui_ruby/devtools/tasks/website/website.rb
|
|
205
210
|
- lib/ratatui_ruby/devtools/templates/.builds/ruby.yml.erb
|
|
211
|
+
- lib/ratatui_ruby/devtools/templates/.github/workflows/build-gems.yml.erb
|
|
212
|
+
- lib/ratatui_ruby/devtools/templates/.github/workflows/ci.yml.erb
|
|
206
213
|
- lib/ratatui_ruby/devtools/templates/.gitignore.erb
|
|
207
214
|
- lib/ratatui_ruby/devtools/templates/.pre-commit-config.yaml.erb
|
|
208
215
|
- lib/ratatui_ruby/devtools/templates/.rubocop.yml.erb
|
|
209
216
|
- lib/ratatui_ruby/devtools/templates/AGENTS.md.erb
|
|
210
217
|
- lib/ratatui_ruby/devtools/templates/CHANGELOG.md.erb
|
|
218
|
+
- lib/ratatui_ruby/devtools/templates/CODE_OF_CONDUCT.md.erb
|
|
219
|
+
- lib/ratatui_ruby/devtools/templates/CONTRIBUTING.md.erb
|
|
211
220
|
- lib/ratatui_ruby/devtools/templates/Gemfile.erb
|
|
212
221
|
- lib/ratatui_ruby/devtools/templates/README.md.erb
|
|
213
222
|
- lib/ratatui_ruby/devtools/templates/REUSE.toml.erb
|
|
214
223
|
- lib/ratatui_ruby/devtools/templates/Rakefile.erb
|
|
215
224
|
- lib/ratatui_ruby/devtools/templates/bin/console.erb
|
|
216
225
|
- lib/ratatui_ruby/devtools/templates/bin/setup.erb
|
|
226
|
+
- lib/ratatui_ruby/devtools/templates/bin/setup.ps1.erb
|
|
217
227
|
- lib/ratatui_ruby/devtools/templates/doc/concepts/application_architecture.md.erb
|
|
218
228
|
- lib/ratatui_ruby/devtools/templates/doc/concepts/application_testing.md.erb
|
|
219
229
|
- lib/ratatui_ruby/devtools/templates/doc/custom.css.erb
|
|
@@ -221,13 +231,22 @@ files:
|
|
|
221
231
|
- lib/ratatui_ruby/devtools/templates/doc/images/.gitkeep
|
|
222
232
|
- lib/ratatui_ruby/devtools/templates/doc/index.md.erb
|
|
223
233
|
- lib/ratatui_ruby/devtools/templates/exe/.gitkeep
|
|
234
|
+
- lib/ratatui_ruby/devtools/templates/ext/.cargo/config.toml.erb
|
|
235
|
+
- lib/ratatui_ruby/devtools/templates/ext/.gitignore.erb
|
|
236
|
+
- lib/ratatui_ruby/devtools/templates/ext/Cargo.toml.erb
|
|
237
|
+
- lib/ratatui_ruby/devtools/templates/ext/clippy.toml.erb
|
|
238
|
+
- lib/ratatui_ruby/devtools/templates/ext/extconf.rb.erb
|
|
239
|
+
- lib/ratatui_ruby/devtools/templates/ext/src/lib.rs.erb
|
|
224
240
|
- lib/ratatui_ruby/devtools/templates/gemspec.erb
|
|
241
|
+
- lib/ratatui_ruby/devtools/templates/lib/main.rb.erb
|
|
242
|
+
- lib/ratatui_ruby/devtools/templates/lib/rubocop.yml
|
|
243
|
+
- lib/ratatui_ruby/devtools/templates/lib/test_helper.rb.erb
|
|
244
|
+
- lib/ratatui_ruby/devtools/templates/lib/version.rb.erb
|
|
225
245
|
- lib/ratatui_ruby/devtools/templates/mise.toml.erb
|
|
226
246
|
- lib/ratatui_ruby/devtools/templates/tasks/example_viewer.html.erb
|
|
227
|
-
- lib/ratatui_ruby/devtools/templates/tasks/resources/build.yml.erb
|
|
228
247
|
- lib/ratatui_ruby/devtools/templates/tasks/resources/index.html.erb
|
|
229
248
|
- lib/ratatui_ruby/devtools/templates/tasks/resources/rubies.yml.erb
|
|
230
|
-
- lib/ratatui_ruby/devtools/templates/
|
|
249
|
+
- lib/ratatui_ruby/devtools/templates/test/test_helper.rb.erb
|
|
231
250
|
- lib/ratatui_ruby/devtools/version.rb
|
|
232
251
|
- mise.toml
|
|
233
252
|
- sig/ratatui_ruby/devtools.rbs
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
# SPDX-FileCopyrightText: 2025 Kerrick Long <me@kerricklong.com>
|
|
2
|
-
# SPDX-License-Identifier: AGPL-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
|
-
- ratatui_ruby/pkg/<%= gem_filename %>
|
|
20
|
-
sources:
|
|
21
|
-
- https://git.sr.ht/~kerrick/ratatui_ruby
|
|
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 ratatui_ruby
|
|
33
|
-
sed -i 's/ruby = .*/ruby = "<%= ruby_version %>"/' mise.toml
|
|
34
|
-
mise install
|
|
35
|
-
mise x -- pip install reuse
|
|
36
|
-
mise x -- gem install bundler:<%= bundler_version %>
|
|
37
|
-
mise reshim
|
|
38
|
-
mise x -- bundle config set --local frozen 'true'
|
|
39
|
-
mise x -- bundle install
|
|
40
|
-
mise x -- bundle exec rake compile
|
|
41
|
-
- test: |
|
|
42
|
-
. ~/.buildenv
|
|
43
|
-
cd ratatui_ruby
|
|
44
|
-
echo "Testing Ruby <%= ruby_version %>"
|
|
45
|
-
mise x -- bundle exec rake test
|
|
46
|
-
- lint: |
|
|
47
|
-
. ~/.buildenv
|
|
48
|
-
cd ratatui_ruby
|
|
49
|
-
echo "Linting Ruby <%= ruby_version %>"
|
|
50
|
-
mise x -- bundle exec rake lint
|
|
51
|
-
- package: |
|
|
52
|
-
. ~/.buildenv
|
|
53
|
-
cd ratatui_ruby
|
|
54
|
-
mise x -- bundle exec rake build
|