ratatui_ruby 0.4.0 → 0.5.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 (351) hide show
  1. checksums.yaml +4 -4
  2. data/.builds/ruby-3.2.yml +1 -1
  3. data/.builds/ruby-3.3.yml +1 -1
  4. data/.builds/ruby-3.4.yml +1 -1
  5. data/.builds/ruby-4.0.0.yml +1 -1
  6. data/AGENTS.md +87 -171
  7. data/CHANGELOG.md +38 -1
  8. data/README.md +8 -3
  9. data/REUSE.toml +20 -0
  10. data/doc/application_architecture.md +105 -45
  11. data/doc/application_testing.md +5 -3
  12. data/doc/contributors/design/ruby_frontend.md +9 -5
  13. data/doc/contributors/developing_examples.md +76 -18
  14. data/doc/contributors/documentation_style.md +7 -0
  15. data/doc/contributors/index.md +2 -0
  16. data/doc/event_handling.md +10 -4
  17. data/doc/images/app_all_events.png +0 -0
  18. data/doc/images/app_color_picker.png +0 -0
  19. data/doc/images/verify_readme_usage.png +0 -0
  20. data/doc/images/widget_barchart_demo.png +0 -0
  21. data/doc/images/widget_block_padding.png +0 -0
  22. data/doc/images/widget_block_titles.png +0 -0
  23. data/doc/images/widget_box_demo.png +0 -0
  24. data/doc/images/widget_calendar_demo.png +0 -0
  25. data/doc/images/widget_cell_demo.png +0 -0
  26. data/doc/images/widget_chart_demo.png +0 -0
  27. data/doc/images/widget_gauge_demo.png +0 -0
  28. data/doc/images/widget_layout_split.png +0 -0
  29. data/doc/images/widget_line_gauge_demo.png +0 -0
  30. data/doc/images/widget_list_demo.png +0 -0
  31. data/doc/images/widget_ratatui_logo_demo.png +0 -0
  32. data/doc/images/widget_ratatui_mascot_demo.png +0 -0
  33. data/doc/images/widget_render.png +0 -0
  34. data/doc/images/widget_scrollbar_demo.png +0 -0
  35. data/doc/images/widget_sparkline_demo.png +0 -0
  36. data/doc/images/widget_style_colors.png +0 -0
  37. data/doc/images/widget_table_flex.png +0 -0
  38. data/doc/images/widget_tabs_demo.png +0 -0
  39. data/doc/interactive_design.md +25 -30
  40. data/doc/quickstart.md +147 -120
  41. data/examples/app_all_events/README.md +81 -0
  42. data/examples/app_all_events/app.rb +93 -0
  43. data/examples/app_all_events/model/event_color_cycle.rb +41 -0
  44. data/examples/app_all_events/model/event_entry.rb +75 -0
  45. data/examples/app_all_events/model/events.rb +180 -0
  46. data/examples/app_all_events/model/highlight.rb +57 -0
  47. data/examples/app_all_events/model/timestamp.rb +54 -0
  48. data/examples/app_all_events/test/snapshots/after_focus_lost.txt +24 -0
  49. data/examples/app_all_events/test/snapshots/after_focus_regained.txt +24 -0
  50. data/examples/app_all_events/test/snapshots/after_horizontal_resize.txt +24 -0
  51. data/examples/app_all_events/test/snapshots/after_key_a.txt +24 -0
  52. data/examples/app_all_events/test/snapshots/after_key_ctrl_x.txt +24 -0
  53. data/examples/app_all_events/test/snapshots/after_mouse_click.txt +24 -0
  54. data/examples/app_all_events/test/snapshots/after_mouse_drag.txt +24 -0
  55. data/examples/app_all_events/test/snapshots/after_multiple_events.txt +24 -0
  56. data/examples/app_all_events/test/snapshots/after_paste.txt +24 -0
  57. data/examples/app_all_events/test/snapshots/after_resize.txt +24 -0
  58. data/examples/app_all_events/test/snapshots/after_right_click.txt +24 -0
  59. data/examples/app_all_events/test/snapshots/after_vertical_resize.txt +24 -0
  60. data/examples/app_all_events/test/snapshots/initial_state.txt +24 -0
  61. data/examples/app_all_events/view/app_view.rb +78 -0
  62. data/examples/app_all_events/view/controls_view.rb +50 -0
  63. data/examples/app_all_events/view/counts_view.rb +55 -0
  64. data/examples/app_all_events/view/live_view.rb +69 -0
  65. data/examples/app_all_events/view/log_view.rb +60 -0
  66. data/examples/app_all_events/view.rb +7 -0
  67. data/examples/app_all_events/view_state.rb +42 -0
  68. data/examples/app_color_picker/README.md +94 -0
  69. data/examples/app_color_picker/app.rb +112 -0
  70. data/examples/app_color_picker/clipboard.rb +84 -0
  71. data/examples/app_color_picker/color.rb +191 -0
  72. data/examples/app_color_picker/copy_dialog.rb +170 -0
  73. data/examples/app_color_picker/harmony.rb +56 -0
  74. data/examples/app_color_picker/input.rb +142 -0
  75. data/examples/app_color_picker/palette.rb +80 -0
  76. data/examples/app_color_picker/scene.rb +201 -0
  77. data/examples/{login_form → app_login_form}/app.rb +39 -42
  78. data/examples/{map_demo → app_map_demo}/app.rb +24 -21
  79. data/examples/{table_select → app_table_select}/app.rb +68 -65
  80. data/examples/{quickstart_dsl → verify_quickstart_dsl}/app.rb +15 -6
  81. data/examples/verify_quickstart_layout/app.rb +69 -0
  82. data/examples/{quickstart_lifecycle → verify_quickstart_lifecycle}/app.rb +19 -10
  83. data/examples/verify_readme_usage/app.rb +34 -0
  84. data/examples/widget_barchart_demo/app.rb +238 -0
  85. data/examples/{block_padding → widget_block_padding}/app.rb +17 -13
  86. data/examples/{block_titles → widget_block_titles}/app.rb +25 -17
  87. data/examples/{box_demo → widget_box_demo}/app.rb +99 -65
  88. data/examples/widget_calendar_demo/app.rb +109 -0
  89. data/examples/widget_cell_demo/app.rb +104 -0
  90. data/examples/widget_chart_demo/app.rb +213 -0
  91. data/examples/widget_gauge_demo/app.rb +212 -0
  92. data/examples/widget_layout_split/app.rb +246 -0
  93. data/examples/widget_line_gauge_demo/app.rb +217 -0
  94. data/examples/widget_list_demo/app.rb +382 -0
  95. data/examples/widget_list_styles/app.rb +141 -0
  96. data/examples/widget_popup_demo/app.rb +104 -0
  97. data/examples/widget_ratatui_logo_demo/app.rb +103 -0
  98. data/examples/widget_ratatui_mascot_demo/app.rb +93 -0
  99. data/examples/widget_rect/app.rb +205 -0
  100. data/examples/widget_render/app.rb +184 -0
  101. data/examples/widget_rich_text/app.rb +137 -0
  102. data/examples/widget_scroll_text/app.rb +108 -0
  103. data/examples/widget_scrollbar_demo/app.rb +153 -0
  104. data/examples/widget_sparkline_demo/app.rb +274 -0
  105. data/examples/widget_style_colors/app.rb +19 -21
  106. data/examples/widget_table_flex/app.rb +95 -0
  107. data/examples/widget_tabs_demo/app.rb +167 -0
  108. data/ext/ratatui_ruby/Cargo.lock +1 -1
  109. data/ext/ratatui_ruby/Cargo.toml +1 -1
  110. data/ext/ratatui_ruby/src/events.rs +121 -36
  111. data/ext/ratatui_ruby/src/frame.rs +115 -0
  112. data/ext/ratatui_ruby/src/lib.rs +79 -26
  113. data/ext/ratatui_ruby/src/rendering.rs +8 -4
  114. data/ext/ratatui_ruby/src/style.rs +138 -57
  115. data/ext/ratatui_ruby/src/terminal.rs +5 -9
  116. data/ext/ratatui_ruby/src/text.rs +13 -6
  117. data/ext/ratatui_ruby/src/widgets/barchart.rs +56 -54
  118. data/ext/ratatui_ruby/src/widgets/block.rs +7 -6
  119. data/ext/ratatui_ruby/src/widgets/canvas.rs +21 -3
  120. data/ext/ratatui_ruby/src/widgets/chart.rs +20 -10
  121. data/ext/ratatui_ruby/src/widgets/layout.rs +9 -4
  122. data/ext/ratatui_ruby/src/widgets/list.rs +32 -9
  123. data/ext/ratatui_ruby/src/widgets/overlay.rs +2 -1
  124. data/ext/ratatui_ruby/src/widgets/paragraph.rs +1 -1
  125. data/ext/ratatui_ruby/src/widgets/ratatui_logo.rs +19 -8
  126. data/ext/ratatui_ruby/src/widgets/ratatui_mascot.rs +17 -10
  127. data/ext/ratatui_ruby/src/widgets/scrollbar.rs +4 -2
  128. data/ext/ratatui_ruby/src/widgets/sparkline.rs +14 -11
  129. data/ext/ratatui_ruby/src/widgets/table.rs +8 -4
  130. data/ext/ratatui_ruby/src/widgets/tabs.rs +11 -11
  131. data/lib/ratatui_ruby/cell.rb +3 -3
  132. data/lib/ratatui_ruby/event/key.rb +1 -1
  133. data/lib/ratatui_ruby/event/none.rb +43 -0
  134. data/lib/ratatui_ruby/event.rb +56 -4
  135. data/lib/ratatui_ruby/frame.rb +87 -0
  136. data/lib/ratatui_ruby/schema/bar_chart/bar.rb +11 -11
  137. data/lib/ratatui_ruby/schema/bar_chart/bar_group.rb +1 -5
  138. data/lib/ratatui_ruby/schema/bar_chart.rb +217 -217
  139. data/lib/ratatui_ruby/schema/block.rb +163 -168
  140. data/lib/ratatui_ruby/schema/calendar.rb +66 -67
  141. data/lib/ratatui_ruby/schema/canvas.rb +63 -63
  142. data/lib/ratatui_ruby/schema/center.rb +46 -46
  143. data/lib/ratatui_ruby/schema/chart.rb +135 -143
  144. data/lib/ratatui_ruby/schema/clear.rb +42 -42
  145. data/lib/ratatui_ruby/schema/constraint.rb +76 -76
  146. data/lib/ratatui_ruby/schema/cursor.rb +25 -25
  147. data/lib/ratatui_ruby/schema/gauge.rb +53 -53
  148. data/lib/ratatui_ruby/schema/layout.rb +87 -87
  149. data/lib/ratatui_ruby/schema/line_gauge.rb +62 -62
  150. data/lib/ratatui_ruby/schema/list.rb +86 -84
  151. data/lib/ratatui_ruby/schema/overlay.rb +31 -31
  152. data/lib/ratatui_ruby/schema/paragraph.rb +80 -80
  153. data/lib/ratatui_ruby/schema/ratatui_logo.rb +10 -6
  154. data/lib/ratatui_ruby/schema/ratatui_mascot.rb +10 -5
  155. data/lib/ratatui_ruby/schema/rect.rb +60 -60
  156. data/lib/ratatui_ruby/schema/scrollbar.rb +119 -119
  157. data/lib/ratatui_ruby/schema/shape/label.rb +1 -1
  158. data/lib/ratatui_ruby/schema/sparkline.rb +111 -110
  159. data/lib/ratatui_ruby/schema/style.rb +46 -46
  160. data/lib/ratatui_ruby/schema/table.rb +112 -119
  161. data/lib/ratatui_ruby/schema/tabs.rb +66 -67
  162. data/lib/ratatui_ruby/session/autodoc.rb +417 -0
  163. data/lib/ratatui_ruby/session.rb +40 -23
  164. data/lib/ratatui_ruby/test_helper.rb +185 -19
  165. data/lib/ratatui_ruby/version.rb +1 -1
  166. data/lib/ratatui_ruby.rb +65 -39
  167. data/{examples/sparkline_demo → sig/examples/app_all_events}/app.rbs +3 -2
  168. data/sig/examples/app_all_events/model/event_entry.rbs +16 -0
  169. data/sig/examples/app_all_events/model/events.rbs +15 -0
  170. data/sig/examples/app_all_events/model/timestamp.rbs +11 -0
  171. data/sig/examples/app_all_events/view/app_view.rbs +8 -0
  172. data/sig/examples/app_all_events/view/controls_view.rbs +6 -0
  173. data/sig/examples/app_all_events/view/counts_view.rbs +6 -0
  174. data/sig/examples/app_all_events/view/live_view.rbs +6 -0
  175. data/sig/examples/app_all_events/view/log_view.rbs +6 -0
  176. data/sig/examples/app_all_events/view.rbs +8 -0
  177. data/sig/examples/app_all_events/view_state.rbs +15 -0
  178. data/{examples/list_demo → sig/examples/app_color_picker}/app.rbs +2 -2
  179. data/sig/examples/app_login_form/app.rbs +11 -0
  180. data/sig/examples/app_map_demo/app.rbs +11 -0
  181. data/sig/examples/app_table_select/app.rbs +11 -0
  182. data/sig/examples/verify_quickstart_dsl/app.rbs +11 -0
  183. data/sig/examples/verify_quickstart_lifecycle/app.rbs +11 -0
  184. data/sig/examples/verify_readme_usage/app.rbs +11 -0
  185. data/sig/examples/widget_block_padding/app.rbs +11 -0
  186. data/sig/examples/widget_block_titles/app.rbs +11 -0
  187. data/sig/examples/widget_box_demo/app.rbs +11 -0
  188. data/sig/examples/widget_calendar_demo/app.rbs +11 -0
  189. data/sig/examples/widget_cell_demo/app.rbs +11 -0
  190. data/sig/examples/widget_chart_demo/app.rbs +11 -0
  191. data/{examples/gauge_demo → sig/examples/widget_gauge_demo}/app.rbs +4 -0
  192. data/sig/examples/widget_layout_split/app.rbs +10 -0
  193. data/sig/examples/widget_line_gauge_demo/app.rbs +11 -0
  194. data/sig/examples/widget_list_demo/app.rbs +12 -0
  195. data/sig/examples/widget_list_styles/app.rbs +11 -0
  196. data/sig/examples/widget_popup_demo/app.rbs +11 -0
  197. data/sig/examples/widget_ratatui_logo_demo/app.rbs +11 -0
  198. data/sig/examples/widget_ratatui_mascot_demo/app.rbs +11 -0
  199. data/sig/examples/widget_rect/app.rbs +12 -0
  200. data/sig/examples/widget_render/app.rbs +10 -0
  201. data/sig/examples/widget_rich_text/app.rbs +11 -0
  202. data/sig/examples/widget_scroll_text/app.rbs +11 -0
  203. data/sig/examples/widget_scrollbar_demo/app.rbs +11 -0
  204. data/sig/examples/widget_sparkline_demo/app.rbs +10 -0
  205. data/{examples → sig/examples}/widget_style_colors/app.rbs +1 -1
  206. data/sig/examples/widget_table_flex/app.rbs +11 -0
  207. data/sig/ratatui_ruby/frame.rbs +9 -0
  208. data/sig/ratatui_ruby/ratatui_ruby.rbs +3 -2
  209. data/sig/ratatui_ruby/schema/draw.rbs +4 -0
  210. data/sig/ratatui_ruby/schema/layout.rbs +1 -1
  211. data/sig/ratatui_ruby/session.rbs +94 -0
  212. data/tasks/autodoc/inventory.rb +61 -0
  213. data/tasks/autodoc/member.rb +56 -0
  214. data/tasks/autodoc/name.rb +19 -0
  215. data/tasks/autodoc/notice.rb +26 -0
  216. data/tasks/autodoc/rbs.rb +38 -0
  217. data/tasks/autodoc/rdoc.rb +45 -0
  218. data/tasks/autodoc.rake +47 -0
  219. data/tasks/bump/history.rb +2 -2
  220. data/tasks/doc.rake +600 -6
  221. data/tasks/example_viewer.html.erb +172 -0
  222. data/tasks/lint.rake +8 -4
  223. data/tasks/resources/index.html.erb +6 -0
  224. data/tasks/sourcehut.rake +4 -4
  225. data/tasks/terminal_preview/app_screenshot.rb +1 -3
  226. data/tasks/terminal_preview/crash_report.rb +7 -9
  227. data/tasks/terminal_preview/launcher_script.rb +4 -6
  228. data/tasks/terminal_preview/preview_collection.rb +4 -6
  229. data/tasks/terminal_preview/safety_confirmation.rb +3 -5
  230. data/tasks/terminal_preview/saved_screenshot.rb +7 -9
  231. data/tasks/terminal_preview/terminal_window.rb +7 -9
  232. data/tasks/test.rake +1 -1
  233. data/tasks/website/index_page.rb +3 -3
  234. data/tasks/website/version.rb +10 -10
  235. data/tasks/website/version_menu.rb +10 -12
  236. data/tasks/website/versioned_documentation.rb +49 -17
  237. data/tasks/website/website.rb +6 -8
  238. data/tasks/website.rake +4 -4
  239. metadata +156 -125
  240. data/LICENSES/BSD-2-Clause.txt +0 -9
  241. data/doc/contributors/better_dx.md +0 -543
  242. data/doc/contributors/example_analysis.md +0 -82
  243. data/doc/images/all_events.png +0 -0
  244. data/doc/images/block_padding.png +0 -0
  245. data/doc/images/block_titles.png +0 -0
  246. data/doc/images/box_demo.png +0 -0
  247. data/doc/images/calendar_demo.png +0 -0
  248. data/doc/images/cell_demo.png +0 -0
  249. data/doc/images/chart_demo.png +0 -0
  250. data/doc/images/flex_layout.png +0 -0
  251. data/doc/images/gauge_demo.png +0 -0
  252. data/doc/images/line_gauge_demo.png +0 -0
  253. data/doc/images/list_demo.png +0 -0
  254. data/doc/images/readme_usage.png +0 -0
  255. data/doc/images/scrollbar_demo.png +0 -0
  256. data/doc/images/sparkline_demo.png +0 -0
  257. data/doc/images/table_flex.png +0 -0
  258. data/examples/all_events/app.rb +0 -169
  259. data/examples/all_events/app.rbs +0 -7
  260. data/examples/all_events/test_app.rb +0 -139
  261. data/examples/analytics/app.rb +0 -258
  262. data/examples/analytics/app.rbs +0 -7
  263. data/examples/analytics/test_app.rb +0 -132
  264. data/examples/block_padding/app.rbs +0 -7
  265. data/examples/block_padding/test_app.rb +0 -31
  266. data/examples/block_titles/app.rbs +0 -7
  267. data/examples/block_titles/test_app.rb +0 -34
  268. data/examples/box_demo/app.rbs +0 -7
  269. data/examples/box_demo/test_app.rb +0 -88
  270. data/examples/calendar_demo/app.rb +0 -101
  271. data/examples/calendar_demo/app.rbs +0 -7
  272. data/examples/calendar_demo/test_app.rb +0 -108
  273. data/examples/cell_demo/app.rb +0 -108
  274. data/examples/cell_demo/app.rbs +0 -7
  275. data/examples/cell_demo/test_app.rb +0 -36
  276. data/examples/chart_demo/app.rb +0 -203
  277. data/examples/chart_demo/app.rbs +0 -7
  278. data/examples/chart_demo/test_app.rb +0 -102
  279. data/examples/custom_widget/app.rb +0 -51
  280. data/examples/custom_widget/app.rbs +0 -7
  281. data/examples/custom_widget/test_app.rb +0 -30
  282. data/examples/flex_layout/app.rb +0 -156
  283. data/examples/flex_layout/app.rbs +0 -7
  284. data/examples/flex_layout/test_app.rb +0 -65
  285. data/examples/gauge_demo/app.rb +0 -182
  286. data/examples/gauge_demo/test_app.rb +0 -120
  287. data/examples/hit_test/app.rb +0 -175
  288. data/examples/hit_test/app.rbs +0 -7
  289. data/examples/hit_test/test_app.rb +0 -102
  290. data/examples/line_gauge_demo/app.rb +0 -190
  291. data/examples/line_gauge_demo/app.rbs +0 -7
  292. data/examples/line_gauge_demo/test_app.rb +0 -129
  293. data/examples/list_demo/app.rb +0 -253
  294. data/examples/list_demo/test_app.rb +0 -237
  295. data/examples/list_styles/app.rb +0 -140
  296. data/examples/list_styles/app.rbs +0 -7
  297. data/examples/list_styles/test_app.rb +0 -157
  298. data/examples/login_form/app.rbs +0 -7
  299. data/examples/login_form/test_app.rb +0 -51
  300. data/examples/map_demo/app.rbs +0 -7
  301. data/examples/map_demo/test_app.rb +0 -149
  302. data/examples/mouse_events/app.rb +0 -97
  303. data/examples/mouse_events/app.rbs +0 -7
  304. data/examples/mouse_events/test_app.rb +0 -53
  305. data/examples/popup_demo/app.rb +0 -103
  306. data/examples/popup_demo/app.rbs +0 -7
  307. data/examples/popup_demo/test_app.rb +0 -54
  308. data/examples/quickstart_dsl/app.rbs +0 -7
  309. data/examples/quickstart_dsl/test_app.rb +0 -29
  310. data/examples/quickstart_lifecycle/app.rbs +0 -7
  311. data/examples/quickstart_lifecycle/test_app.rb +0 -29
  312. data/examples/ratatui_logo_demo/app.rb +0 -79
  313. data/examples/ratatui_logo_demo/app.rbs +0 -7
  314. data/examples/ratatui_logo_demo/test_app.rb +0 -51
  315. data/examples/ratatui_mascot_demo/app.rb +0 -84
  316. data/examples/ratatui_mascot_demo/app.rbs +0 -7
  317. data/examples/ratatui_mascot_demo/test_app.rb +0 -47
  318. data/examples/readme_usage/app.rb +0 -29
  319. data/examples/readme_usage/app.rbs +0 -7
  320. data/examples/readme_usage/test_app.rb +0 -29
  321. data/examples/rich_text/app.rb +0 -141
  322. data/examples/rich_text/app.rbs +0 -7
  323. data/examples/rich_text/test_app.rb +0 -166
  324. data/examples/scroll_text/app.rb +0 -103
  325. data/examples/scroll_text/app.rbs +0 -7
  326. data/examples/scroll_text/test_app.rb +0 -110
  327. data/examples/scrollbar_demo/app.rb +0 -143
  328. data/examples/scrollbar_demo/app.rbs +0 -7
  329. data/examples/scrollbar_demo/test_app.rb +0 -77
  330. data/examples/sparkline_demo/app.rb +0 -240
  331. data/examples/sparkline_demo/test_app.rb +0 -107
  332. data/examples/table_flex/app.rb +0 -65
  333. data/examples/table_flex/app.rbs +0 -7
  334. data/examples/table_flex/test_app.rb +0 -36
  335. data/examples/table_select/app.rbs +0 -7
  336. data/examples/table_select/test_app.rb +0 -180
  337. data/examples/widget_style_colors/test_app.rb +0 -48
  338. /data/doc/images/{analytics.png → app_analytics.png} +0 -0
  339. /data/doc/images/{custom_widget.png → app_custom_widget.png} +0 -0
  340. /data/doc/images/{login_form.png → app_login_form.png} +0 -0
  341. /data/doc/images/{map_demo.png → app_map_demo.png} +0 -0
  342. /data/doc/images/{mouse_events.png → app_mouse_events.png} +0 -0
  343. /data/doc/images/{table_select.png → app_table_select.png} +0 -0
  344. /data/doc/images/{quickstart_dsl.png → verify_quickstart_dsl.png} +0 -0
  345. /data/doc/images/{ratatui_logo_demo.png → verify_quickstart_layout.png} +0 -0
  346. /data/doc/images/{quickstart_lifecycle.png → verify_quickstart_lifecycle.png} +0 -0
  347. /data/doc/images/{list_styles.png → widget_list_styles.png} +0 -0
  348. /data/doc/images/{popup_demo.png → widget_popup_demo.png} +0 -0
  349. /data/doc/images/{hit_test.png → widget_rect.png} +0 -0
  350. /data/doc/images/{rich_text.png → widget_rich_text.png} +0 -0
  351. /data/doc/images/{scroll_text.png → widget_scroll_text.png} +0 -0
