dynamic_curses_input 1.2.0 → 1.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 94be33a37c50fb5c028854b16e18ec655ee6a9b20c0caa0007f3939b2f4d73a8
4
- data.tar.gz: a5f98c86a14da07791b4cc3c5950a08bb5635d5f55bbb7beef7ef873bd07d07e
3
+ metadata.gz: 304e49d29bb21a48c2bd170cf8d2fd946ec11c9ea029c1757e551c2da340707f
4
+ data.tar.gz: 87f16a5a4a040f32ec82789b217603d0edad41e58ce9229a320948994189ec2f
5
5
  SHA512:
6
- metadata.gz: 492b393474c5e309a2003cadba1049fd7bed476ba39f7c5e6592f78fcc89345000e5c70eb7e02c143d3c3362b7ffabcd5d8e3953627ec46f3771b33bdbc44d19
7
- data.tar.gz: c9a3249fd853c5b22e457274c61f80da3c80391d0bdec16b05328196fc6db60c5d8a6657c7221af15aa6cbef2a2cdb916382e64a121f2086be4ee6d56fb565f8
6
+ metadata.gz: 55398b16da9c9990b3b7b6948e43377dd28e654916f63e2bed7d8220306b6fc06b85f39ef26ffa27cddd9d7009dd5f09f0426673ebbfc2e5fc9d5a3672bc0f2b
7
+ data.tar.gz: 6668b04ac5098b3ce4d9d2a8b4dedf1505081cc448122aafc50b049a25fb3c4a5a17f95ab7144a2762e20bf148e514e6c647cb8e7ae0bd92a1f23d7461ab36c6
data/CHANGELOG.md CHANGED
@@ -4,6 +4,8 @@
4
4
 
5
5
  - Initial release
6
6
 
7
+ ## [Release]
8
+
7
9
  ## [1.1.0] - 2023-07-26
8
10
 
9
11
  - Features and Enhancements:
@@ -26,13 +28,3 @@
26
28
  - Other Changes:
27
29
 
28
30
  - Removed redundant and unused code snippets to improve code cleanliness and maintainability.
29
-
30
- ## [1.2.0] - 2023-07-31
31
-
32
- - Features Added
33
-
34
- - Added automatic handling for the up and down arrow keys to behave more like the user would expect.
35
-
36
- - The Up arrow will bring the cursor to the beginning of the line by setting the cursor position to 0 after checking if the cursor is already there
37
-
38
- - The Down arrow will bring the cursor to the end of the line by setting the cursor to the position equal to the length of the input line plus 1
data/Gemfile CHANGED
@@ -1,14 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- source "https://rubygems.org"
3
+ source 'https://rubygems.org'
4
4
 
5
5
  # Specify your gem's dependencies in dynamic_curses_input.gemspec
6
6
  gemspec
7
7
 
8
- gem "rake"
8
+ gem 'reline', '~> 0.3.8'
9
9
 
10
- gem "rubocop"
10
+ gem 'curses', '~> 1.4'
11
11
 
12
- gem "curses"
13
-
14
- gem "reline"
12
+ gem 'rubocop', '~> 1.56'
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- dynamic_curses_input (1.1.0)
4
+ dynamic_curses_input (1.2.2)
5
5
  curses
6
6
  reline
7
7
 
@@ -9,6 +9,7 @@ GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
11
  ast (2.4.2)
12
+ base64 (0.1.1)
12
13
  curses (1.4.4)
13
14
  io-console (0.6.0)
14
15
  json (2.6.3)
@@ -19,12 +20,12 @@ GEM
19
20
  racc
20
21
  racc (1.7.1)
21
22
  rainbow (3.1.1)
22
- rake (13.0.6)
23
23
  regexp_parser (2.8.1)
24
- reline (0.3.7)
24
+ reline (0.3.8)
25
25
  io-console (~> 0.5)
26
26
  rexml (3.2.6)
27
- rubocop (1.55.0)
27
+ rubocop (1.56.3)
28
+ base64 (~> 0.1.1)
28
29
  json (~> 2.3)
29
30
  language_server-protocol (>= 3.17.0)
30
31
  parallel (~> 1.10)
@@ -44,11 +45,10 @@ PLATFORMS
44
45
  x86_64-linux
45
46
 
46
47
  DEPENDENCIES
47
- curses
48
+ curses (~> 1.4)
48
49
  dynamic_curses_input!
