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.
Files changed (127) hide show
  1. checksums.yaml +4 -4
  2. data/.builds/ruby-3.2.yml +52 -0
  3. data/.builds/ruby-3.3.yml +52 -0
  4. data/.builds/ruby-3.4.yml +52 -0
  5. data/.builds/ruby-4.0.0.yml +53 -0
  6. data/.pre-commit-config.yaml +9 -2
  7. data/AGENTS.md +53 -5
  8. data/CHANGELOG.md +51 -1
  9. data/README.md +38 -18
  10. data/REUSE.toml +5 -0
  11. data/Rakefile +3 -100
  12. data/{docs → doc}/contributors/index.md +2 -1
  13. data/doc/custom.css +8 -0
  14. data/doc/images/examples-calendar_demo.rb.png +0 -0
  15. data/doc/images/examples-chart_demo.rb.png +0 -0
  16. data/doc/images/examples-custom_widget.rb.png +0 -0
  17. data/doc/images/examples-list_styles.rb.png +0 -0
  18. data/doc/images/examples-popup_demo.rb.gif +0 -0
  19. data/doc/images/examples-quickstart_lifecycle.rb.png +0 -0
  20. data/doc/images/examples-scroll_text.rb.png +0 -0
  21. data/doc/images/examples-stock_ticker.rb.png +0 -0
  22. data/doc/images/examples-table_select.rb.png +0 -0
  23. data/{docs → doc}/index.md +1 -1
  24. data/{docs → doc}/quickstart.md +81 -11
  25. data/examples/analytics.rb +2 -1
  26. data/examples/calendar_demo.rb +55 -0
  27. data/examples/chart_demo.rb +84 -0
  28. data/examples/custom_widget.rb +43 -0
  29. data/examples/list_styles.rb +66 -0
  30. data/examples/login_form.rb +2 -1
  31. data/examples/popup_demo.rb +105 -0
  32. data/examples/quickstart_dsl.rb +30 -0
  33. data/examples/quickstart_lifecycle.rb +40 -0
  34. data/examples/readme_usage.rb +21 -0
  35. data/examples/scroll_text.rb +74 -0
  36. data/examples/stock_ticker.rb +13 -5
  37. data/examples/system_monitor.rb +2 -1
  38. data/examples/table_select.rb +70 -0
  39. data/examples/test_calendar_demo.rb +66 -0
  40. data/examples/test_list_styles.rb +61 -0
  41. data/examples/test_popup_demo.rb +62 -0
  42. data/examples/test_scroll_text.rb +130 -0
  43. data/examples/test_table_select.rb +37 -0
  44. data/ext/ratatui_ruby/.cargo/config.toml +5 -0
  45. data/ext/ratatui_ruby/Cargo.lock +260 -50
  46. data/ext/ratatui_ruby/Cargo.toml +5 -4
  47. data/ext/ratatui_ruby/extconf.rb +1 -1
  48. data/ext/ratatui_ruby/src/buffer.rs +54 -0
  49. data/ext/ratatui_ruby/src/events.rs +115 -107
  50. data/ext/ratatui_ruby/src/lib.rs +15 -6
  51. data/ext/ratatui_ruby/src/rendering.rs +18 -1
  52. data/ext/ratatui_ruby/src/style.rs +2 -1
  53. data/ext/ratatui_ruby/src/terminal.rs +27 -24
  54. data/ext/ratatui_ruby/src/widgets/calendar.rs +82 -0
  55. data/ext/ratatui_ruby/src/widgets/canvas.rs +1 -2
  56. data/ext/ratatui_ruby/src/widgets/center.rs +0 -2
  57. data/ext/ratatui_ruby/src/widgets/chart.rs +260 -0
  58. data/ext/ratatui_ruby/src/widgets/clear.rs +37 -0
  59. data/ext/ratatui_ruby/src/widgets/cursor.rs +1 -1
  60. data/ext/ratatui_ruby/src/widgets/layout.rs +2 -1
  61. data/ext/ratatui_ruby/src/widgets/list.rs +44 -5
  62. data/ext/ratatui_ruby/src/widgets/mod.rs +3 -1
  63. data/ext/ratatui_ruby/src/widgets/overlay.rs +2 -1
  64. data/ext/ratatui_ruby/src/widgets/paragraph.rs +10 -0
  65. data/ext/ratatui_ruby/src/widgets/table.rs +25 -6
  66. data/ext/ratatui_ruby/src/widgets/tabs.rs +2 -1
  67. data/lib/ratatui_ruby/dsl.rb +64 -0
  68. data/lib/ratatui_ruby/schema/calendar.rb +26 -0
  69. data/lib/ratatui_ruby/schema/chart.rb +81 -0
  70. data/lib/ratatui_ruby/schema/clear.rb +83 -0
  71. data/lib/ratatui_ruby/schema/list.rb +8 -2
  72. data/lib/ratatui_ruby/schema/paragraph.rb +7 -4
  73. data/lib/ratatui_ruby/schema/rect.rb +24 -0
  74. data/lib/ratatui_ruby/schema/table.rb +8 -2
  75. data/lib/ratatui_ruby/version.rb +1 -1
  76. data/lib/ratatui_ruby.rb +24 -2
  77. data/mise.toml +8 -0
  78. data/sig/ratatui_ruby/buffer.rbs +11 -0
  79. data/sig/ratatui_ruby/schema/calendar.rbs +13 -0
  80. data/sig/ratatui_ruby/schema/{line_chart.rbs → chart.rbs} +20 -1
  81. data/sig/ratatui_ruby/schema/list.rbs +4 -1
  82. data/sig/ratatui_ruby/schema/rect.rbs +14 -0
  83. data/tasks/bump/cargo_lockfile.rb +19 -0
  84. data/tasks/bump/changelog.rb +37 -0
  85. data/tasks/bump/comparison_links.rb +41 -0
  86. data/tasks/bump/header.rb +30 -0
  87. data/tasks/bump/history.rb +30 -0
  88. data/tasks/bump/manifest.rb +31 -0
  89. data/tasks/bump/ruby_gem.rb +35 -0
  90. data/tasks/bump/sem_ver.rb +34 -0
  91. data/tasks/bump/unreleased_section.rb +38 -0
  92. data/tasks/bump.rake +49 -0
  93. data/tasks/doc.rake +25 -0
  94. data/tasks/extension.rake +12 -0
  95. data/tasks/lint.rake +49 -0
  96. data/tasks/rdoc_config.rb +15 -0
  97. data/tasks/resources/build.yml.erb +65 -0
  98. data/tasks/resources/index.html.erb +38 -0
  99. data/tasks/resources/rubies.yml +7 -0
  100. data/tasks/sourcehut.rake +38 -0
  101. data/tasks/test.rake +31 -0
  102. data/tasks/website/index_page.rb +28 -0
  103. data/tasks/website/version.rb +117 -0
  104. data/tasks/website/version_menu.rb +68 -0
  105. data/tasks/website/versioned_documentation.rb +49 -0
  106. data/tasks/website/website.rb +53 -0
  107. data/tasks/website.rake +26 -0
  108. metadata +119 -28
  109. data/.build.yml +0 -34
  110. data/.ruby-version +0 -1
  111. data/CODE_OF_CONDUCT.md +0 -30
  112. data/CONTRIBUTING.md +0 -40
  113. data/docs/images/examples-stock_ticker.rb.png +0 -0
  114. data/ext/ratatui_ruby/src/widgets/linechart.rs +0 -154
  115. data/lib/ratatui_ruby/schema/line_chart.rb +0 -41
  116. /data/{docs → doc}/application_testing.md +0 -0
  117. /data/{docs → doc}/contributors/design/ruby_frontend.md +0 -0
  118. /data/{docs → doc}/contributors/design/rust_backend.md +0 -0
  119. /data/{docs → doc}/contributors/design.md +0 -0
  120. /data/{docs → doc}/images/examples-analytics.rb.png +0 -0
  121. /data/{docs → doc}/images/examples-box_demo.rb.png +0 -0
  122. /data/{docs → doc}/images/examples-dashboard.rb.png +0 -0
  123. /data/{docs → doc}/images/examples-login_form.rb.png +0 -0
  124. /data/{docs → doc}/images/examples-map_demo.rb.png +0 -0
  125. /data/{docs → doc}/images/examples-mouse_events.rb.png +0 -0
  126. /data/{docs → doc}/images/examples-scrollbar_demo.rb.png +0 -0
  127. /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
@@ -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.1.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
- - ".build.yml"
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
- - docs/application_testing.md
67
- - docs/contributors/design.md
68
- - docs/contributors/design/ruby_frontend.md
69
- - docs/contributors/design/rust_backend.md
70
- - docs/contributors/index.md
71
- - docs/images/examples-analytics.rb.png
72
- - docs/images/examples-box_demo.rb.png
73
- - docs/images/examples-dashboard.rb.png
74
- - docs/images/examples-login_form.rb.png
75
- - docs/images/examples-map_demo.rb.png
76
- - docs/images/examples-mouse_events.rb.png
77
- - docs/images/examples-scrollbar_demo.rb.png
78
- - docs/images/examples-stock_ticker.rb.png
79
- - docs/images/examples-system_monitor.rb.png
80
- - docs/index.md
81
- - docs/quickstart.md
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://man.sr.ht/~kerrick/ratatui_ruby/docs/
177
- wiki_uri: https://man.sr.ht/~kerrick/ratatui_ruby/docs/contributors/
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: 3.4.7
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.