@@ -12,38 +12,70 @@ class VersionedDocumentation
12
12
 
13
13
  def publish_to(path, project_name:, globs:, assets: [])
14
14
  puts "Building documentation for #{@version.name}..."
15
-
15
+
16
16
  absolute_path = File.absolute_path(path)
17
17
  gemfile_path = File.absolute_path("Gemfile")
18
18
  custom_css_path = File.absolute_path("doc/custom.css")
19
+ rakefile_path = File.absolute_path("Rakefile")
20
+ tasks_dir_path = File.absolute_path("tasks")
21
+
22
+ @version.checkout(globs:) do |source_path|
23
+ # Copy current Rakefile and tasks into the temp directory
24
+ # This ensures all versions use the latest example generation logic
25
+ FileUtils.cp(rakefile_path, File.join(source_path, "Rakefile"))
26
+ FileUtils.cp_r(tasks_dir_path, File.join(source_path, "tasks"))
19
27
 
20
- @version.checkout(globs: globs) do |source_path|
21
28
  Dir.chdir(source_path) do
22
29
  title = "#{project_name} #{@version.name}"
23
30
  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
+ # Use rake rerdoc to ensure copy_examples runs
33
+ # Set environment variables to override rdoc settings
34
+ success = system(
35
+ {
36
+ "BUNDLE_GEMFILE" => gemfile_path,
37
+ "RDOC_OUTPUT" => absolute_path,
38
+ "RDOC_TITLE" => title,
39
+ "RDOC_CUSTOM_CSS" => custom_css_path,
40
+ },
41
+ "bundle exec rake rerdoc"
31
42
  )
