ratatui_ruby 0.1.0 → 0.3.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/.builds/ruby-3.2.yml +52 -0
- data/.builds/ruby-3.3.yml +52 -0
- data/.builds/ruby-3.4.yml +52 -0
- data/.builds/ruby-4.0.0.yml +53 -0
- data/.pre-commit-config.yaml +9 -2
- data/AGENTS.md +53 -5
- data/CHANGELOG.md +51 -1
- data/README.md +38 -18
- data/REUSE.toml +5 -0
- data/Rakefile +3 -100
- data/{docs → doc}/contributors/index.md +2 -1
- data/doc/custom.css +8 -0
- data/doc/images/examples-calendar_demo.rb.png +0 -0
- data/doc/images/examples-chart_demo.rb.png +0 -0
- data/doc/images/examples-custom_widget.rb.png +0 -0
- data/doc/images/examples-list_styles.rb.png +0 -0
- data/doc/images/examples-popup_demo.rb.gif +0 -0
- data/doc/images/examples-quickstart_lifecycle.rb.png +0 -0
- data/doc/images/examples-scroll_text.rb.png +0 -0
- data/doc/images/examples-stock_ticker.rb.png +0 -0
- data/doc/images/examples-table_select.rb.png +0 -0
- data/{docs → doc}/index.md +1 -1
- data/{docs → doc}/quickstart.md +81 -11
- data/examples/analytics.rb +2 -1
- data/examples/calendar_demo.rb +55 -0
- data/examples/chart_demo.rb +84 -0
- data/examples/custom_widget.rb +43 -0
- data/examples/list_styles.rb +66 -0
- data/examples/login_form.rb +2 -1
- data/examples/popup_demo.rb +105 -0
- data/examples/quickstart_dsl.rb +30 -0
- data/examples/quickstart_lifecycle.rb +40 -0
- data/examples/readme_usage.rb +21 -0
- data/examples/scroll_text.rb +74 -0
- data/examples/stock_ticker.rb +13 -5
- data/examples/system_monitor.rb +2 -1
- data/examples/table_select.rb +70 -0
- data/examples/test_calendar_demo.rb +66 -0
- data/examples/test_list_styles.rb +61 -0
- data/examples/test_popup_demo.rb +62 -0
- data/examples/test_scroll_text.rb +130 -0
- data/examples/test_table_select.rb +37 -0
- data/ext/ratatui_ruby/.cargo/config.toml +5 -0
- data/ext/ratatui_ruby/Cargo.lock +260 -50
- data/ext/ratatui_ruby/Cargo.toml +5 -4
- data/ext/ratatui_ruby/extconf.rb +1 -1
- data/ext/ratatui_ruby/src/buffer.rs +54 -0
- data/ext/ratatui_ruby/src/events.rs +115 -107
- data/ext/ratatui_ruby/src/lib.rs +15 -6
- data/ext/ratatui_ruby/src/rendering.rs +18 -1
- data/ext/ratatui_ruby/src/style.rs +2 -1
- data/ext/ratatui_ruby/src/terminal.rs +27 -24
- data/ext/ratatui_ruby/src/widgets/calendar.rs +82 -0
- data/ext/ratatui_ruby/src/widgets/canvas.rs +1 -2
- data/ext/ratatui_ruby/src/widgets/center.rs +0 -2
- data/ext/ratatui_ruby/src/widgets/chart.rs +260 -0
- data/ext/ratatui_ruby/src/widgets/clear.rs +37 -0
- data/ext/ratatui_ruby/src/widgets/cursor.rs +1 -1
- data/ext/ratatui_ruby/src/widgets/layout.rs +2 -1
- data/ext/ratatui_ruby/src/widgets/list.rs +44 -5
- data/ext/ratatui_ruby/src/widgets/mod.rs +3 -1
- data/ext/ratatui_ruby/src/widgets/overlay.rs +2 -1
- data/ext/ratatui_ruby/src/widgets/paragraph.rs +10 -0
- data/ext/ratatui_ruby/src/widgets/table.rs +25 -6
- data/ext/ratatui_ruby/src/widgets/tabs.rs +2 -1
- data/lib/ratatui_ruby/dsl.rb +64 -0
- data/lib/ratatui_ruby/schema/calendar.rb +26 -0
- data/lib/ratatui_ruby/schema/chart.rb +81 -0
- data/lib/ratatui_ruby/schema/clear.rb +83 -0
- data/lib/ratatui_ruby/schema/list.rb +8 -2
- data/lib/ratatui_ruby/schema/paragraph.rb +7 -4
- data/lib/ratatui_ruby/schema/rect.rb +24 -0
- data/lib/ratatui_ruby/schema/table.rb +8 -2
- data/lib/ratatui_ruby/version.rb +1 -1
- data/lib/ratatui_ruby.rb +24 -2
- data/mise.toml +8 -0
- data/sig/ratatui_ruby/buffer.rbs +11 -0
- data/sig/ratatui_ruby/schema/calendar.rbs +13 -0
- data/sig/ratatui_ruby/schema/{line_chart.rbs → chart.rbs} +20 -1
- data/sig/ratatui_ruby/schema/list.rbs +4 -1
- data/sig/ratatui_ruby/schema/rect.rbs +14 -0
- data/tasks/bump/cargo_lockfile.rb +19 -0
- data/tasks/bump/changelog.rb +37 -0
- data/tasks/bump/comparison_links.rb +41 -0
- data/tasks/bump/header.rb +30 -0
- data/tasks/bump/history.rb +30 -0
- data/tasks/bump/manifest.rb +31 -0
- data/tasks/bump/ruby_gem.rb +35 -0
- data/tasks/bump/sem_ver.rb +34 -0
- data/tasks/bump/unreleased_section.rb +38 -0
- data/tasks/bump.rake +49 -0
- data/tasks/doc.rake +25 -0
- data/tasks/extension.rake +12 -0
- data/tasks/lint.rake +49 -0
- data/tasks/rdoc_config.rb +15 -0
- data/tasks/resources/build.yml.erb +65 -0
- data/tasks/resources/index.html.erb +38 -0
- data/tasks/resources/rubies.yml +7 -0
- data/tasks/sourcehut.rake +38 -0
- data/tasks/test.rake +31 -0
- data/tasks/website/index_page.rb +28 -0
- data/tasks/website/version.rb +117 -0
- data/tasks/website/version_menu.rb +68 -0
- data/tasks/website/versioned_documentation.rb +49 -0
- data/tasks/website/website.rb +53 -0
- data/tasks/website.rake +26 -0
- metadata +119 -28
- data/.build.yml +0 -34
- data/.ruby-version +0 -1
- data/CODE_OF_CONDUCT.md +0 -30
- data/CONTRIBUTING.md +0 -40
- data/docs/images/examples-stock_ticker.rb.png +0 -0
- data/ext/ratatui_ruby/src/widgets/linechart.rs +0 -154
- data/lib/ratatui_ruby/schema/line_chart.rb +0 -41
- /data/{docs → doc}/application_testing.md +0 -0
- /data/{docs → doc}/contributors/design/ruby_frontend.md +0 -0
- /data/{docs → doc}/contributors/design/rust_backend.md +0 -0
- /data/{docs → doc}/contributors/design.md +0 -0
- /data/{docs → doc}/images/examples-analytics.rb.png +0 -0
- /data/{docs → doc}/images/examples-box_demo.rb.png +0 -0
- /data/{docs → doc}/images/examples-dashboard.rb.png +0 -0
- /data/{docs → doc}/images/examples-login_form.rb.png +0 -0
- /data/{docs → doc}/images/examples-map_demo.rb.png +0 -0
- /data/{docs → doc}/images/examples-mouse_events.rb.png +0 -0
- /data/{docs → doc}/images/examples-scrollbar_demo.rb.png +0 -0
- /data/{docs → doc}/images/examples-system_monitor.rb.png +0 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# SPDX-FileCopyrightText: 2025 Kerrick Long <me@kerricklong.com>
|
|
4
|
+
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
5
|
+
|
|
6
|
+
class VersionMenu
|
|
7
|
+
def initialize(root:, versions:)
|
|
8
|
+
@root = root
|
|
9
|
+
@versions = versions
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def run
|
|
13
|
+
puts "Injecting version menu into generated HTML..."
|
|
14
|
+
|
|
15
|
+
# Process all HTML files in the output directory
|
|
16
|
+
Dir.glob(File.join(@root, "**/*.html")).each do |file|
|
|
17
|
+
inject_menu(file)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
private
|
|
22
|
+
|
|
23
|
+
def inject_menu(file)
|
|
24
|
+
content = File.read(file)
|
|
25
|
+
|
|
26
|
+
# Find the injection point (before the theme toggle button)
|
|
27
|
+
pattern = /(<button[^>]*id="theme-toggle"[^>]*>)/mi
|
|
28
|
+
|
|
29
|
+
unless content.match?(pattern)
|
|
30
|
+
# warn "Could not find theme-toggle in #{file}"
|
|
31
|
+
return
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# Calculate relative path to root from this file
|
|
35
|
+
file_dir = File.dirname(file)
|
|
36
|
+
relative_path_to_root = Pathname.new(@root).relative_path_from(Pathname.new(file_dir)).to_s
|
|
37
|
+
relative_path_to_root += "/" unless relative_path_to_root.end_with?("/")
|
|
38
|
+
|
|
39
|
+
# Determine current version from file path
|
|
40
|
+
relative_path_from_root = Pathname.new(file).relative_path_from(Pathname.new(@root)).to_s
|
|
41
|
+
current_version_slug = relative_path_from_root.split("/").first
|
|
42
|
+
|
|
43
|
+
# Build options
|
|
44
|
+
options = @versions.map do |version|
|
|
45
|
+
value = "#{relative_path_to_root}#{version.slug}/index.html"
|
|
46
|
+
selected = (version.slug == current_version_slug) ? "selected" : ""
|
|
47
|
+
display_name = version.name
|
|
48
|
+
display_name += " (latest)" if version.respond_to?(:latest?) && version.latest?
|
|
49
|
+
display_name += " (dev)" if version.edge?
|
|
50
|
+
|
|
51
|
+
%Q{<option value="#{value}" #{selected}>#{display_name}</option>}
|
|
52
|
+
end.join("\n")
|
|
53
|
+
|
|
54
|
+
# margin-left: auto pushes it to the right
|
|
55
|
+
# margin-right: 1rem spacing from the theme toggle
|
|
56
|
+
switcher_html = <<~HTML
|
|
57
|
+
<select class="version-menu" onchange="window.location.href=this.value" style="margin-left: auto; padding: 0.25rem; border-radius: 4px; border: 1px solid #ccc; margin-right: 1rem;">
|
|
58
|
+
#{options}
|
|
59
|
+
<option value="#{relative_path_to_root}index.html">All Versions</option>
|
|
60
|
+
</select>
|
|
61
|
+
HTML
|
|
62
|
+
|
|
63
|
+
# Inject before the button
|
|
64
|
+
new_content = content.sub(pattern, "#{switcher_html}\n\\1")
|
|
65
|
+
|
|
66
|
+
File.write(file, new_content)
|
|
67
|
+
end
|
|
68
|
+
end
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# SPDX-FileCopyrightText: 2025 Kerrick Long <me@kerricklong.com>
|
|
4
|
+
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
5
|
+
|
|
6
|
+
require_relative "../rdoc_config"
|
|
7
|
+
|
|
8
|
+
class VersionedDocumentation
|
|
9
|
+
def initialize(version)
|
|
10
|
+
@version = version
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def publish_to(path, project_name:, globs:, assets: [])
|
|
14
|
+
puts "Building documentation for #{@version.name}..."
|
|
15
|
+
|
|
16
|
+
absolute_path = File.absolute_path(path)
|
|
17
|
+
gemfile_path = File.absolute_path("Gemfile")
|
|
18
|
+
custom_css_path = File.absolute_path("doc/custom.css")
|
|
19
|
+
|
|
20
|
+
@version.checkout(globs: globs) do |source_path|
|
|
21
|
+
Dir.chdir(source_path) do
|
|
22
|
+
title = "#{project_name} #{@version.name}"
|
|
23
|
+
title = "#{project_name} (main)" if @version.edge?
|
|
24
|
+
|
|
25
|
+
# We need to expand globs relative to the source path
|
|
26
|
+
files = globs.flat_map { |glob| Dir[glob] }.uniq
|
|
27
|
+
|
|
28
|
+
system(
|
|
29
|
+
{ "BUNDLE_GEMFILE" => gemfile_path },
|
|
30
|
+
"bundle exec rdoc -o #{absolute_path} --main #{RDocConfig::MAIN} --title '#{title}' --template-stylesheets \"#{custom_css_path}\" #{files.join(' ')}"
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
copy_assets_to(absolute_path, assets)
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
private
|
|
39
|
+
|
|
40
|
+
def copy_assets_to(path, assets)
|
|
41
|
+
assets.each do |asset_dir|
|
|
42
|
+
if Dir.exist?(asset_dir)
|
|
43
|
+
destination = File.join(path, asset_dir)
|
|
44
|
+
FileUtils.mkdir_p(destination)
|
|
45
|
+
FileUtils.cp_r Dir["#{asset_dir}/*"], destination
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# SPDX-FileCopyrightText: 2025 Kerrick Long <me@kerricklong.com>
|
|
4
|
+
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
5
|
+
|
|
6
|
+
require_relative "version"
|
|
7
|
+
require_relative "versioned_documentation"
|
|
8
|
+
require_relative "index_page"
|
|
9
|
+
require_relative "version_menu"
|
|
10
|
+
require "fileutils"
|
|
11
|
+
|
|
12
|
+
class Website
|
|
13
|
+
def initialize(at: "www", project_name:, globs:, assets: [])
|
|
14
|
+
@destination = at
|
|
15
|
+
@project_name = project_name
|
|
16
|
+
@globs = globs
|
|
17
|
+
@assets = assets
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def build
|
|
21
|
+
clean
|
|
22
|
+
|
|
23
|
+
versions.each do |version|
|
|
24
|
+
VersionedDocumentation.new(version).publish_to(
|
|
25
|
+
join(version.slug),
|
|
26
|
+
project_name: @project_name,
|
|
27
|
+
globs: @globs,
|
|
28
|
+
assets: @assets
|
|
29
|
+
)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
IndexPage.new(versions).publish_to(join("index.html"), project_name: @project_name)
|
|
33
|
+
|
|
34
|
+
VersionMenu.new(root: @destination, versions: versions).run
|
|
35
|
+
|
|
36
|
+
puts "Website built in #{@destination}/"
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def versions
|
|
40
|
+
@versions ||= Version.all
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
private
|
|
44
|
+
|
|
45
|
+
def join(path)
|
|
46
|
+
File.join(@destination, path)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def clean
|
|
50
|
+
FileUtils.rm_rf(@destination)
|
|
51
|
+
FileUtils.mkdir_p(@destination)
|
|
52
|
+
end
|
|
53
|
+
end
|
data/tasks/website.rake
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# SPDX-FileCopyrightText: 2025 Kerrick Long <me@kerricklong.com>
|
|
4
|
+
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
5
|
+
|
|
6
|
+
require "erb"
|
|
7
|
+
require "fileutils"
|
|
8
|
+
require "tmpdir"
|
|
9
|
+
require_relative "rdoc_config"
|
|
10
|
+
|
|
11
|
+
namespace :website do
|
|
12
|
+
desc "Build documentation for main (current dir) and all git tags"
|
|
13
|
+
task :build do
|
|
14
|
+
require_relative "website/website"
|
|
15
|
+
|
|
16
|
+
spec = Gem::Specification.load(Dir["*.gemspec"].first)
|
|
17
|
+
globs = RDocConfig::RDOC_FILES + ["*.gemspec", "doc/images/**/*"]
|
|
18
|
+
|
|
19
|
+
Website.new(
|
|
20
|
+
at: "www",
|
|
21
|
+
project_name: spec.name,
|
|
22
|
+
globs: globs,
|
|
23
|
+
assets: ["doc/images"] # directories to copy
|
|
24
|
+
).build
|
|
25
|
+
end
|
|
26
|
+
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ratatui_ruby
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Kerrick Long
|
|
@@ -23,6 +23,20 @@ dependencies:
|
|
|
23
23
|
- - "~>"
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
25
|
version: '0.9'
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: ostruct
|
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - "~>"
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '0.6'
|
|
33
|
+
type: :runtime
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - "~>"
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '0.6'
|
|
26
40
|
- !ruby/object:Gem::Dependency
|
|
27
41
|
name: rake-compiler
|
|
28
42
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -37,6 +51,20 @@ dependencies:
|
|
|
37
51
|
- - "~>"
|
|
38
52
|
- !ruby/object:Gem::Version
|
|
39
53
|
version: '1.2'
|
|
54
|
+
- !ruby/object:Gem::Dependency
|
|
55
|
+
name: rdoc
|
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
|
57
|
+
requirements:
|
|
58
|
+
- - "~>"
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: '7.0'
|
|
61
|
+
type: :development
|
|
62
|
+
prerelease: false
|
|
63
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
64
|
+
requirements:
|
|
65
|
+
- - "~>"
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: '7.0'
|
|
40
68
|
description: ratatui_ruby is a wrapper for the Ratatui Rust crate <https://ratatui.rs>.
|
|
41
69
|
It allows you to cook up Terminal User Interfaces in Ruby.
|
|
42
70
|
email:
|
|
@@ -46,14 +74,14 @@ extensions:
|
|
|
46
74
|
- ext/ratatui_ruby/extconf.rb
|
|
47
75
|
extra_rdoc_files: []
|
|
48
76
|
files:
|
|
49
|
-
- ".
|
|
77
|
+
- ".builds/ruby-3.2.yml"
|
|
78
|
+
- ".builds/ruby-3.3.yml"
|
|
79
|
+
- ".builds/ruby-3.4.yml"
|
|
80
|
+
- ".builds/ruby-4.0.0.yml"
|
|
50
81
|
- ".pre-commit-config.yaml"
|
|
51
82
|
- ".rubocop.yml"
|
|
52
|
-
- ".ruby-version"
|
|
53
83
|
- AGENTS.md
|
|
54
84
|
- CHANGELOG.md
|
|
55
|
-
- CODE_OF_CONDUCT.md
|
|
56
|
-
- CONTRIBUTING.md
|
|
57
85
|
- LICENSE
|
|
58
86
|
- LICENSES/AGPL-3.0-or-later.txt
|
|
59
87
|
- LICENSES/BSD-2-Clause.txt
|
|
@@ -63,43 +91,68 @@ files:
|
|
|
63
91
|
- README.md
|
|
64
92
|
- REUSE.toml
|
|
65
93
|
- Rakefile
|
|
66
|
-
-
|
|
67
|
-
-
|
|
68
|
-
-
|
|
69
|
-
-
|
|
70
|
-
-
|
|
71
|
-
-
|
|
72
|
-
-
|
|
73
|
-
-
|
|
74
|
-
-
|
|
75
|
-
-
|
|
76
|
-
-
|
|
77
|
-
-
|
|
78
|
-
-
|
|
79
|
-
-
|
|
80
|
-
-
|
|
81
|
-
-
|
|
94
|
+
- doc/application_testing.md
|
|
95
|
+
- doc/contributors/design.md
|
|
96
|
+
- doc/contributors/design/ruby_frontend.md
|
|
97
|
+
- doc/contributors/design/rust_backend.md
|
|
98
|
+
- doc/contributors/index.md
|
|
99
|
+
- doc/custom.css
|
|
100
|
+
- doc/images/examples-analytics.rb.png
|
|
101
|
+
- doc/images/examples-box_demo.rb.png
|
|
102
|
+
- doc/images/examples-calendar_demo.rb.png
|
|
103
|
+
- doc/images/examples-chart_demo.rb.png
|
|
104
|
+
- doc/images/examples-custom_widget.rb.png
|
|
105
|
+
- doc/images/examples-dashboard.rb.png
|
|
106
|
+
- doc/images/examples-list_styles.rb.png
|
|
107
|
+
- doc/images/examples-login_form.rb.png
|
|
108
|
+
- doc/images/examples-map_demo.rb.png
|
|
109
|
+
- doc/images/examples-mouse_events.rb.png
|
|
110
|
+
- doc/images/examples-popup_demo.rb.gif
|
|
111
|
+
- doc/images/examples-quickstart_lifecycle.rb.png
|
|
112
|
+
- doc/images/examples-scroll_text.rb.png
|
|
113
|
+
- doc/images/examples-scrollbar_demo.rb.png
|
|
114
|
+
- doc/images/examples-stock_ticker.rb.png
|
|
115
|
+
- doc/images/examples-system_monitor.rb.png
|
|
116
|
+
- doc/images/examples-table_select.rb.png
|
|
117
|
+
- doc/index.md
|
|
118
|
+
- doc/quickstart.md
|
|
82
119
|
- examples/analytics.rb
|
|
83
120
|
- examples/box_demo.rb
|
|
121
|
+
- examples/calendar_demo.rb
|
|
122
|
+
- examples/chart_demo.rb
|
|
123
|
+
- examples/custom_widget.rb
|
|
84
124
|
- examples/dashboard.rb
|
|
125
|
+
- examples/list_styles.rb
|
|
85
126
|
- examples/login_form.rb
|
|
86
127
|
- examples/map_demo.rb
|
|
87
128
|
- examples/mouse_events.rb
|
|
129
|
+
- examples/popup_demo.rb
|
|
130
|
+
- examples/quickstart_dsl.rb
|
|
131
|
+
- examples/quickstart_lifecycle.rb
|
|
132
|
+
- examples/readme_usage.rb
|
|
133
|
+
- examples/scroll_text.rb
|
|
88
134
|
- examples/scrollbar_demo.rb
|
|
89
135
|
- examples/stock_ticker.rb
|
|
90
136
|
- examples/system_monitor.rb
|
|
137
|
+
- examples/table_select.rb
|
|
91
138
|
- examples/test_analytics.rb
|
|
92
139
|
- examples/test_box_demo.rb
|
|
140
|
+
- examples/test_calendar_demo.rb
|
|
93
141
|
- examples/test_dashboard.rb
|
|
142
|
+
- examples/test_list_styles.rb
|
|
94
143
|
- examples/test_login_form.rb
|
|
95
144
|
- examples/test_map_demo.rb
|
|
145
|
+
- examples/test_popup_demo.rb
|
|
146
|
+
- examples/test_scroll_text.rb
|
|
96
147
|
- examples/test_stock_ticker.rb
|
|
97
148
|
- examples/test_system_monitor.rb
|
|
149
|
+
- examples/test_table_select.rb
|
|
98
150
|
- ext/ratatui_ruby/.cargo/config.toml
|
|
99
151
|
- ext/ratatui_ruby/.gitignore
|
|
100
152
|
- ext/ratatui_ruby/Cargo.lock
|
|
101
153
|
- ext/ratatui_ruby/Cargo.toml
|
|
102
154
|
- ext/ratatui_ruby/extconf.rb
|
|
155
|
+
- ext/ratatui_ruby/src/buffer.rs
|
|
103
156
|
- ext/ratatui_ruby/src/events.rs
|
|
104
157
|
- ext/ratatui_ruby/src/lib.rs
|
|
105
158
|
- ext/ratatui_ruby/src/rendering.rs
|
|
@@ -107,12 +160,14 @@ files:
|
|
|
107
160
|
- ext/ratatui_ruby/src/terminal.rs
|
|
108
161
|
- ext/ratatui_ruby/src/widgets/barchart.rs
|
|
109
162
|
- ext/ratatui_ruby/src/widgets/block.rs
|
|
163
|
+
- ext/ratatui_ruby/src/widgets/calendar.rs
|
|
110
164
|
- ext/ratatui_ruby/src/widgets/canvas.rs
|
|
111
165
|
- ext/ratatui_ruby/src/widgets/center.rs
|
|
166
|
+
- ext/ratatui_ruby/src/widgets/chart.rs
|
|
167
|
+
- ext/ratatui_ruby/src/widgets/clear.rs
|
|
112
168
|
- ext/ratatui_ruby/src/widgets/cursor.rs
|
|
113
169
|
- ext/ratatui_ruby/src/widgets/gauge.rs
|
|
114
170
|
- ext/ratatui_ruby/src/widgets/layout.rs
|
|
115
|
-
- ext/ratatui_ruby/src/widgets/linechart.rs
|
|
116
171
|
- ext/ratatui_ruby/src/widgets/list.rs
|
|
117
172
|
- ext/ratatui_ruby/src/widgets/mod.rs
|
|
118
173
|
- ext/ratatui_ruby/src/widgets/overlay.rs
|
|
@@ -122,19 +177,23 @@ files:
|
|
|
122
177
|
- ext/ratatui_ruby/src/widgets/table.rs
|
|
123
178
|
- ext/ratatui_ruby/src/widgets/tabs.rs
|
|
124
179
|
- lib/ratatui_ruby.rb
|
|
180
|
+
- lib/ratatui_ruby/dsl.rb
|
|
125
181
|
- lib/ratatui_ruby/output.rb
|
|
126
182
|
- lib/ratatui_ruby/schema/bar_chart.rb
|
|
127
183
|
- lib/ratatui_ruby/schema/block.rb
|
|
184
|
+
- lib/ratatui_ruby/schema/calendar.rb
|
|
128
185
|
- lib/ratatui_ruby/schema/canvas.rb
|
|
129
186
|
- lib/ratatui_ruby/schema/center.rb
|
|
187
|
+
- lib/ratatui_ruby/schema/chart.rb
|
|
188
|
+
- lib/ratatui_ruby/schema/clear.rb
|
|
130
189
|
- lib/ratatui_ruby/schema/constraint.rb
|
|
131
190
|
- lib/ratatui_ruby/schema/cursor.rb
|
|
132
191
|
- lib/ratatui_ruby/schema/gauge.rb
|
|
133
192
|
- lib/ratatui_ruby/schema/layout.rb
|
|
134
|
-
- lib/ratatui_ruby/schema/line_chart.rb
|
|
135
193
|
- lib/ratatui_ruby/schema/list.rb
|
|
136
194
|
- lib/ratatui_ruby/schema/overlay.rb
|
|
137
195
|
- lib/ratatui_ruby/schema/paragraph.rb
|
|
196
|
+
- lib/ratatui_ruby/schema/rect.rb
|
|
138
197
|
- lib/ratatui_ruby/schema/scrollbar.rb
|
|
139
198
|
- lib/ratatui_ruby/schema/sparkline.rb
|
|
140
199
|
- lib/ratatui_ruby/schema/style.rb
|
|
@@ -142,19 +201,23 @@ files:
|
|
|
142
201
|
- lib/ratatui_ruby/schema/tabs.rb
|
|
143
202
|
- lib/ratatui_ruby/test_helper.rb
|
|
144
203
|
- lib/ratatui_ruby/version.rb
|
|
204
|
+
- mise.toml
|
|
205
|
+
- sig/ratatui_ruby/buffer.rbs
|
|
145
206
|
- sig/ratatui_ruby/ratatui_ruby.rbs
|
|
146
207
|
- sig/ratatui_ruby/schema/bar_chart.rbs
|
|
147
208
|
- sig/ratatui_ruby/schema/block.rbs
|
|
209
|
+
- sig/ratatui_ruby/schema/calendar.rbs
|
|
148
210
|
- sig/ratatui_ruby/schema/canvas.rbs
|
|
149
211
|
- sig/ratatui_ruby/schema/center.rbs
|
|
212
|
+
- sig/ratatui_ruby/schema/chart.rbs
|
|
150
213
|
- sig/ratatui_ruby/schema/constraint.rbs
|
|
151
214
|
- sig/ratatui_ruby/schema/cursor.rbs
|
|
152
215
|
- sig/ratatui_ruby/schema/gauge.rbs
|
|
153
216
|
- sig/ratatui_ruby/schema/layout.rbs
|
|
154
|
-
- sig/ratatui_ruby/schema/line_chart.rbs
|
|
155
217
|
- sig/ratatui_ruby/schema/list.rbs
|
|
156
218
|
- sig/ratatui_ruby/schema/overlay.rbs
|
|
157
219
|
- sig/ratatui_ruby/schema/paragraph.rbs
|
|
220
|
+
- sig/ratatui_ruby/schema/rect.rbs
|
|
158
221
|
- sig/ratatui_ruby/schema/scrollbar.rbs
|
|
159
222
|
- sig/ratatui_ruby/schema/sparkline.rbs
|
|
160
223
|
- sig/ratatui_ruby/schema/style.rbs
|
|
@@ -162,6 +225,31 @@ files:
|
|
|
162
225
|
- sig/ratatui_ruby/schema/tabs.rbs
|
|
163
226
|
- sig/ratatui_ruby/test_helper.rbs
|
|
164
227
|
- sig/ratatui_ruby/version.rbs
|
|
228
|
+
- tasks/bump.rake
|
|
229
|
+
- tasks/bump/cargo_lockfile.rb
|
|
230
|
+
- tasks/bump/changelog.rb
|
|
231
|
+
- tasks/bump/comparison_links.rb
|
|
232
|
+
- tasks/bump/header.rb
|
|
233
|
+
- tasks/bump/history.rb
|
|
234
|
+
- tasks/bump/manifest.rb
|
|
235
|
+
- tasks/bump/ruby_gem.rb
|
|
236
|
+
- tasks/bump/sem_ver.rb
|
|
237
|
+
- tasks/bump/unreleased_section.rb
|
|
238
|
+
- tasks/doc.rake
|
|
239
|
+
- tasks/extension.rake
|
|
240
|
+
- tasks/lint.rake
|
|
241
|
+
- tasks/rdoc_config.rb
|
|
242
|
+
- tasks/resources/build.yml.erb
|
|
243
|
+
- tasks/resources/index.html.erb
|
|
244
|
+
- tasks/resources/rubies.yml
|
|
245
|
+
- tasks/sourcehut.rake
|
|
246
|
+
- tasks/test.rake
|
|
247
|
+
- tasks/website.rake
|
|
248
|
+
- tasks/website/index_page.rb
|
|
249
|
+
- tasks/website/version.rb
|
|
250
|
+
- tasks/website/version_menu.rb
|
|
251
|
+
- tasks/website/versioned_documentation.rb
|
|
252
|
+
- tasks/website/website.rb
|
|
165
253
|
- vendor/goodcop/base.yml
|
|
166
254
|
homepage: https://sr.ht/~kerrick/ratatui_ruby/
|
|
167
255
|
licenses:
|
|
@@ -173,17 +261,20 @@ metadata:
|
|
|
173
261
|
changelog_uri: https://git.sr.ht/~kerrick/ratatui_ruby/tree/main/item/CHANGELOG.md
|
|
174
262
|
mailing_list_uri: https://lists.sr.ht/~kerrick/ratatui_ruby-discuss
|
|
175
263
|
source_code_uri: https://git.sr.ht/~kerrick/ratatui_ruby
|
|
176
|
-
documentation_uri: https://
|
|
177
|
-
wiki_uri: https://man.sr.ht/~kerrick/ratatui_ruby/
|
|
264
|
+
documentation_uri: https://git.sr.ht/~kerrick/ratatui_ruby/tree/HEAD/doc/index.md
|
|
265
|
+
wiki_uri: https://man.sr.ht/~kerrick/ratatui_ruby/
|
|
178
266
|
funding_uri: https://opencollective.com/ratatui
|
|
179
267
|
rdoc_options: []
|
|
180
268
|
require_paths:
|
|
181
269
|
- lib
|
|
182
270
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
183
271
|
requirements:
|
|
184
|
-
- -
|
|
272
|
+
- - ">="
|
|
273
|
+
- !ruby/object:Gem::Version
|
|
274
|
+
version: 3.2.9
|
|
275
|
+
- - "<"
|
|
185
276
|
- !ruby/object:Gem::Version
|
|
186
|
-
version:
|
|
277
|
+
version: '5'
|
|
187
278
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
188
279
|
requirements:
|
|
189
280
|
- - ">="
|
data/.build.yml
DELETED
|
@@ -1,34 +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
|
-
- ruby
|
|
7
|
-
- rust
|
|
8
|
-
- cargo
|
|
9
|
-
- make
|
|
10
|
-
- gcc
|
|
11
|
-
- clang
|
|
12
|
-
sources:
|
|
13
|
-
- https://git.sr.ht/~kerrick/ratatui_ruby
|
|
14
|
-
tasks:
|
|
15
|
-
- setup: |
|
|
16
|
-
cd ratatui_ruby
|
|
17
|
-
export PATH="$PATH:$(ruby -e 'puts Gem.user_dir')/bin"
|
|
18
|
-
gem install --user-install bundler -v 2.6.9
|
|
19
|
-
bundle config set --local path 'vendor/bundle'
|
|
20
|
-
bundle install
|
|
21
|
-
- test: |
|
|
22
|
-
cd ratatui_ruby
|
|
23
|
-
export PATH="$PATH:$(ruby -e 'puts Gem.user_dir')/bin"
|
|
24
|
-
bundle config set --local path 'vendor/bundle'
|
|
25
|
-
# Compile the extension before running tests
|
|
26
|
-
bundle exec rake compile
|
|
27
|
-
# Run the test suite (Headless)
|
|
28
|
-
bundle exec rake test
|
|
29
|
-
- package: |
|
|
30
|
-
cd ratatui_ruby
|
|
31
|
-
export PATH="$PATH:$(ruby -e 'puts Gem.user_dir')/bin"
|
|
32
|
-
bundle config set --local path 'vendor/bundle'
|
|
33
|
-
# Verify packaging works
|
|
34
|
-
gem build ratatui_ruby.gemspec
|
data/.ruby-version
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
3.4.7
|
data/CODE_OF_CONDUCT.md
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
SPDX-FileCopyrightText: 2025 Kerrick Long <me@kerricklong.com>
|
|
3
|
-
SPDX-License-Identifier: CC-BY-SA-4.0
|
|
4
|
-
-->
|
|
5
|
-
# **ratatui_ruby** Code of Conduct
|
|
6
|
-
|
|
7
|
-
This project is intended to be a safe, productive collaboration, and contributors are expected to adhere to the [Ruby Community Conduct Guideline](https://www.ruby-lang.org/en/conduct/).
|
|
8
|
-
|
|
9
|
-
For your convenience, it is reproduced below. If this document ever falls out of date and/or conflicts with the linked [Ruby Community Conduct Guideline](https://www.ruby-lang.org/en/conduct/) document, the linked document takes precedence.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
<!-- SPDX-SnippetBegin -->
|
|
13
|
-
<!--
|
|
14
|
-
SPDX-FileCopyrightText: 2016 Yukihiro Matsumoto <matz@netlab.jp>
|
|
15
|
-
SPDX-License-Identifier: BSD-2-Clause
|
|
16
|
-
-->
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
## The Ruby Community Conduct Guideline
|
|
20
|
-
|
|
21
|
-
> **We have picked the following conduct guideline based on an early proposed draft of the PostgreSQL CoC, for Ruby developers community for safe, productive collaboration. Each Ruby related community (conference etc.) may pick their own Code of Conduct.**
|
|
22
|
-
>
|
|
23
|
-
> This document provides community guidelines for a safe, respectful, productive, and collaborative place for any person who is willing to contribute to the Ruby community. It applies to all “collaborative space”, which is defined as community communications channels (such as mailing lists, submitted patches, commit comments, etc.).
|
|
24
|
-
>
|
|
25
|
-
> - Participants will be tolerant of opposing views.
|
|
26
|
-
> - Participants must ensure that their language and actions are free of personal attacks and disparaging personal remarks.
|
|
27
|
-
> - When interpreting the words and actions of others, participants should always assume good intentions.
|
|
28
|
-
> - Behaviour which can be reasonably considered harassment will not be tolerated.
|
|
29
|
-
|
|
30
|
-
<!-- SPDX-SnippetEnd -->
|
data/CONTRIBUTING.md
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
SPDX-FileCopyrightText: 2025 Kerrick Long <me@kerricklong.com>
|
|
3
|
-
SPDX-License-Identifier: CC-BY-SA-4.0
|
|
4
|
-
-->
|
|
5
|
-
# Contribution Guide
|
|
6
|
-
|
|
7
|
-
This project is intended to be a safe, productive collaboration, and contributors are expected to adhere to the [Ruby Community Conduct Guideline](https://www.ruby-lang.org/en/conduct/).
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
## Reporting Issues
|
|
11
|
-
|
|
12
|
-
Bug reports are welcome on [sourcehut](https://sourcehut.org) at https://todo.sr.ht/~kerrick/ratatui_ruby.
|
|
13
|
-
|
|
14
|
-
Issues for Ratatui should be filed at [ratatui/ratatui](https://github.com/ratatui/ratatui).
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
## Requesting Features
|
|
18
|
-
|
|
19
|
-
ratatui_ruby aims to wrap all [Ratatui](https://ratatui.rs) features. Please request new features there.
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
## Pull Requests
|
|
23
|
-
|
|
24
|
-
Please join our **devel** mailing list at https://lists.sr.ht/~kerrick/ratatui_ruby-devel. Then, send a pull request via email to the mailing list.
|
|
25
|
-
|
|
26
|
-
The easiest way to send a pull request via email is to use [git-send-email](https://git-scm.com/docs/git-send-email). If you are unfamiliar with using git to send a pull request via email, read the [four-step tutorial at git-send-email.io](https://git-send-email.io).
|
|
27
|
-
|
|
28
|
-
Alternatively, [sourcehut](https://sourcehut.org) has a web UI you can use to prepare the email to send. [Read their documentation](https://man.sr.ht/git.sr.ht/#sending-patches-upstream) to find out if this is right for you.
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
## Development
|
|
32
|
-
|
|
33
|
-
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
|
34
|
-
|
|
35
|
-
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
## Contributors’ Documentation
|
|
39
|
-
|
|
40
|
-
We have documentation on how **ratatui_ruby** works internally, how it is designed, and how it interacts with the official Ratatui projects. See the [contributors’ documentation index](docs/contributors/index.md) for more information.
|
|
Binary file
|