summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAna María Martínez Gómez <anamaria@martinezgomez.name>2019-04-07 07:12:30 +0200
committerAna María Martínez Gómez <anamaria@martinezgomez.name>2019-04-08 16:27:57 +0200
commit69c8ea5b017634a1ae92141eab38967dc6a395b6 (patch)
treedd150fe359a8a76c78ea3a1378d2721db7781972 /lib
parentdefb6ec8d93448b79a4f20cd3d0c49da80e8df1f (diff)
downloadhighline-69c8ea5b017634a1ae92141eab38967dc6a395b6.tar.gz
Add new capital_letter option to menu index
To configure menu indexes we could use `:number`, `:letter` and `none` options. The `:letter` option uses lowercase letter. Add a new option `:capital_letter` which uses uppercase letter as indexes. This code was written as it is in The Biggest Mobprogramming session ever at RubyConfBY 2019: https://rubyconference.by Co-authored-by: Mikhail <imikailoby@gmail.com> Co-authored-by: Alex <alexneisc@gmail.com> Co-authored-by: Eduardo <eduardoj@gmail.com> Co-authored-by: Tung Nguyen <tongueroo@gmail.com> Co-authored-by: Mikhail <mikhaildyomin@gmail.com> Co-authored-by: Gennady <minenkov3108@gmail.com> Co-authored-by: Tatiana <tatiana.karpesh@gmail.com> Co-authored-by: Pavel <bondek777@gmail.com> Co-authored-by: Suhakou Yauheni <shiroginne@gmail.com> Co-authored-by: Vladislav Berdinskiy <vvberdinskiy@yandex.ru> Co-authored-by: Andreyeu Uladzislau <me@vld.by> Co-authored-by: Dan <d.kachur@daarokets.com> Co-authored-by: Denis Defreyne <denis@denis.ws> Co-authored-by: Nikita <bulajnikita@gmail.com> Co-authored-by: Dmitry <dsalahitdinov@gmail.com> Co-authored-by: Aleksey <lesha@kurepin.com> Co-authored-by: Vladislav Kalach <kalach.vladislav@gmail.com> Co-authored-by: Dzmitry <kremez19@gmail.com> Co-authored-by: Tung Nguyen <tongueroo@gmail.com> Co-authored-by: Ilya <ilyabyar@gmail.com> Co-authored-by: Aliaksei Hrechushkin <ahrechushkin@gmail.com> Co-authored-by: Piotr Wasiak <chooosen@gmail.com> Co-authored-by: Aaron Patterson <aaron.patterson@gmail.com> Co-authored-by: Ihar <iharidla@gmail.com> Co-authored-by: Maks <rusakovich94@gmail.com> Co-authored-by: Karol Topolski <ktopolski.it@gmail.com> Co-authored-by: Konstantin Rudy <konstantin.rudy@gmail.com> Co-authored-by: Artyom <artemshibalko@gmail.com> Co-authored-by: Yuri <mkrvch.yury@gmail.com> Co-authored-by: Oleg <o.bekasov96@gmail.com> Co-authored-by: Rostislav Zhuravsky <rostislav.zhuravsky@gmail.com> Co-authored-by: Hanna Novikava <arnikasky@gmail.com> Co-authored-by: Alex <goodniceweb@gmail.com> Co-authored-by: Anton <orangeudav@gmail.com> Co-authored-by: Alexander <alexander.skachko@gmail.com> Co-authored-by: igorpolyakov <igorpolyakov@protonmail.com> Co-authored-by: Inna <ina.karatkova@itechart-group.com> Co-authored-by: Yury Matusevich <yury.a.matusevich@gmail.com> Co-authored-by: Paul Pavlovsky <fatpaher@gmail.com> Co-authored-by: Vlad <vlad.horbachevsky@gmail.com> Co-authored-by: Serge <Kislak7@gmail.com> Co-authored-by: Boris & Anton <Borisanton@mail.ru> Co-authored-by: Karina <rktiurina@gmail.com> Co-authored-by: Andrei Kryuda <a.kryuda@gmail.com> Co-authored-by: Artem <artemkrivonozhko@gmail.com> Co-authored-by: DimaAleks <dimaalekseichik@gmail.com> Co-authored-by: Hanna Kolesnikova <kolesaak@gmail.com> Co-authored-by: Aliaksandr Lomau <lomov.as@gmail.com> Co-authored-by: Eugene Khrantsov <eugene.kstu@gmail.com> Co-authored-by: Dmitry Zhlobo <dima.zhlobo@gmail.com> Co-authored-by: Oleg Ryzhko <ryz.oleg@gmail.com> Co-authored-by: Aleksandr <skyksandr@gmail.com> Co-authored-by: Dmitriy Kiriyenko <dmitriy.kiriyenko@gmail.com>
Diffstat (limited to 'lib')
-rwxr-xr-xlib/highline/menu.rb7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/highline/menu.rb b/lib/highline/menu.rb
index 8029b49..4db6cd2 100755
--- a/lib/highline/menu.rb
+++ b/lib/highline/menu.rb
@@ -377,6 +377,9 @@ class HighLine
if @index == :letter
l_index = "`"
all_items.map { l_index.succ!.dup }
+ elsif @index == :capital_letter
+ l_index = "@"
+ all_items.map { l_index.succ!.dup }
else
(1..all_items.size).map(&:to_s)
end
@@ -407,7 +410,7 @@ class HighLine
items = all_items
# Find the selected action.
- selected_item = find_item_from_selection(items, selection)
+ selected_item = find_item_from_selection(items, selection.downcase)
# Run or return it.
@highline = highline_context
@@ -519,6 +522,8 @@ class HighLine
["#{ix + 1}#{@index_suffix}", text]
when :letter
["#{('a'.ord + ix).chr}#{@index_suffix}", text]
+ when :capital_letter
+ ["#{('A'.ord + ix).chr}#{@index_suffix}", text]
when :none
[text, ""]
else