32
43
 
44
+ # Fall back to direct rdoc call if rake fails for any reason
45
+ unless success
46
+ puts " Rake task failed, falling back to direct rdoc call..."
47
+ files = globs.flat_map { |glob| Dir[glob] }.uniq
48
+ system(
49
+ { "BUNDLE_GEMFILE" => gemfile_path },
50
+ "bundle exec rdoc -o #{absolute_path} --main #{RDocConfig::MAIN} --title '#{title}' --template-stylesheets \"#{custom_css_path}\" #{files.join(' ')}"
51
+ )
52
+ end
53
+
54
+ # Copy generated documentation to target path if it was generated elsewhere
55
+ # This handles cases where RDOC_OUTPUT wasn't respected (evaluated at load time)
56
+ temp_output_paths = ["tmp/rdoc", "doc"]
57
+ temp_output_paths.each do |temp_path|
58
+ # Check if this looks like generated rdoc (has index.html)
59
+ if Dir.exist?(temp_path) && !Dir.empty?(temp_path) && File.exist?(File.join(temp_path, "index.html"))
60
+ puts " Copying generated docs from #{temp_path} to #{absolute_path}..."
61
+ FileUtils.mkdir_p(absolute_path)
62
+ FileUtils.cp_r Dir["#{temp_path}/*"], absolute_path
63
+ break
64
+ end
65
+ end
66
+
33
67
  copy_assets_to(absolute_path, assets)
