ansi-select 0.2.4 → 0.2.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/bin/ansi-select +0 -0
- data/lib/ansi/selector.rb +6 -4
- data/lib/ansi/selector/impl.rb +13 -4
- data/lib/ansi/selector/multi_impl.rb +2 -4
- data/lib/ansi/selector/single_impl.rb +5 -0
- data/lib/ansi/selector/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d261e8c4cb86463bfba558e2c3104c30679d5a02
|
4
|
+
data.tar.gz: 43851d45c17b1a4da2cce1da10952cceeea302ef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 691c63cfcfad6589ad5d423e8e8fb3b6c204054a998a841728c5bb63dfd8260296fcfc09f5094f4e879fc0ba881cdc7c7a2fd08fbb870fd6a56d0c3e21159852
|
7
|
+
data.tar.gz: 3f5777142597d125447659e280377941481d78559863b12f5180df015de50e58c417ad02c9af6e6521a5c3daec06f68ba06f58b55153019267031089b569c758
|
data/CHANGELOG.md
CHANGED
data/bin/ansi-select
CHANGED
File without changes
|
data/lib/ansi/selector.rb
CHANGED
@@ -2,22 +2,24 @@ module Ansi
|
|
2
2
|
class Selector
|
3
3
|
# @param [Array<Object>] options
|
4
4
|
# @param [Proc] formatter
|
5
|
+
# @param [Fixnum] preselected
|
5
6
|
#
|
6
7
|
# @return [Object] option
|
7
|
-
def self.select(options, formatter
|
8
|
+
def self.select(options, formatter: default_formatter, preselected: 0)
|
8
9
|
require_relative "selector/single_impl"
|
9
10
|
|
10
|
-
SingleImpl.new(options, formatter).select
|
11
|
+
SingleImpl.new(options, formatter, preselected).select
|
11
12
|
end
|
12
13
|
|
13
14
|
# @param [Array<Object>] options
|
14
15
|
# @param [Proc] formatter
|
16
|
+
# @param [Array<Fixnum>] preselected
|
15
17
|
#
|
16
18
|
# @return [Array<Object>] option
|
17
|
-
def self.multi_select(options, formatter
|
19
|
+
def self.multi_select(options, formatter: default_formatter, preselected: [])
|
18
20
|
require_relative "selector/multi_impl"
|
19
21
|
|
20
|
-
MultiImpl.new(options, formatter).select
|
22
|
+
MultiImpl.new(options, formatter, preselected).select
|
21
23
|
end
|
22
24
|
|
23
25
|
private
|
data/lib/ansi/selector/impl.rb
CHANGED
@@ -11,12 +11,20 @@ module Ansi
|
|
11
11
|
carriage_return_key: `tput cr`
|
12
12
|
}
|
13
13
|
|
14
|
-
def initialize(options, formatter)
|
14
|
+
def initialize(options, formatter, preselected)
|
15
15
|
@options = options
|
16
16
|
@formatter = formatter
|
17
|
-
|
18
17
|
@highlighted_line_index = 0
|
19
18
|
@cursor_line_index = 0
|
19
|
+
|
20
|
+
# Converts options to column-aligned strings.
|
21
|
+
formatted = @options.map(&@formatter).map(&method(:Array))
|
22
|
+
@formatted ||= formatted.map do |f|
|
23
|
+
f.map.with_index do |part, column|
|
24
|
+
width = formatted.map { |fm| fm[column] }.compact.map(&:size).max
|
25
|
+
part.to_s.ljust(width)
|
26
|
+
end.join(' ')
|
27
|
+
end
|
20
28
|
end
|
21
29
|
|
22
30
|
def select
|
@@ -88,11 +96,12 @@ module Ansi
|
|
88
96
|
# @param [Boolean] highlight
|
89
97
|
def print_line(index, highlight)
|
90
98
|
go_to_line(index)
|
99
|
+
text = prefix(index) + @formatted[index]
|
91
100
|
|
92
101
|
if highlight
|
93
|
-
tty.print(CODES[:standout_mode] +
|
102
|
+
tty.print(CODES[:standout_mode] + text + CODES[:exit_standout_mode])
|
94
103
|
else
|
95
|
-
tty.print(
|
104
|
+
tty.print(text)
|
96
105
|
end
|
97
106
|
end
|
98
107
|
|
@@ -3,11 +3,9 @@ require_relative 'impl'
|
|
3
3
|
module Ansi
|
4
4
|
class Selector
|
5
5
|
class MultiImpl < Impl
|
6
|
-
def initialize(options, formatter)
|
6
|
+
def initialize(options, formatter, preselected)
|
7
7
|
super
|
8
|
-
|
9
|
-
# @type [Array<Boolean>]
|
10
|
-
@selected_options = []
|
8
|
+
@selected_options = preselected
|
11
9
|
end
|
12
10
|
|
13
11
|
private
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ansi-select
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Volodymyr Shatskyi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-10-
|
11
|
+
date: 2015-10-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|