49
- rake
50
- reline
51
- rubocop
50
+ reline (~> 0.3.8)
51
+ rubocop (~> 1.56)
52
52
 
53
53
  BUNDLED WITH
54
- 2.4.16
54
+ 2.4.10
data/LICENSE ADDED
@@ -0,0 +1,71 @@
1
+ PixelRidge Business Exclusive General Public Use License for Software Executables (PixelRidge-BEGPULSE)
2
+
3
+ ## Version 1.3
4
+
5
+ ### Preamble
6
+
7
+ This License governs the terms under which the software ("Software") provided by PixelRidge Softworks ("Licensor") may be used, modified, and distributed.
8
+
9
+ ### 1. Definitions
10
+
11
+ - **Software**: The original software and associated documentation provided under this license.
12
+ - **Business Purposes**: Any activity designed with the main intent to generate revenue or profit.
13
+ - **Modification**: Any change or addition to the Software's source code or executable.
14
+ - **Distribution**: The act of making the Software available to third parties.
15
+ - **Contributor**: Any individual or entity that modifies or distributes the Software.
16
+
17
+ ### 2. License Grant
18
+
19
+ Subject to the terms and conditions of this License, Licensor hereby grants you a worldwide, non-exclusive, non-transferable, non-sublicensable license to use and modify the Software.
20
+
21
+ ### 3. Attribution
22
+
23
+ You must provide attribution to the Licensor by including a plain-view URI (or link) to the Licensor's website. This link must be easily visible to all users and not hidden under any circumstances. It should be noted that this should only apply in the event that it can. In the event a public link is impossible due to the nature of the usage of the Software, it's expected that attribution be given in a way such that the attribution complies with the Open Source Initiative standards for Open Source Attribution.
24
+
25
+ ### 4. Business Use
26
+
27
+ If you wish to use the Software for Business Purposes, you must obtain written permission from PixelRidge Softworks. Failure to obtain such permission will result in a violation of this License.
28
+
29
+ ### 5. Indemnification
30
+
31
+ You agree to indemnify, defend, and hold harmless PixelRidge Softworks and its affiliates from and against any and all claims, damages, losses, liabilities, costs, and expenses arising out of or relating to your use or distribution of the Software.
32
+
33
+ ### 6. No Warranty and Limitation of Liability
34
+
35
+ The Software is provided "AS-IS," without any warranty of any kind, either express or implied. The Software is designed to be highly secure but will only be as secure as the system on which it is deployed. On an insecure system, the Software may exacerbate existing security issues. PixelRidge Softworks shall not be liable for any damages arising from the use of the Software.
36
+
37
+ ### 7. Updates and Versioning
38
+
39
+ PixelRidge Softworks may or may not provide updates to the Software in the future. There is no obligation to provide updates or support for the Software. The latest version of this License shall always be considered the governing terms. PixelRidge Softworks will provide reasonable notice in the event of a license change. Notice shall be provided via email. Due to spam laws, we cannot just email you. You may opt into our specialized mailing list for licensing on our website.
40
+
41
+ ### 8. Source Code Availability
42
+
43
+ Any modifications to the Software must remain open-source and source-available in their entirety unless another agreement with the Licensor is formed.
44
+
45
+ ### 9. Compliance Monitoring
46
+
47
+ Compliance with this License may or may not be monitored by PixelRidge Softworks. You grant PixelRidge Softworks the right to monitor for compliance as it sees fit.
48
+
49
+ ### 10. Data Collection
50
+
51
+ If the Software collects any data, such data will be used in accordance with PixelRidge Softworks' privacy policy.
52
+
53
+ ### 11. Export Control
54
+
55
+ You agree not to use the Software in violation of any export laws or regulations.
56
+
57
+ ### 12. Termination and Revocation
58
+
59
+ This License will automatically terminate if you fail to comply with any of its terms or conditions. Revocation is allowed only in the event of a violation of this License.
60
+
61
+ ### 13. Dispute Resolution
62
+
63
+ Any disputes arising out of this License shall be resolved through arbitration in Alberta, Canada.
64
+
65
+ ### 14. Jurisdiction
66
+
67
+ This License shall be governed by the laws of Alberta, Canada.
68
+
69
+ ### 15. Miscellaneous
70
+
71
+ This License constitutes the entire agreement between you and PixelRidge Softworks concerning the Software.
data/README.md CHANGED
@@ -1,6 +1,8 @@
1
- # Dynamic Curses Input
1
+ # DynamicCursesInput
2
2
 