34
68
  end
35
69
  end
36
70
  end
37
71
 
38
- private
39
-
40
- def copy_assets_to(path, assets)
72
+ private def copy_assets_to(path, assets)
41
73
  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
74
+ if Dir.exist?(asset_dir)
75
+ destination = File.join(path, asset_dir)
76
+ FileUtils.mkdir_p(destination)
77
+ FileUtils.cp_r Dir["#{asset_dir}/*"], destination
78
+ end
47
79
  end
48
80
  end
49
81
  end
@@ -19,11 +19,11 @@ class Website
19
19
 
20
20
  def build
21
21
  clean
22
-
22
+
23
23
  versions.each do |version|
24
24
  VersionedDocumentation.new(version).publish_to(
25
- join(version.slug),
26
- project_name: @project_name,
25
+ join(version.slug),
26
+ project_name: @project_name,
27
27
  globs: @globs,
28
28
  assets: @assets
29
29
  )
@@ -31,7 +31,7 @@ class Website
31
31
 
32
32
  IndexPage.new(versions).publish_to(join("index.html"), project_name: @project_name)
33
33
 
34
- VersionMenu.new(root: @destination, versions: versions).run
34
+ VersionMenu.new(root: @destination, versions:).run
35
35
 
36
36
  puts "Website built in #{@destination}/"
