highline 3.0.0.pre.1 → 3.0.1
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/.github/workflows/ci.yml +3 -2
- data/Changelog.md +6 -1
- data/README.md +1 -1
- data/highline.gemspec +1 -0
- data/lib/highline/question.rb +2 -6
- data/lib/highline/question_asker.rb +2 -1
- data/lib/highline/terminal.rb +6 -4
- data/lib/highline/version.rb +1 -1
- data/lib/highline.rb +14 -5
- metadata +22 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 77aabe8e1a9f098383f7bdee9fb2fb985fe46ecd9faf59c676753bd59fef9da4
|
4
|
+
data.tar.gz: b7c90d18ba2adbdbab4ce5e20dd166ba812f506d7755429c12a955acc34bdfee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d708e26cdac5cd985562e57290cdfd8fecb3f6ca2d81bdff0c1e0c2c4ab006c98668b2c4346e0fdd24acd74f05db14f30d2cb5f870906538b9b1af44b0a3ed31
|
7
|
+
data.tar.gz: b0d5453c17c7ed667bd68b9ea208c4f5b78da1a0d101d01f69ec0299fb8eb8a234a5491053e148422542ed502ac7406711b6e6a30343c46be1c1eb611b159135
|
data/.github/workflows/ci.yml
CHANGED
@@ -10,6 +10,7 @@ jobs:
|
|
10
10
|
os: [ubuntu-latest]
|
11
11
|
ruby-version:
|
12
12
|
- head
|
13
|
+
- '3.3'
|
13
14
|
- '3.2'
|
14
15
|
- '3.1'
|
15
16
|
- '3.0'
|
@@ -22,7 +23,7 @@ jobs:
|
|
22
23
|
- os: windows-latest
|
23
24
|
ruby-version: head
|
24
25
|
- os: windows-latest
|
25
|
-
ruby-version: '3.
|
26
|
+
ruby-version: '3.3'
|
26
27
|
- os: windows-latest
|
27
28
|
ruby-version: mingw
|
28
29
|
- os: windows-latest
|
@@ -32,7 +33,7 @@ jobs:
|
|
32
33
|
- os: macos-latest
|
33
34
|
ruby-version: 'head'
|
34
35
|
- os: macos-latest
|
35
|
-
ruby-version: '3.
|
36
|
+
ruby-version: '3.3'
|
36
37
|
runs-on: ${{ matrix.os }}
|
37
38
|
steps:
|
38
39
|
- uses: actions/checkout@v3
|
data/Changelog.md
CHANGED
@@ -2,7 +2,12 @@
|
|
2
2
|
|
3
3
|
Below is a complete listing of changes for each revision of HighLine.
|
4
4
|
|
5
|
-
### 3.0.
|
5
|
+
### 3.0.1 / 2024-01-20
|
6
|
+
* PR #268 - Remove unused abbrev dependency (@zvkemp)
|
7
|
+
|
8
|
+
### 3.0.0 / 2024-01-05
|
9
|
+
* PR #265 - Change Readline for Reline for Ruby 3.3 compat (@abinoam)
|
10
|
+
* PR #264 - Add abbrev gem as dependency (@mathieujobin)
|
6
11
|
* PR #263 - Release 3.0.0.pre.1
|
7
12
|
* Raise minimum Ruby version requirement to 3.0
|
8
13
|
* PR #262 - Do not call stty on non-tty (@kbrock)
|
data/README.md
CHANGED
data/highline.gemspec
CHANGED
data/lib/highline/question.rb
CHANGED
@@ -116,7 +116,7 @@ class HighLine
|
|
116
116
|
#
|
117
117
|
attr_accessor :echo
|
118
118
|
#
|
119
|
-
# Use the
|
119
|
+
# Use the Reline library to fetch input. This allows input editing as
|
120
120
|
# well as keeping a history. In addition, tab will auto-complete
|
121
121
|
# within an Array of choices or a file listing.
|
122
122
|
#
|
@@ -125,6 +125,7 @@ class HighLine
|
|
125
125
|
# specified _input_ stream.
|
126
126
|
#
|
127
127
|
attr_accessor :readline
|
128
|
+
|
128
129
|
#
|
129
130
|
# Used to control whitespace processing for the answer to this question.
|
130
131
|
# See HighLine::Question.remove_whitespace() for acceptable settings.
|
@@ -580,11 +581,6 @@ class HighLine
|
|
580
581
|
end
|
581
582
|
end
|
582
583
|
|
583
|
-
# readline() needs to handle its own output, but readline only supports
|
584
|
-
# full line reading. Therefore if question.echo is anything but true,
|
585
|
-
# the prompt will not be issued. And we have to account for that now.
|
586
|
-
# Also, JRuby-1.7's ConsoleReader.readLine() needs to be passed the prompt
|
587
|
-
# to handle line editing properly.
|
588
584
|
# @param highline [HighLine] context
|
589
585
|
# @return [void]
|
590
586
|
def show_question(highline)
|
@@ -24,7 +24,8 @@ class HighLine
|
|
24
24
|
#
|
25
25
|
# @return [String] answer
|
26
26
|
def ask_once
|
27
|
-
|
27
|
+
# If in readline mode, let reline take care of the prompt
|
28
|
+
question.show_question(@highline) unless question.readline
|
28
29
|
|
29
30
|
begin
|
30
31
|
question.get_response_or_default(@highline)
|
data/lib/highline/terminal.rb
CHANGED
@@ -95,9 +95,9 @@ class HighLine
|
|
95
95
|
# Get one line using #readline_read
|
96
96
|
# @param (see #get_line)
|
97
97
|
def get_line_with_readline(question, highline)
|
98
|
-
require "
|
98
|
+
require "reline" # load only if needed
|
99
99
|
|
100
|
-
raw_answer = readline_read(question)
|
100
|
+
raw_answer = readline_read(question, highline)
|
101
101
|
|
102
102
|
if !raw_answer && highline.track_eof?
|
103
103
|
raise EOFError, "The input stream is exhausted."
|
@@ -109,7 +109,7 @@ class HighLine
|
|
109
109
|
# Use readline to read one line
|
110
110
|
# @param question [HighLine::Question] question from where to get
|
111
111
|
# autocomplete candidate strings
|
112
|
-
def readline_read(question)
|
112
|
+
def readline_read(question, highline)
|
113
113
|
# prep auto-completion
|
114
114
|
unless question.selection.empty?
|
115
115
|
Readline.completion_proc = lambda do |str|
|
@@ -117,12 +117,14 @@ class HighLine
|
|
117
117
|
end
|
118
118
|
end
|
119
119
|
|
120
|
+
# TODO: Check if this is still needed after Reline
|
120
121
|
# work-around ugly readline() warnings
|
121
122
|
old_verbose = $VERBOSE
|
122
123
|
$VERBOSE = nil
|
123
124
|
|
124
125
|
raw_answer = run_preserving_stty do
|
125
|
-
|
126
|
+
prompt = highline.render_and_ident_statement(question)
|
127
|
+
Readline.readline(prompt, true)
|
126
128
|
end
|
127
129
|
|
128
130
|
$VERBOSE = old_verbose
|
data/lib/highline/version.rb
CHANGED
data/lib/highline.rb
CHANGED
@@ -14,7 +14,6 @@ require "English"
|
|
14
14
|
require "erb"
|
15
15
|
require "optparse"
|
16
16
|
require "stringio"
|
17
|
-
require "abbrev"
|
18
17
|
require "highline/terminal"
|
19
18
|
require "highline/custom_errors"
|
20
19
|
require "highline/question"
|
@@ -371,10 +370,8 @@ class HighLine
|
|
371
370
|
#
|
372
371
|
# @param statement [Statement, String] what to be said
|
373
372
|
def say(statement)
|
374
|
-
statement =
|
375
|
-
return if statement.empty?
|
376
|
-
|
377
|
-
statement = (indentation + statement)
|
373
|
+
statement = render_and_ident_statement(statement)
|
374
|
+
return statement if statement.empty?
|
378
375
|
|
379
376
|
# Don't add a newline if statement ends with whitespace, OR
|
380
377
|
# if statement ends with whitespace before a color escape code.
|
@@ -386,6 +383,18 @@ class HighLine
|
|
386
383
|
end
|
387
384
|
end
|
388
385
|
|
386
|
+
# Renders and indents a statement.
|
387
|
+
#
|
388
|
+
# Note: extracted here to be used by readline to render its prompt.
|
389
|
+
#
|
390
|
+
# @param statement [String] The statement to be rendered and indented.
|
391
|
+
# @return [String] The rendered and indented statement.
|
392
|
+
def render_and_ident_statement(statement)
|
393
|
+
statement = render_statement(statement)
|
394
|
+
statement = (indentation + statement) unless statement.empty?
|
395
|
+
statement
|
396
|
+
end
|
397
|
+
|
389
398
|
# Renders a statement using {HighLine::Statement}
|
390
399
|
# @param statement [String] any string
|
391
400
|
# @return [Statement] rendered statement
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: highline
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Edward Gray II
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-01-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: reline
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
description: |
|
70
84
|
A high-level IO library that provides validation, type conversion, and more for
|
71
85
|
command-line interfaces. HighLine also includes a complete menu system that can
|
@@ -143,7 +157,7 @@ homepage: https://github.com/JEG2/highline
|
|
143
157
|
licenses:
|
144
158
|
- Ruby
|
145
159
|
metadata: {}
|
146
|
-
post_install_message:
|
160
|
+
post_install_message:
|
147
161
|
rdoc_options: []
|
148
162
|
require_paths:
|
149
163
|
- lib
|
@@ -154,12 +168,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
154
168
|
version: '3.0'
|
155
169
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
156
170
|
requirements:
|
157
|
-
- - "
|
171
|
+
- - ">="
|
158
172
|
- !ruby/object:Gem::Version
|
159
|
-
version:
|
173
|
+
version: '0'
|
160
174
|
requirements: []
|
161
|
-
rubygems_version: 3.
|
162
|
-
signing_key:
|
175
|
+
rubygems_version: 3.5.3
|
176
|
+
signing_key:
|
163
177
|
specification_version: 4
|
164
178
|
summary: HighLine is a high-level command-line IO library.
|
165
179
|
test_files: []
|