3
- Dynamic Curses Input is a Ruby gem that provides a simple and intuitive way to handle user input in a Curses-based terminal user interface (TUI). It allows for dynamic input handling, including cursor movement and inline character addition and deletion.
3
+ DynamicCursesInput is a Ruby gem that provides a simple and intuitive way to handle user input in a Curses-based terminal user interface (TUI). It allows for dynamic input handling, including cursor movement and inline character addition and deletion.
4
+
5
+ ## Table of Contents
4
6
 
5
7
  - [Installation](#installation)
6
8
  - [Usage](#usage)
@@ -13,7 +15,7 @@ Dynamic Curses Input is a Ruby gem that provides a simple and intuitive way to h
13
15
 
14
16
  ## Installation
15
17
 
16
- To install Dynamic Curses Input, add the following line to your application's Gemfile:
18
+ To install DynamicCursesInput, add the following line to your application's Gemfile:
17
19
 
18
20
  ```ruby
19
21
  gem 'dynamic_curses_input'
@@ -33,7 +35,7 @@ $ gem install dynamic_curses_input
33
35
 
34
36
  ## Usage
35
37
 
36
- Here's a simple example of how to use Dynamic Curses Input:
38
+ Here's a simple example of how to use DynamicCursesInput:
37
39
 
38
40
  ```ruby
39
41
  require "curses"
@@ -59,15 +61,20 @@ In this example, `DCI.catch_input(true)` will capture user input until the Enter
59
61
 
60
62
  ## Documentation
61
63
 
62
- Detailed documentation for each function is available in the [wiki](https://git.pixelridgesoftworks.com/PixelRidge-Softworks/dynamic_curses_input/wiki).
64
+ Detailed documentation for each function is available in the [wiki](https://github.com/Pixelated-Studios/dynamic_curses_input/wiki).
63
65
 
64
66
  ## Dependencies
65
67
 
66
68
  DynamicCursesInput depends on the [Curses](https://github.com/ruby/curses) gem.
67
69
 
70
+ ## FAQs
71
+
72
+ - **Q: How do I handle special keys like arrow keys?**
73
+ - A: Special keys like arrow keys are automatically handled by DynamicCursesInput.
74
+
68
75
  ## Troubleshooting
69
76
 
70
- If you encounter any issues while using DynamicCursesInput, please check the [issues](https://git.pixelridgesoftworks.com/PixelRidge-Softworks/dynamic_curses_input/issues) page. If your issue isn't listed, feel free to open a new issue.
77
+ If you encounter any issues while using DynamicCursesInput, please check the [issues](https://github.com/yourusername/dynamic_curses_input/issues) page. If your issue isn't listed, feel free to open a new issue.
71
78
 
72
79
  ## Contribution Guidelines
73
80
 
@@ -79,6 +86,6 @@ DynamicCursesInput is available under the [MIT License](LICENSE.txt).
79
86
 
80
87
  ---
81
88
 
82
- ### Note from the Developer:
89
+ ### Note from the Developer:
83
90
 
84
91
  There is a function in this gem that is not finished yet, it's for making asking questions in a Curses TUI easier from within the gem. This method shouldn't be used yet.
data/Rakefile CHANGED
@@ -1,11 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'bundler/gem_tasks'
4
- require 'rspec/core/rake_task'
3
+ require "bundler/gem_tasks"
4
+ require "rspec/core/rake_task"
5
5
 
6
6
  RSpec::Core::RakeTask.new(:spec)
7
7
 
8
- require 'rubocop/rake_task'
8
+ require "rubocop/rake_task"
9
9
 
10
10
  RuboCop::RakeTask.new
11
11
 
@@ -5,23 +5,18 @@ require_relative 'lib/dynamic_curses_input/version'
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = 'dynamic_curses_input'
7
7
  spec.version = DynamicCursesInput::VERSION
8
- spec.authors = ['PixelRidge-Softworks']
9
- spec.email = ['connorc@pixelridgesoftworks.com']
8
+ spec.authors = ['PixelRidge Softworks']
9
+ spec.email = ['ceo@pixelridgesoftworks.com']
10
10
 
11
11
  spec.summary = 'A simple library for making Curses TUI input more dynamic and user-friendly'
12
12
  spec.description = "Dynamic Curses Input is a highly simple, yet powerful gem that allows simple implementation of
13
- dynamic typing in curses TUI menus built in Ruby. For example, one can't simply use their arrow
14
- keys to navigate and edit inputs in Cursese TUI menus without adding a bunch of extra code to your
15
- project to handle it. A lot of which can be tricky to handle. This gem eliminates the need for
16
- that code, by providing simple to use methods that allow developers to capture user input, while
17
- allowing the special keys to work as the average user would expect.
18
- IE: When you press the left arrow key, the cursor moves to the left and allows you to delete a
19
- character you entered that isn't the last character you entered.
13
+ dynamic typing in curses TUI menus built in Ruby. It allows for the use of special keys inside
14
+ of Curses TUI menus without the need for a bunch of extra code.
20
15
 
21
16
  KNOWN BUG: X & Y coords for placing windows appear to be broken right now. Will fix with
22
- next update"
17
+ next real update, just use the preset window locations for now please!"
23
18
  spec.homepage = 'https://git.pixelridgesoftworks.com/PixelRidge-Softworks/dynamic_curses_input'
24
- spec.license = 'MIT'
19
+ spec.license = 'PixelRidge-BEGPULSE'
25
20
  spec.required_ruby_version = '3.2.2'
26
21
 
27
22
  spec.metadata['homepage_uri'] = spec.homepage
@@ -32,13 +27,14 @@ Gem::Specification.new do |spec|
32
27
  spec.files = Dir.glob('{bin,lib,sig}/**/*') + Dir.glob('*').reject do |f|
33
28
  f.start_with?('spec', '.rspec', 'dynamic_curses_input.gemspec')
34
29
  end
35
- spec.files << 'LICENSE.txt'
30
+ spec.files << 'LICENSE'
36
31
  spec.files << 'README.md'
37
32
  spec.files << 'dynamic_curses_input.gemspec'
38
33
 
39
34
  spec.require_paths = ['lib']
40
35
 
41
- spec.add_dependency 'curses'
42
- spec.add_dependency 'reline'
43
- spec.add_development_dependency 'rubocop'
36
+ spec.add_dependency 'curses', '~> 1.4'
37
+ spec.add_dependency 'reline', '~> 0.3.8'
38
+ spec.add_development_dependency 'rubocop', '~> 1.56'
39
+ spec.post_install_message = 'If you find this gem useful, consider supporting its development: https://www.paypal.com/donate/?hosted_button_id=YF5XS7ZXQ6F8A'
44
40
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DynamicCursesInput
4
- VERSION = '1.2.0'
4
+ VERSION = '1.2.2'
5
5
  end
@@ -11,6 +11,7 @@ require_relative 'dynamic_curses_input/color_window'
11
11
  module DynamicCursesInput
12
12
  class Error < StandardError; end
13
13
 
14
+ # Whether or not to output the user entered text to STDOUT
14
15
  def self.catch_input(echo)
15
16
  InputHandler.catch_input(echo)
16
17
  end
metadata CHANGED
@@ -1,71 +1,66 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dynamic_curses_input
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.2
5
5
  platform: ruby
6
6
  authors:
7
- - PixelRidge-Softworks
7
+ - PixelRidge Softworks
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-08-02 00:00:00.000000000 Z
11
+ date: 2023-09-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: curses
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '1.4'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: '1.4'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: reline
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: 0.3.8
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: 0.3.8
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rubocop
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '1.56'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: '1.56'
55
55
  description: |-
56
56
  Dynamic Curses Input is a highly simple, yet powerful gem that allows simple implementation of
57
- dynamic typing in curses TUI menus built in Ruby. For example, one can't simply use their arrow
58
- keys to navigate and edit inputs in Cursese TUI menus without adding a bunch of extra code to your
59
- project to handle it. A lot of which can be tricky to handle. This gem eliminates the need for
60
- that code, by providing simple to use methods that allow developers to capture user input, while
61
- allowing the special keys to work as the average user would expect.
62
- IE: When you press the left arrow key, the cursor moves to the left and allows you to delete a
63
- character you entered that isn't the last character you entered.
57
+ dynamic typing in curses TUI menus built in Ruby. It allows for the use of special keys inside
58
+ of Curses TUI menus without the need for a bunch of extra code.
64
59
 
65
60
  KNOWN BUG: X & Y coords for placing windows appear to be broken right now. Will fix with
66
- next update
61
+ next real update, just use the preset window locations for now please!
67
62
  email:
68
- - connorc@pixelridgesoftworks.com
63
+ - ceo@pixelridgesoftworks.com
69
64
  executables: []
70
65
  extensions: []
71
66
  extra_rdoc_files: []
@@ -74,27 +69,26 @@ files:
74
69
  - CODE_OF_CONDUCT.md
75
70
  - Gemfile
76
71
  - Gemfile.lock
77
- - LICENSE.txt
72
+ - LICENSE
78
73
  - README.md
79
74
  - Rakefile
80
75
  - bin/console
81
76
  - bin/setup
82
- - buildgem.sh
83
77
  - dynamic_curses_input.gemspec
84
78
  - lib/dynamic_curses_input.rb
85
79
  - lib/dynamic_curses_input/color_window.rb
86
80
  - lib/dynamic_curses_input/input_handler.rb
87
81
  - lib/dynamic_curses_input/version.rb
88
82
  - sig/dynamic_curses_input.rbs
89
- - tester.rb
90
83
  homepage: https://git.pixelridgesoftworks.com/PixelRidge-Softworks/dynamic_curses_input
91
84
  licenses:
92
- - MIT
85
+ - PixelRidge-BEGPULSE
93
86
  metadata:
94
87
  homepage_uri: https://git.pixelridgesoftworks.com/PixelRidge-Softworks/dynamic_curses_input
95
88
  source_code_uri: https://git.pixelridgesoftworks.com/PixelRidge-Softworks/dynamic_curses_input
96
89
  changelog_uri: https://git.pixelridgesoftworks.com/PixelRidge-Softworks/dynamic_curses_input/src/branch/main/CHANGELOG.md
97
- post_install_message:
90
+ post_install_message: 'If you find this gem useful, consider supporting its development:
91
+ https://www.paypal.com/donate/?hosted_button_id=YF5XS7ZXQ6F8A'
98
92
  rdoc_options: []
99
93
  require_paths:
100
94
  - lib
@@ -109,7 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
109
103
  - !ruby/object:Gem::Version
110
104
  version: '0'
111
105
  requirements: []
112
- rubygems_version: 3.4.16
106
+ rubygems_version: 3.4.10
113
107
  signing_key:
114
108
  specification_version: 4
115
109
  summary: A simple library for making Curses TUI input more dynamic and user-friendly
data/LICENSE.txt DELETED
@@ -1,21 +0,0 @@
1
- The MIT License (MIT)
2
-
3
- Copyright (c) 2023 VetheonGames
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in
13
- all copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- THE SOFTWARE.
data/buildgem.sh DELETED
@@ -1,23 +0,0 @@
1
- #/bin/bash
2
- echo "rebuilding dynamic_curses_input..."
3
- sleep 1
4
- echo "Uninstalling existing version..."
5
- sleep 1
6
- gem uninstall dynamic_curses_input
7
- sleep 1
8
- echo "Cleaning up old files..."
9
- sleep 1
10
- gem cleanup dynamic_curses_input
11
- rm -f dynamic_curses_input-1.2.0.gem
12
- sleep 1
13
- echo "Building DCI..."
14
- sleep 1
15
- gem build dynamic_curses_input.gemspec
16
- echo "built!"
17
- sleep 1
18
- echo "Installing new version of DCI..."
19
- sleep 1
20
- gem install dynamic_curses_input-1.2.0.gem
21
- echo "Installed!"
22
- echo "press any key to exit..."
23
- read ""
data/tester.rb DELETED
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'dynamic_curses_input'
4
-
5
- # Create and display a red window at the center of the screen
6
- DCI.print_color_window('red', 'test', y_value: 60, x: '40')
7
-
8
- # Create and display a magenta window at a specific position
9
- DCI.print_color_window('magenta', 'testy-test', y_value: 30, x: '20')
10
-
11
- # Initialize Curses
12
- Curses.init_screen
13
- Curses.cbreak
14
- Curses.noecho
15
-
16
- # Wait for the Enter key to be pressed
17
- Curses.stdscr.getch until Curses.stdscr.getch == 10
18
-
19
- # Clean up and close Curses
20
- Curses.close_screen