37
37
  end
@@ -40,13 +40,11 @@ class Website
40
40
  @versions ||= Version.all
41
41
  end
42
42
 
43
- private
44
-
45
- def join(path)
43
+ private def join(path)
46
44
  File.join(@destination, path)
47
45
  end
48
46
 
49
- def clean
47
+ private def clean
50
48
  FileUtils.rm_rf(@destination)
51
49
  FileUtils.mkdir_p(@destination)
52
50
  end
data/tasks/website.rake CHANGED
@@ -12,14 +12,14 @@ namespace :website do
12
12
  desc "Build documentation for main (current dir) and all git tags"
13
13
  task :build do
14
14
  require_relative "website/website"
15
-
15
+
16
16
  spec = Gem::Specification.load(Dir["*.gemspec"].first)
17
- globs = RDocConfig::RDOC_FILES + ["*.gemspec", "doc/images/**/*"]
18
-
17
+ globs = RDocConfig::RDOC_FILES + ["*.gemspec", "doc/images/**/*", "examples/**/*"]
18
+
19
19
  Website.new(
20
20
  at: "www",
21
21
  project_name: spec.name,
22
- globs: globs,
22
+ globs:,
23
23
  assets: ["doc/images"] # directories to copy
24
24
  ).build
25
25
  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.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kerrick Long
@@ -84,7 +84,6 @@ files:
84
84
  - CHANGELOG.md
85
85
  - LICENSE
86
86
  - LICENSES/AGPL-3.0-or-later.txt
87
- - LICENSES/BSD-2-Clause.txt
88
87
  - LICENSES/CC-BY-SA-4.0.txt
89
88
  - LICENSES/CC0-1.0.txt
90
89
  - LICENSES/MIT.txt
@@ -93,143 +92,121 @@ files:
93
92
  - Rakefile
94
93
  - doc/application_architecture.md
95
94
  - doc/application_testing.md
96
- - doc/contributors/better_dx.md
97
95
  - doc/contributors/design.md
98
96
  - doc/contributors/design/ruby_frontend.md
99
97
  - doc/contributors/design/rust_backend.md
100
98
  - doc/contributors/developing_examples.md
101
99
  - doc/contributors/documentation_style.md
102
100
  - doc/contributors/dwim_dx.md
103
- - doc/contributors/example_analysis.md
104
101
  - doc/contributors/index.md
105
102
  - doc/custom.css
106
103
  - doc/event_handling.md
107
- - doc/images/all_events.png
108
- - doc/images/analytics.png
109
- - doc/images/block_padding.png
110
- - doc/images/block_titles.png
111
- - doc/images/box_demo.png
112
- - doc/images/calendar_demo.png
113
- - doc/images/cell_demo.png
114
- - doc/images/chart_demo.png
115
- - doc/images/custom_widget.png
116
- - doc/images/flex_layout.png
117
- - doc/images/gauge_demo.png
118
- - doc/images/hit_test.png
119
- - doc/images/line_gauge_demo.png
120
- - doc/images/list_demo.png
121
- - doc/images/list_styles.png
122
- - doc/images/login_form.png
123
- - doc/images/map_demo.png
124
- - doc/images/mouse_events.png
125
- - doc/images/popup_demo.png
126
- - doc/images/quickstart_dsl.png
127
- - doc/images/quickstart_lifecycle.png
128
- - doc/images/ratatui_logo_demo.png
129
- - doc/images/readme_usage.png
130
- - doc/images/rich_text.png
131
- - doc/images/scroll_text.png
132
- - doc/images/scrollbar_demo.png
133
- - doc/images/sparkline_demo.png
134
- - doc/images/table_flex.png
135
- - doc/images/table_select.png
104
+ - doc/images/app_all_events.png
105
+ - doc/images/app_analytics.png
106
+ - doc/images/app_color_picker.png
107
+ - doc/images/app_custom_widget.png
108
+ - doc/images/app_login_form.png
109
+ - doc/images/app_map_demo.png
110
+ - doc/images/app_mouse_events.png
111
+ - doc/images/app_table_select.png
112
+ - doc/images/verify_quickstart_dsl.png
113
+ - doc/images/verify_quickstart_layout.png
114
+ - doc/images/verify_quickstart_lifecycle.png
115
+ - doc/images/verify_readme_usage.png
116
+ - doc/images/widget_barchart_demo.png
117
+ - doc/images/widget_block_padding.png
118
+ - doc/images/widget_block_titles.png
119
+ - doc/images/widget_box_demo.png
120
+ - doc/images/widget_calendar_demo.png
121
+ - doc/images/widget_cell_demo.png
122
+ - doc/images/widget_chart_demo.png
123
+ - doc/images/widget_gauge_demo.png
124
+ - doc/images/widget_layout_split.png
125
+ - doc/images/widget_line_gauge_demo.png
126
+ - doc/images/widget_list_demo.png
127
+ - doc/images/widget_list_styles.png
128
+ - doc/images/widget_popup_demo.png
129
+ - doc/images/widget_ratatui_logo_demo.png
130
+ - doc/images/widget_ratatui_mascot_demo.png
131
+ - doc/images/widget_rect.png
132
+ - doc/images/widget_render.png
133
+ - doc/images/widget_rich_text.png
134
+ - doc/images/widget_scroll_text.png
135
+ - doc/images/widget_scrollbar_demo.png
136
+ - doc/images/widget_sparkline_demo.png
136
137
  - doc/images/widget_style_colors.png
138
+ - doc/images/widget_table_flex.png
139
+ - doc/images/widget_tabs_demo.png
137
140
  - doc/index.md
138
141
  - doc/interactive_design.md
139
142
  - doc/quickstart.md
140
- - examples/all_events/app.rb
141
- - examples/all_events/app.rbs
142
- - examples/all_events/test_app.rb
143
- - examples/analytics/app.rb
144
- - examples/analytics/app.rbs
145
- - examples/analytics/test_app.rb
146
- - examples/block_padding/app.rb
147
- - examples/block_padding/app.rbs
148
- - examples/block_padding/test_app.rb
149
- - examples/block_titles/app.rb
150
- - examples/block_titles/app.rbs
151
- - examples/block_titles/test_app.rb
152
- - examples/box_demo/app.rb
153
- - examples/box_demo/app.rbs
154
- - examples/box_demo/test_app.rb
155
- - examples/calendar_demo/app.rb
156
- - examples/calendar_demo/app.rbs
157
- - examples/calendar_demo/test_app.rb
158
- - examples/cell_demo/app.rb
159
- - examples/cell_demo/app.rbs
160
- - examples/cell_demo/test_app.rb
161
- - examples/chart_demo/app.rb
162
- - examples/chart_demo/app.rbs
163
- - examples/chart_demo/test_app.rb
164
- - examples/custom_widget/app.rb
165
- - examples/custom_widget/app.rbs
166
- - examples/custom_widget/test_app.rb
167
- - examples/flex_layout/app.rb
168
- - examples/flex_layout/app.rbs
169
- - examples/flex_layout/test_app.rb
170
- - examples/gauge_demo/app.rb
171
- - examples/gauge_demo/app.rbs
172
- - examples/gauge_demo/test_app.rb
173
- - examples/hit_test/app.rb
174
- - examples/hit_test/app.rbs
175
- - examples/hit_test/test_app.rb
176
- - examples/line_gauge_demo/app.rb
177
- - examples/line_gauge_demo/app.rbs
178
- - examples/line_gauge_demo/test_app.rb
179
- - examples/list_demo/app.rb
180
- - examples/list_demo/app.rbs
181
- - examples/list_demo/test_app.rb
182
- - examples/list_styles/app.rb
183
- - examples/list_styles/app.rbs
184
- - examples/list_styles/test_app.rb
185
- - examples/login_form/app.rb
186
- - examples/login_form/app.rbs
187
- - examples/login_form/test_app.rb
188
- - examples/map_demo/app.rb
189
- - examples/map_demo/app.rbs
190
- - examples/map_demo/test_app.rb
191
- - examples/mouse_events/app.rb
192
- - examples/mouse_events/app.rbs
193
- - examples/mouse_events/test_app.rb
194
- - examples/popup_demo/app.rb
195
- - examples/popup_demo/app.rbs
196
- - examples/popup_demo/test_app.rb
197
- - examples/quickstart_dsl/app.rb
198
- - examples/quickstart_dsl/app.rbs
199
- - examples/quickstart_dsl/test_app.rb
200
- - examples/quickstart_lifecycle/app.rb
201
- - examples/quickstart_lifecycle/app.rbs
202
- - examples/quickstart_lifecycle/test_app.rb
203
- - examples/ratatui_logo_demo/app.rb
204
- - examples/ratatui_logo_demo/app.rbs
205
- - examples/ratatui_logo_demo/test_app.rb
206
- - examples/ratatui_mascot_demo/app.rb
207
- - examples/ratatui_mascot_demo/app.rbs
208
- - examples/ratatui_mascot_demo/test_app.rb
209
- - examples/readme_usage/app.rb
210
- - examples/readme_usage/app.rbs
211
- - examples/readme_usage/test_app.rb
212
- - examples/rich_text/app.rb
213
- - examples/rich_text/app.rbs
214
- - examples/rich_text/test_app.rb
215
- - examples/scroll_text/app.rb
216
- - examples/scroll_text/app.rbs
217
- - examples/scroll_text/test_app.rb
218
- - examples/scrollbar_demo/app.rb
219
- - examples/scrollbar_demo/app.rbs
220
- - examples/scrollbar_demo/test_app.rb
221
- - examples/sparkline_demo/app.rb
222
- - examples/sparkline_demo/app.rbs
223
- - examples/sparkline_demo/test_app.rb
224
- - examples/table_flex/app.rb
225
- - examples/table_flex/app.rbs
226
- - examples/table_flex/test_app.rb
227
- - examples/table_select/app.rb
228
- - examples/table_select/app.rbs
229
- - examples/table_select/test_app.rb
143
+ - examples/app_all_events/README.md
144
+ - examples/app_all_events/app.rb
145
+ - examples/app_all_events/model/event_color_cycle.rb
146
+ - examples/app_all_events/model/event_entry.rb
147
+ - examples/app_all_events/model/events.rb
148
+ - examples/app_all_events/model/highlight.rb
149
+ - examples/app_all_events/model/timestamp.rb
150
+ - examples/app_all_events/test/snapshots/after_focus_lost.txt
151
+ - examples/app_all_events/test/snapshots/after_focus_regained.txt
152
+ - examples/app_all_events/test/snapshots/after_horizontal_resize.txt
153
+ - examples/app_all_events/test/snapshots/after_key_a.txt
154
+ - examples/app_all_events/test/snapshots/after_key_ctrl_x.txt
155
+ - examples/app_all_events/test/snapshots/after_mouse_click.txt
156
+ - examples/app_all_events/test/snapshots/after_mouse_drag.txt
157
+ - examples/app_all_events/test/snapshots/after_multiple_events.txt
158
+ - examples/app_all_events/test/snapshots/after_paste.txt
159
+ - examples/app_all_events/test/snapshots/after_resize.txt
160
+ - examples/app_all_events/test/snapshots/after_right_click.txt
161
+ - examples/app_all_events/test/snapshots/after_vertical_resize.txt
162
+ - examples/app_all_events/test/snapshots/initial_state.txt
163
+ - examples/app_all_events/view.rb
164
+ - examples/app_all_events/view/app_view.rb
165
+ - examples/app_all_events/view/controls_view.rb
166
+ - examples/app_all_events/view/counts_view.rb
167
+ - examples/app_all_events/view/live_view.rb
168
+ - examples/app_all_events/view/log_view.rb
169
+ - examples/app_all_events/view_state.rb
170
+ - examples/app_color_picker/README.md
171
+ - examples/app_color_picker/app.rb
172
+ - examples/app_color_picker/clipboard.rb
173
+ - examples/app_color_picker/color.rb
174
+ - examples/app_color_picker/copy_dialog.rb
175
+ - examples/app_color_picker/harmony.rb
176
+ - examples/app_color_picker/input.rb
177
+ - examples/app_color_picker/palette.rb
178
+ - examples/app_color_picker/scene.rb
179
+ - examples/app_login_form/app.rb
180
+ - examples/app_map_demo/app.rb
181
+ - examples/app_table_select/app.rb
182
+ - examples/verify_quickstart_dsl/app.rb
183
+ - examples/verify_quickstart_layout/app.rb
184
+ - examples/verify_quickstart_lifecycle/app.rb
185
+ - examples/verify_readme_usage/app.rb
186
+ - examples/widget_barchart_demo/app.rb
187
+ - examples/widget_block_padding/app.rb
188
+ - examples/widget_block_titles/app.rb
189
+ - examples/widget_box_demo/app.rb
190
+ - examples/widget_calendar_demo/app.rb
191
+ - examples/widget_cell_demo/app.rb
192
+ - examples/widget_chart_demo/app.rb
193
+ - examples/widget_gauge_demo/app.rb
194
+ - examples/widget_layout_split/app.rb
195
+ - examples/widget_line_gauge_demo/app.rb
196
+ - examples/widget_list_demo/app.rb
197
+ - examples/widget_list_styles/app.rb
198
+ - examples/widget_popup_demo/app.rb
199
+ - examples/widget_ratatui_logo_demo/app.rb
200
+ - examples/widget_ratatui_mascot_demo/app.rb
201
+ - examples/widget_rect/app.rb
202
+ - examples/widget_render/app.rb
203
+ - examples/widget_rich_text/app.rb
204
+ - examples/widget_scroll_text/app.rb
205
+ - examples/widget_scrollbar_demo/app.rb
206
+ - examples/widget_sparkline_demo/app.rb
230
207
  - examples/widget_style_colors/app.rb
231
- - examples/widget_style_colors/app.rbs
232
- - examples/widget_style_colors/test_app.rb
208
+ - examples/widget_table_flex/app.rb
209
+ - examples/widget_tabs_demo/app.rb
233
210
  - ext/ratatui_ruby/.cargo/config.toml
234
211
  - ext/ratatui_ruby/.gitignore
235
212
  - ext/ratatui_ruby/Cargo.lock
@@ -237,6 +214,7 @@ files:
237
214
  - ext/ratatui_ruby/clippy.toml
238
215
  - ext/ratatui_ruby/extconf.rb
239
216
  - ext/ratatui_ruby/src/events.rs
217
+ - ext/ratatui_ruby/src/frame.rs
240
218
  - ext/ratatui_ruby/src/lib.rs
241
219
  - ext/ratatui_ruby/src/rendering.rs
242
220
  - ext/ratatui_ruby/src/style.rs
@@ -270,8 +248,10 @@ files:
270
248
  - lib/ratatui_ruby/event/focus_lost.rb
271
249
  - lib/ratatui_ruby/event/key.rb
272
250
  - lib/ratatui_ruby/event/mouse.rb
251
+ - lib/ratatui_ruby/event/none.rb
273
252
  - lib/ratatui_ruby/event/paste.rb
274
253
  - lib/ratatui_ruby/event/resize.rb
254
+ - lib/ratatui_ruby/frame.rb
275
255
  - lib/ratatui_ruby/schema/bar_chart.rb
276
256
  - lib/ratatui_ruby/schema/bar_chart/bar.rb
277
257
  - lib/ratatui_ruby/schema/bar_chart/bar_group.rb
@@ -301,10 +281,52 @@ files:
301
281
  - lib/ratatui_ruby/schema/tabs.rb
302
282
  - lib/ratatui_ruby/schema/text.rb
303
283
  - lib/ratatui_ruby/session.rb
284
+ - lib/ratatui_ruby/session/autodoc.rb
304
285
  - lib/ratatui_ruby/test_helper.rb
305
286
  - lib/ratatui_ruby/version.rb
306
287
  - mise.toml
288
+ - sig/examples/app_all_events/app.rbs
289
+ - sig/examples/app_all_events/model/event_entry.rbs
290
+ - sig/examples/app_all_events/model/events.rbs
291
+ - sig/examples/app_all_events/model/timestamp.rbs
292
+ - sig/examples/app_all_events/view.rbs
293
+ - sig/examples/app_all_events/view/app_view.rbs
294
+ - sig/examples/app_all_events/view/controls_view.rbs
295
+ - sig/examples/app_all_events/view/counts_view.rbs
296
+ - sig/examples/app_all_events/view/live_view.rbs
297
+ - sig/examples/app_all_events/view/log_view.rbs
298
+ - sig/examples/app_all_events/view_state.rbs
299
+ - sig/examples/app_color_picker/app.rbs
300
+ - sig/examples/app_login_form/app.rbs
301
+ - sig/examples/app_map_demo/app.rbs
302
+ - sig/examples/app_table_select/app.rbs
303
+ - sig/examples/verify_quickstart_dsl/app.rbs
304
+ - sig/examples/verify_quickstart_lifecycle/app.rbs
305
+ - sig/examples/verify_readme_usage/app.rbs
306
+ - sig/examples/widget_block_padding/app.rbs
307
+ - sig/examples/widget_block_titles/app.rbs
308
+ - sig/examples/widget_box_demo/app.rbs
309
+ - sig/examples/widget_calendar_demo/app.rbs
310
+ - sig/examples/widget_cell_demo/app.rbs
311
+ - sig/examples/widget_chart_demo/app.rbs
312
+ - sig/examples/widget_gauge_demo/app.rbs
313
+ - sig/examples/widget_layout_split/app.rbs
314
+ - sig/examples/widget_line_gauge_demo/app.rbs
315
+ - sig/examples/widget_list_demo/app.rbs
316
+ - sig/examples/widget_list_styles/app.rbs
317
+ - sig/examples/widget_popup_demo/app.rbs
318
+ - sig/examples/widget_ratatui_logo_demo/app.rbs
319
+ - sig/examples/widget_ratatui_mascot_demo/app.rbs
320
+ - sig/examples/widget_rect/app.rbs
321
+ - sig/examples/widget_render/app.rbs
322
+ - sig/examples/widget_rich_text/app.rbs
323
+ - sig/examples/widget_scroll_text/app.rbs
324
+ - sig/examples/widget_scrollbar_demo/app.rbs
325
+ - sig/examples/widget_sparkline_demo/app.rbs
326
+ - sig/examples/widget_style_colors/app.rbs
327
+ - sig/examples/widget_table_flex/app.rbs
307
328
  - sig/ratatui_ruby/event.rbs
329
+ - sig/ratatui_ruby/frame.rbs
308
330
  - sig/ratatui_ruby/ratatui_ruby.rbs
309
331
  - sig/ratatui_ruby/schema/bar_chart.rbs
310
332
  - sig/ratatui_ruby/schema/bar_chart/bar.rbs
@@ -332,8 +354,16 @@ files:
332
354
  - sig/ratatui_ruby/schema/table.rbs
333
355
  - sig/ratatui_ruby/schema/tabs.rbs
334
356
  - sig/ratatui_ruby/schema/text.rbs
357
+ - sig/ratatui_ruby/session.rbs
335
358
  - sig/ratatui_ruby/test_helper.rbs
336
359
  - sig/ratatui_ruby/version.rbs
360
+ - tasks/autodoc.rake
361
+ - tasks/autodoc/inventory.rb
362
+ - tasks/autodoc/member.rb
363
+ - tasks/autodoc/name.rb
364
+ - tasks/autodoc/notice.rb
365
+ - tasks/autodoc/rbs.rb
366
+ - tasks/autodoc/rdoc.rb
337
367
  - tasks/bump.rake
338
368
  - tasks/bump/cargo_lockfile.rb
339
369
  - tasks/bump/changelog.rb
@@ -345,6 +375,7 @@ files:
345
375
  - tasks/bump/sem_ver.rb
346
376
  - tasks/bump/unreleased_section.rb
347
377
  - tasks/doc.rake
378
+ - tasks/example_viewer.html.erb
348
379
  - tasks/extension.rake
349
380
  - tasks/lint.rake
350
381
  - tasks/rdoc_config.rb
@@ -1,9 +0,0 @@
1
- Copyright <YEAR> <COPYRIGHT HOLDER>
2
-
3
- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
4
-
5
- 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
6
-
7
- 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
8
-
9
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.