Diff of the two buildlogs: -- --- b1/build.log 2025-01-28 09:44:00.462105573 +0000 +++ b2/build.log 2025-01-28 09:44:39.912334581 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Mon Jan 27 21:42:53 -12 2025 -I: pbuilder-time-stamp: 1738057373 +I: Current time: Tue Mar 3 06:07:02 +14 2026 +I: pbuilder-time-stamp: 1772467622 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration @@ -23,54 +23,86 @@ dpkg-source: info: unpacking ruby-tty-prompt_0.23.1-1.debian.tar.xz I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/16311/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/65259/tmp/hooks/D01_modify_environment starting +debug: Running on ionos16-i386. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Mar 2 16:07 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/65259/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/65259/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='i386' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=11 ' - DISTRIBUTION='unstable' - HOME='/root' - HOST_ARCH='i386' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="2" [2]="37" [3]="1" [4]="release" [5]="i686-pc-linux-gnu") + BASH_VERSION='5.2.37(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=i386 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=21 ' + DIRSTACK=() + DISTRIBUTION=unstable + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=i686 + HOST_ARCH=i386 IFS=' ' - INVOCATION_ID='55ae575bee77438d8fbfb51a5f65ddb0' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - LD_LIBRARY_PATH='/usr/lib/libeatmydata' - LD_PRELOAD='libeatmydata.so' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='16311' - PS1='# ' - PS2='> ' + INVOCATION_ID=2ba83a5558af436ebf691c7dc046bafe + LANG=C + LANGUAGE=de_CH:de + LC_ALL=C + LD_LIBRARY_PATH=/usr/lib/libeatmydata + LD_PRELOAD=libeatmydata.so + MACHTYPE=i686-pc-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=65259 PS4='+ ' - PWD='/' - SHELL='/bin/bash' - SHLVL='2' - SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.41hFYVoe/pbuilderrc_wlRr --distribution unstable --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.41hFYVoe/b1 --logfile b1/build.log ruby-tty-prompt_0.23.1-1.dsc' - SUDO_GID='112' - SUDO_UID='107' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://46.16.76.132:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.41hFYVoe/pbuilderrc_1orh --distribution unstable --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.41hFYVoe/b2 --logfile b2/build.log ruby-tty-prompt_0.23.1-1.dsc' + SUDO_GID=112 + SUDO_UID=107 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://213.165.73.152:3128 I: uname -a - Linux ionos2-i386 6.1.0-30-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.124-1 (2025-01-12) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-30-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.124-1 (2025-01-12) x86_64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Nov 22 14:40 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/16311/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Nov 22 2024 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/65259/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -265,7 +297,7 @@ Get: 147 http://deb.debian.org/debian unstable/main i386 ruby-tty-screen all 0.8.1-2 [8924 B] Get: 148 http://deb.debian.org/debian unstable/main i386 ruby-wisper all 2.0.1-2 [12.7 kB] Get: 149 http://deb.debian.org/debian unstable/main i386 ruby-tty-reader all 0.9.0-1 [18.1 kB] -Fetched 56.6 MB in 3s (20.7 MB/s) +Fetched 56.6 MB in 0s (120 MB/s) Preconfiguring packages ... Selecting previously unselected package libpython3.13-minimal:i386. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19829 files and directories currently installed.) @@ -760,8 +792,8 @@ Setting up tzdata (2025a-1) ... Current default time zone: 'Etc/UTC' -Local time is now: Tue Jan 28 09:43:34 UTC 2025. -Universal Time is now: Tue Jan 28 09:43:34 UTC 2025. +Local time is now: Mon Mar 2 16:07:24 UTC 2026. +Universal Time is now: Mon Mar 2 16:07:24 UTC 2026. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up ruby-minitest (5.22.3-1) ... @@ -896,7 +928,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/ruby-tty-prompt-0.23.1/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../ruby-tty-prompt_0.23.1-1_source.changes +I: user script /srv/workspace/pbuilder/65259/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for unstable +I: user script /srv/workspace/pbuilder/65259/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/ruby-tty-prompt-0.23.1/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../ruby-tty-prompt_0.23.1-1_source.changes dpkg-buildpackage: info: source package ruby-tty-prompt dpkg-buildpackage: info: source version 0.23.1-1 dpkg-buildpackage: info: source distribution unstable @@ -930,7 +966,7 @@ │ ruby-tty-prompt: Installing files and building extensions for ruby3.3 │ └──────────────────────────────────────────────────────────────────────────────┘ -/usr/bin/ruby3.3 -S gem build --config-file /dev/null --verbose /tmp/d20250127-24320-pljcds/gemspec +/usr/bin/ruby3.3 -S gem build --config-file /dev/null --verbose /tmp/d20260303-70395-qqmmus/gemspec WARNING: open-ended dependency on rake (>= 0, development) is not recommended use a bounded requirement, such as "~> x.y" WARNING: open-ended dependency on rspec (>= 3.0, development) is not recommended @@ -941,7 +977,7 @@ Name: tty-prompt Version: 0.23.1 File: tty-prompt-0.23.1.gem -/usr/bin/ruby3.3 -S gem install --config-file /dev/null --verbose --local --verbose --no-document --ignore-dependencies --install-dir debian/ruby-tty-prompt/usr/share/rubygems-integration/all /tmp/d20250127-24320-pljcds/tty-prompt-0.23.1.gem +/usr/bin/ruby3.3 -S gem install --config-file /dev/null --verbose --local --verbose --no-document --ignore-dependencies --install-dir debian/ruby-tty-prompt/usr/share/rubygems-integration/all /tmp/d20260303-70395-qqmmus/tty-prompt-0.23.1.gem /build/reproducible-path/ruby-tty-prompt-0.23.1/debian/ruby-tty-prompt/usr/share/rubygems-integration/all/gems/tty-prompt-0.23.1/lib/tty-prompt.rb /build/reproducible-path/ruby-tty-prompt-0.23.1/debian/ruby-tty-prompt/usr/share/rubygems-integration/all/gems/tty-prompt-0.23.1/lib/tty/prompt.rb /build/reproducible-path/ruby-tty-prompt-0.23.1/debian/ruby-tty-prompt/usr/share/rubygems-integration/all/gems/tty-prompt-0.23.1/lib/tty/prompt/answers_collector.rb @@ -1009,701 +1045,701 @@ RUBYLIB=. GEM_PATH=/build/reproducible-path/ruby-tty-prompt-0.23.1/debian/ruby-tty-prompt/usr/share/rubygems-integration/all:/build/reproducible-path/ruby-tty-prompt-0.23.1/debian/.debhelper/generated/_source/home/.local/share/gem/ruby/3.3.0:/var/lib/gems/3.3.0:/usr/local/lib/ruby/gems/3.3.0:/usr/lib/ruby/gems/3.3.0:/usr/lib/i386-linux-gnu/ruby/gems/3.3.0:/usr/share/rubygems-integration/3.3.0:/usr/share/rubygems-integration/all:/usr/lib/i386-linux-gnu/rubygems-integration/3.3.0 ruby3.3 -S rake --rakelibdir /gem2deb-nonexistent -f debian/ruby-tests.rake /usr/bin/ruby3.3 -I/usr/share/rubygems-integration/all/gems/rspec-support-3.13.1/lib:/usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/exe/rspec --pattern ./spec/\*\*/\*_spec.rb --format documentation -Randomized with seed 32283 +Randomized with seed 27058 -TTY::Prompt#mask - masks output with custom character - masks with unicode character - ignores mask if echo is off - masks output by default - validates input +TTY::Prompt::Evaluator + checks chained validation objects + checks chained validation procs + +TTY::Prompt::Question#default + uses default value in block + uses default value TTY::Prompt#say prints an empty message - without color - prints message without ansi + with new line + prints a message with implicit newline + prints a message with newline within text + prints a message without newline + prints a message with newline + prints a message with newline within text and blank space with tab or space prints with color prints message with ansi color prints message with ansi color without newline - with new line - prints a message with newline - prints a message with newline within text and blank space - prints a message with newline within text - prints a message with implicit newline - prints a message without newline - -TTY::Prompt::Choices#pluck - plucks choice by key name - -TTY::Prompt - selects option by index from the list - displays error with unrecognized input - sets quiet mode - selects default option when return pressed immediately - selects option through DSL - paginates long selections - doesn't paginate short selections - changes global symbols - changes global symbols through DSL - cycles around when configured to do so - raises configuration error when default is higher than number of choices - selects option through DSL with key and value - selects default choice by name - shows pages matching input - raises when default name matches a disabled choice - sets choice value to nil through DSL - sets quiet mode through DSL - changes colors for selection, hint and error - raises when default choice name is not found - switches through pages with tab key - doesn't cycle around by default - with :disabled choice - doesn't allow to choose disabled choice and defaults - omits disabled choice when navigating with numbers - finds first non-disabled index - fails when active item is also disabled - -TTY::Prompt::Statement.new - displays prompt message in color - forces newline after the prompt message - -TTY::Prompt::Question#required - uses required in validation check - doesn't require value to be present - requires value to be present - requires value to be present with option - -TTY::Prompt::Question#initialize - is expected to eq TTY::Prompt::Question::UndefinedSetting - is expected to eq true - is expected to eq [] - -TTY::Prompt::Question#default - sets quiet mode - -TTY::Prompt::Question#keypress - receives line feed with echo on - timeouts when no key provided - interrupts input - asks for a keypress with echo off - asks for a keypress with echo on - -TTY::Prompt::Question#modify - trims whitespace - strips and collapses whitespace - preserves answer for unkown modification - converts to upper case - collapses whitespace - -TTY::Prompt::Question convert numbers - converts integer - fails to convert integer - fails to convert float - converts float - -TTY::Prompt#slider - sets default choice by index number - changes all display symbols - changes all display symbols per instance - sets quiet mode - formats via proc - specifies choices through DSL - changes to never show help - doesn't allow values outside of range - mixes choices as values and via DSL and keeps ordering - sets default choice by name - sets choice value to proc and executes it - specifies choices instead of calculated range - changes to always show help - specifies choices through DSL - specifies ranges & step - specifies quiet mode through DSL - specifies default value - specifies range through DSL - changes display colors - -TTY::Prompt#decorate - decorates with a callable object - doesn't decorate without additional arguments - doesn't decorate when disabled - decorates string with named colors - doesn't decorate empty string - decorates with a proc - -TTY::Prompt::Question convert bool - fails to convert boolean - converts negative boolean - converts positive boolean - converts single positive boolean - handles default values - handles default values - -TTY::Prompt::Question - fails convert check - fails range check - fails required check with custom message - fails range check - passes required check - fails required check - fails convert check with custom message - passes convert check - fails validation check with inlined custom message - fails validation check with custom message - fails validation check - passes validation check - passes range check - -TTY::Prompt::Question convert range - converts with valid range - fails to convert to range - -TTY::Prompt#ok - changes color to cyan - prints multiple lines in green - prints text in green - -TTY::Prompt::Choices#each - iterates over collection - -TTY::Prompt::Question convert regexp - converts regex - -TTY::Prompt::Question convert to hash - converts answer to a hash - converts answer to a hash of integer values - converts answer to a hash of boolean values - -TTY::Prompt::Question#multiline - reads no lines - reads multiple lines with empty lines - sets quiet mode - changes help text - uses defualt when no input - -TTY::Prompt::Evaluator - checks chained validation objects - checks chained validation procs - -TTY::Prompt::Choice#== - is true with the same name and value attributes - is false with different key attribute - is false with different name attribute - is false with different value attribute - is false with non-choice object + without color + prints message without ansi -TTY::Prompt::Question#echo - asks with echo off - asks with echo on +TTY::Prompt::Choices#find_by + finds a matching choice by :value key + finds no matching choice + finds a matching choice by :key key + finds a matching choice by :name key TTY::Prompt#warn - displays one message - displays message with option changes default yellow color to cyan + displays message with option displays many messages + displays one message -TTY::Prompt::Question convert file - converts to file - -TTY::Prompt::Question convert date - converts datetime - fails to convert date - converts date - -TTY::Prompt#suggest - suggests with different text and indentation - suggests few matches - suggests a single match for two characters - suggests a single match for one character +TTY::Prompt::ConverterRegistry + contain + doesn't have conversion + contains conversion + checks conversion with object type + register + fails to register conversion + registers new conversion under single name + registers new conversion under multiple names + fetch + fails to retrieve conversion + retrieves uppcase named converter + retrieves converter from the registry -TTY::Prompt::Question::Modifier#letter_case - string - capitalizes text - changes to lower case - changes to uppercase - nil (empty user input) - capitalize returns nil - up returns nil - down returns nil +TTY::Prompt::Question#echo + asks with echo on + asks with echo off -TTY::Prompt::Question convert to array - converts answer to an array - converts answer to an array of booleans - converts answer to an array of integers +TTY::Prompt::Choices#enabled + returns only choices which aren't disabled -TTY::Prompt#collect - collects more than one answer - when receiving multiple answers - collects as a list if values method used in chain - collects as a list if values method used in chain with block - overrides a non-array key on multiple answers - with multiple keys - collects into the appropriate keys +TTY::Prompt::Question#validate + deprecates :validation option + understands custom validation like :email + provides custom error message for wrong input + validates input with regex + provides default error message for wrong input + validates input with proc TTY::Prompt::Question#in - reads number within digit range overwrites default error message when wrong input provides default error message when wrong input - reads number within string range reads range from option + reads number within string range + reads number within digit range reads letters within range -TTY::Prompt::Question convert string - converts string - converts symbol - -TTY::Prompt - selects nothing when return pressed immediately - selects item when space pressed but doesn't echo item if echo: false - changes selected item color & marker - changes to never show help - sets prompt to quiet mode - sets default options through DSL syntax - selects item when space pressed - changes help text and color - raises error for defaults out of range - sets choice name and value through DSL - sets prompt prefix - changes to always show help - sets default options through hash syntax - sets choice custom values - sets choice value to nil through DSL - sets default choices using names - with :max - limits number of choices - disables Ctrl+a/Ctrl+r selection when :max option is specified - with :min - requires number of choices - with :disabled - fails when default item is also disabled - adjusts active index to match first non-disabled choice - omits disabled choice when nagivating menu - omits disabled choice when number key is pressed - selects all non-disabled choices when ctrl+a is pressed - with filter - doesn't lose the selection when switching between filters - with :cycle - cycles choices using left/right arrows - cycles filtered choices left and right - doesn't cycle by default - cycles when configured to do so - when paginated - doesn't paginate short selections - combines up/down navigation with left/right - navigates unevenly paged output with right arrow until the end of selection - selects all paged choices with ctrl+a - reverts selection accross pages with Ctrl+r - paginates choices as hash object - navigates evenly paged output with right arrow until end of selection - navigates left and right - paginates long selections through DSL - paginates long selections - -TTY::Prompt::ConverterRegistry - fetch - retrieves converter from the registry - fails to retrieve conversion - retrieves uppcase named converter - register - fails to register conversion - registers new conversion under multiple names - registers new conversion under single name - contain - contains conversion - checks conversion with object type - doesn't have conversion - -TTY::Prompt#new - sets output stream - sets input stream - sets prefix - -TTY::Prompt#ask - sets quiet mode through DSL - permits empty default parameter - sets quiet mode - asks a question with block - asks an empty question with prepopulated value - overwrites global settings - changes question color - asks question - asks an empty question and returns nil if EOF is sent to stdin - asks a question with a prefix [?] - permits nil default parameter - asks question with prepopulated value - asks an empty question - -TTY::Prompt::Choices#<< - adds choice to collection +TTY::Prompt::Choices#each + iterates over collection TTY::Prompt#select - configures quiet mode - sets choice value to proc and executes it - sets choice name through DSL sets choice value to nil - sets default option through hash syntax - raises when default choice matches disabled choice doesn't paginate short selections - selects by default first option - raises when default choice doesn't match any choices - changes help text + changes to never show help + configures quiet mode verifies default index range - changes help text through DSL + verifies default index format + allows navigation using events without errors sets quiet mode through DSL + raises when default choice matches disabled choice + changes selected item color & marker + selects by default first option + sets choice name through DSL + sets choice name & value through DSL selects default choice by name - sets prompt prefix sets choices and single choice through DSL changes to always show help - allows navigation using events without errors - sets choice name and value - verifies default index format - changes to never show help - sets choice name & value through DSL + sets default option through hash syntax + changes help text + raises when default choice doesn't match any choices sets choice name & value through DSL - changes selected item color & marker + sets choice value to proc and executes it + sets choice name and value + sets prompt prefix + changes help text through DSL + with filter + doesn't exit when there are no matching entries + cancels a selection + navigates left and right with filtered items + filters and chooses a uniquely matching entry, ignoring case + filters and chooses the first of multiple matching entries + filters based on alphanumeric and punctuation characters + doesn't allow mixing enumeration and filter with :disabled choice + omits disabled choice when navigating menu prevents setting default to disabled choice doesn't show disabled choice when filtering choices - sets active to be first non-disabled choice omits disabled choice when number key is pressed - omits disabled choice when navigating menu + sets active to be first non-disabled choice with :cycle option cycles around disabled items cycles around when configured to do so + cycles pages left/right with disabled items + cycles filtered choices left and right cycles choices using left/right arrows doesn't cycle by default - cycles filtered choices left and right - cycles pages left/right with disabled items when paginated - navigates evenly paged output with right arrow until end of selection navigates pages up/down with disabled items + combines up/down navigation with left/right paginates long selections - navigates unevenly paged output with right arrow until the end of selection + navigates pages left/right with disabled items navigates left and right paginates choices as hash object + navigates unevenly paged output with right arrow until the end of selection paginates long selections through DSL - navigates pages left/right with disabled items - combines up/down navigation with left/right - with filter - doesn't exit when there are no matching entries - filters and chooses the first of multiple matching entries - doesn't allow mixing enumeration and filter - filters based on alphanumeric and punctuation characters - filters and chooses a uniquely matching entry, ignoring case - navigates left and right with filtered items - cancels a selection + navigates evenly paged output with right arrow until end of selection + +TTY::Prompt::Question::Validation#call + validates nil input + validates with custom name + validates with a proc + validates successfully when the value matches pattern + fails validation when not maching pattern + +TTY::Prompt::Question convert bool + converts positive boolean + converts single positive boolean + fails to convert boolean + handles default values + converts negative boolean + handles default values + +TTY::Prompt::Question + passes required check + fails validation check with custom message + fails convert check with custom message + fails convert check + passes range check + fails validation check + fails range check + passes convert check + fails range check + passes validation check + fails validation check with inlined custom message + fails required check with custom message + fails required check + +TTY::Prompt::Timer + registers a tick event + times out loop execution + +TTY::Prompt::Choices#<< + adds choice to collection TTY::Prompt::Distance.distance + when unicode + is expected to eql 1 + when single char + is expected to eql 2 + when end similar + is expected to eql 3 + when nil + is expected to eql 0 + with one non empty + is expected to eql 3 when contain similar is expected to eql 2 when similar is expected to eql 2 when similar is expected to eql 1 - with one non empty - is expected to eql 3 - when end similar - is expected to eql 3 - when unicode - is expected to eql 1 - when single char - is expected to eql 2 + when empty + is expected to eql 0 when prefix is expected to eql 3 when similar is expected to eql 0 - when nil - is expected to eql 0 - when empty - is expected to eql 0 + +TTY::Prompt#inspect + inspects instance attributes TTY::Prompt::Choice#from - creates choice from a hash with a nil value creates choice from an array with name only and defaults value + creates choice from a hash with name, value and key keys + creates choice from an array with a hash without value key creates choice from an array with key-value pair - creates choice from a string creates choice from an array with a hash with name and value keys - skips Choice instance - creates choice from a hash with name, value and key keys - creates choice from an array with name and a value - creates choice from array with name and nil value - creates choice from a symbol creates choice from an array with name and false value creates choice from an arbitrary object that responds to to_s call + creates choice from an array with name and a value + creates choice from a string + creates choice from array with name and nil value + creates choice from a hash with a nil value creates choice from a hash with a value creates disabled choice - creates choice from an array with a hash without value key + skips Choice instance + creates choice from a symbol + +TTY::Prompt + raises when default name matches a disabled choice + raises configuration error when default is higher than number of choices + doesn't paginate short selections + changes global symbols + raises when default choice name is not found + switches through pages with tab key + sets quiet mode through DSL + selects default choice by name + selects option through DSL + cycles around when configured to do so + sets quiet mode + selects default option when return pressed immediately + doesn't cycle around by default + changes global symbols through DSL + paginates long selections + shows pages matching input + changes colors for selection, hint and error + displays error with unrecognized input + selects option through DSL with key and value + sets choice value to nil through DSL + selects option by index from the list + with :disabled choice + omits disabled choice when navigating with numbers + fails when active item is also disabled + doesn't allow to choose disabled choice and defaults + finds first non-disabled index + +TTY::Prompt::Question#initialize + is expected to eq true + is expected to eq [] + is expected to eq TTY::Prompt::Question::UndefinedSetting + +TTY::Prompt::Choice#== + is false with non-choice object + is false with different name attribute + is false with different key attribute + is true with the same name and value attributes + is false with different value attribute + +TTY::Prompt#suggest + suggests with different text and indentation + suggests a single match for one character + suggests few matches + suggests a single match for two characters + +TTY::Prompt#ask + asks a question with block + asks question with prepopulated value + changes question color + permits empty default parameter + overwrites global settings + asks a question with a prefix [?] + asks question + asks an empty question with prepopulated value + asks an empty question and returns nil if EOF is sent to stdin + asks an empty question + sets quiet mode + permits nil default parameter + sets quiet mode through DSL + +TTY::Prompt#collect + collects more than one answer + when receiving multiple answers + collects as a list if values method used in chain + overrides a non-array key on multiple answers + collects as a list if values method used in chain with block + with multiple keys + collects into the appropriate keys + +TTY::Prompt::Question convert range + fails to convert to range + converts with valid range + +TTY::Prompt confirmation + #yes? + disagrees with question + obeys quiet mode + customizes question through DSL + accepts regex conflicting characters as suffix + assumes default true + defaults positive and negative + agrees with question + defaults suffix and converter + infers default value from a word + changes default + warns about invalid entry when using defaults + fails to infer default value from a word + customizes question through options + #no? + disagrees with question + agrees with question + defaults suffix and converter + assumes default false + customizes question through DSL + changes default + warns about invalid entry when using defaults + +TTY::Prompt::Question convert numbers + fails to convert float + converts integer + fails to convert integer + converts float + +TTY::Prompt#subscribe + subscribes to key events only for the current prompt + +TTY::Prompt::Question#keypress + timeouts when no key provided + asks for a keypress with echo on + interrupts input + receives line feed with echo on + asks for a keypress with echo off + +TTY::Prompt::Question convert to hash + converts answer to a hash of integer values + converts answer to a hash + converts answer to a hash of boolean values + +TTY::Prompt::Question#modify + trims whitespace + preserves answer for unkown modification + converts to upper case + collapses whitespace + strips and collapses whitespace TTY::Prompt::Result checks value to be valid checks value to be invalid -TTY::Prompt#subscribe - subscribes to key events only for the current prompt +TTY::Prompt::Question::Validation#coerce + coerces lambda into proc + coerces into regex + doesn't coerce symbols + fails to coerce pattern into validation -TTY::Prompt#inspect - inspects instance attributes +TTY::Prompt::SelectedChoices + clears choices + inserts and deletes choices + inserts choices by the index order + initializes with selected choices -TTY::Prompt::Choices.new - creates choices collection +TTY::Prompt#slider + changes all display symbols per instance + specifies choices through DSL + specifies default value + specifies range through DSL + mixes choices as values and via DSL and keeps ordering + doesn't allow values outside of range + changes to never show help + sets quiet mode + sets default choice by index number + changes to always show help + specifies choices through DSL + specifies quiet mode through DSL + changes all display symbols + sets choice value to proc and executes it + specifies choices instead of calculated range + changes display colors + sets default choice by name + specifies ranges & step + formats via proc + +TTY::Prompt::Question#required + doesn't require value to be present + requires value to be present + uses required in validation check + requires value to be present with option + +TTY::Prompt::Question convert string + converts symbol + converts string TTY::Prompt::Question convert custom converts response with custom conversion -TTY::Utils - #deep_copy - copies "" - copies ["foo", {:bar=>"baz"}, :fum, 11] - #blank? - detects blank of "" as true - detects blank of " " as true - detects blank of "\n\t " as true - detects blank of "foo" as false - detects blank of nil as true - detects blank of :foo as false +TTY::Prompt::Question::Modifier#apply_to + combines whitespace & letter case modifications + doesn't apply modifiers + combines letter case & whitespace modifications -TTY::Prompt::Question#default - uses default value in block - uses default value +TTY::Prompt::Question::Modifier#whitespace + string with whitespaces + chomps whitespace + trims whitespace + removes whitespace + collapses text + nil (empty user input) + chomp returns nil + trim returns nil + collapse returns nil + remove returns nil -TTY::Prompt::BlockPaginator#paginate - ignores per_page when less items - paginates items not matching per_page count - finds both start and end index for current selection - ignores per_page when equal items - paginates items matching per_page count - doesn't accept invalid pagination - starts with default selection +TTY::Prompt::Question#multiline + reads multiple lines with empty lines + reads no lines + sets quiet mode + changes help text + uses defualt when no input + +TTY::Prompt#mask + validates input + masks output by default + ignores mask if echo is off + masks output with custom character + masks with unicode character + +TTY::Prompt#ok + prints text in green + changes color to cyan + prints multiple lines in green + +TTY::Prompt::Choices.new + creates choices collection + +TTY::Prompt#expand + specifies options through DSL and executes value + fails to expand due to duplicate key + informs about invalid input when automatically expanding hint + expands default option + fails to expand due to reserve key + sets quiet mode + changes default option + expands chosen option with extra information + automatically expands hint + fails to expand due to lack of key attribute + expands help option and then defaults + sets quiet mode through DSL + specifies options through DSL + fails to expand due to wrong key length + +TTY::Prompt#decorate + decorates with a callable object + doesn't decorate empty string + doesn't decorate when disabled + doesn't decorate without additional arguments + decorates with a proc + decorates string with named colors + +TTY::Prompt#new + sets output stream + sets input stream + sets prefix + +TTY::Prompt::Question#default + sets quiet mode TTY::Prompt::Converters + :string + converts "" to "" + converts "input\n" to "input" :hash/:map + converts "a:t b:f c:t" to {:a=>true, :b=>false, :c=>true} + converts "a:t b:f c:t" to {:a=>:t, :b=>:f, :c=>:t} + converts "a:1 b:2" to {:a=>"1", :b=>"2"} converts "a:1 b:2 c:3" to {"a"=>1, "b"=>2, "c"=>3} - converts "a:1 b:2 c:3" to {:a=>1, :b=>2, :c=>3} - converts "a:1 b:2 c:3" to {:a=>1, :b=>2, :c=>3} - converts "a:1 b:2 c:3" to {:a=>1.0, :b=>2.0, :c=>3.0} - converts ["a:1", "b:2", "c:3"] to {:a=>"1", :b=>"2", :c=>"3"} - converts "a=1" to {:a=>"1"} converts "" to {} - converts "a:t b:f c:t" to {:a=>true, :b=>false, :c=>true} converts "a=1&b=2&a=3" to {:a=>["1", "3"], :b=>"2"} - converts "a:1 b:2 c:3" to {"a"=>1, "b"=>2, "c"=>3} - converts "a:t b:f c:t" to {:a=>/t/, :b=>/f/, :c=>/t/} - converts "a:t b:f c:t" to {:a=>:t, :b=>:f, :c=>:t} - converts "a=1&b=2" to {:a=>"1", :b=>"2"} + converts "a=1" to {:a=>"1"} + converts "a:1 b:2 a:3" to {:a=>["1", "3"], :b=>"2"} + converts "a:1 b:2 c:3" to {:a=>1, :b=>2, :c=>3} + converts ["a:1", "b:2", "c:3"] to {:a=>"1", :b=>"2", :c=>"3"} converts "a=&b=2" to {:a=>"", :b=>"2"} converts ["a=1", "b=2", "c=3"] to {:a=>"1", :b=>"2", :c=>"3"} - converts "a:1 b:2" to {:a=>"1", :b=>"2"} + converts "a:1 b:2 c:3" to {"a"=>1, "b"=>2, "c"=>3} converts "a:t b:f c:t" to {:a=>true, :b=>false, :c=>true} - converts "a:1 b:2 a:3" to {:a=>["1", "3"], :b=>"2"} - :range - converts "1 , 10" to 1..10 - converts "1" to 1..1 - converts "1..10" to 1..10 - converts "1...10" to 1...10 - converts "a..z" to "a".."z" - converts "1 . . . 10" to 1...10 - converts "unknown" to "undefined" - converts "-5--1" to -5..-1 - converts 1..10 to 1..10 - converts "1.0" to 1.0..1.0 - converts "1-10" to 1..10 - converts "a . . . z" to "a"..."z" - converts "1.2-5.0" to 1.2..5.0 - :char - converts "" to nil - converts "input" to "i" - :integer + converts "a:1 b:2 c:3" to {:a=>1.0, :b=>2.0, :c=>3.0} + converts "a:1 b:2 c:3" to {:a=>1, :b=>2, :c=>3} + converts "a:t b:f c:t" to {:a=>/t/, :b=>/f/, :c=>/t/} + converts "a=1&b=2" to {:a=>"1", :b=>"2"} + :float converts "unknown" to "undefined" - converts "12" to 12 + converts "12.3" to 12.3 :uri converts "http://foobar.com" to # + :integer + converts "12" to 12 + converts "unknown" to "undefined" + :date + converts "2020/05/21" to # + converts "unknown" to "undefined" :path converts "/foo/bar/baz" to # + :datetime + converts "unknown" to "undefined" + converts "2020/05/21 11:12:13" to # :regexp converts "\\d+" to /\d+/ converts "unknown" to /unknown/ + :char + converts "input" to "i" + converts "" to nil :array/:list - converts "a, , c" to ["a", "c"] - converts "1,2,3" to [1.0, 2.0, 3.0] + converts "t,t,f" to [true, true, false] converts "1,2,3" to [1.0, 2.0, 3.0] converts "1,2,3" to [1, 2, 3] - converts "a,b,c" to [:a, :b, :c] converts "a , b , c" to ["a", "b", "c"] - converts "t,t,f" to [true, true, false] - converts "a,b,c" to [/a/, /b/, /c/] converts "1,2,3" to [1, 2, 3] + converts ["a", "b", "c"] to ["a", "b", "c"] + converts ",," to [] converts "1,2,3" to [1, 2, 3] + converts "a, , c" to ["a", "c"] + converts "t,t,f" to [true, true, false] + converts "a,b,c" to [:a, :b, :c] converts "a,b,c" to ["a", "b", "c"] converts "a,b,c" to [:a, :b, :c] + converts "a,b,c" to [/a/, /b/, /c/] converts "1,2,3" to [1, 2, 3] - converts ",," to [] + converts "1,2,3" to [1.0, 2.0, 3.0] + converts ",b,c" to ["b", "c"] converts "a, b\\, c" to ["a", "b, c"] - converts ["a", "b", "c"] to ["a", "b", "c"] converts "t,t,f" to [true, true, false] - converts "t,t,f" to [true, true, false] - converts ",b,c" to ["b", "c"] - :datetime + :range + converts "a..z" to "a".."z" + converts "1.2-5.0" to 1.2..5.0 + converts "1...10" to 1...10 + converts "a . . . z" to "a"..."z" + converts "-5--1" to -5..-1 converts "unknown" to "undefined" - converts "2020/05/21 11:12:13" to # + converts "1-10" to 1..10 + converts "1" to 1..1 + converts 1..10 to 1..10 + converts "1..10" to 1..10 + converts "1 , 10" to 1..10 + converts "1 . . . 10" to 1...10 + converts "1.0" to 1.0..1.0 :boolean - converts "true" to true - converts "y" to true - converts "YES" to true converts "1" to true - converts "no" to false - converts "f" to false - converts "unknown" to "undefined" - converts "0" to false converts "FALSE" to false + converts "0" to false + converts "YES" to true + converts "true" to true converts "t" to true - :date - converts "2020/05/21" to # converts "unknown" to "undefined" - :float - converts "12.3" to 12.3 - converts "unknown" to "undefined" - :string - converts "input\n" to "input" - converts "" to "" + converts "y" to true + converts "no" to false + converts "f" to false :time converts "unknown" to "undefined" - converts "11:12:13" to 2025-01-27 11:12:13 -1200 - -TTY::Prompt::Question::Modifier#whitespace - nil (empty user input) - chomp returns nil - remove returns nil - trim returns nil - collapse returns nil - string with whitespaces - chomps whitespace - removes whitespace - trims whitespace - collapses text + converts "11:12:13" to 2026-03-03 11:12:13 +1400 -TTY::Prompt::Timer - times out loop execution - registers a tick event - -TTY::Prompt::Choices#find_by - finds no matching choice - finds a matching choice by :name key - finds a matching choice by :key key - finds a matching choice by :value key - -TTY::Prompt::Question::Validation#coerce - coerces into regex - doesn't coerce symbols - coerces lambda into proc - fails to coerce pattern into validation +TTY::Prompt::Choices#pluck + plucks choice by key name -TTY::Prompt::Question convert char - reads single character +TTY::Prompt::Statement.new + displays prompt message in color + forces newline after the prompt message -TTY::Prompt::Question::Validation#call - fails validation when not maching pattern - validates successfully when the value matches pattern - validates nil input - validates with custom name - validates with a proc +TTY::Utils + #deep_copy + copies "" + copies ["foo", {:bar=>"baz"}, :fum, 11] + #blank? + detects blank of :foo as false + detects blank of "" as true + detects blank of "foo" as false + detects blank of nil as true + detects blank of " " as true + detects blank of "\n\t " as true TTY::Prompt::Question convert path converts pathname -TTY::Prompt::Question::Modifier#apply_to - doesn't apply modifiers - combines whitespace & letter case modifications - combines letter case & whitespace modifications +TTY::Prompt#error + displays message with option + changes default red color to cyan + displays one message + displays many messages -TTY::Prompt#expand - expands help option and then defaults - informs about invalid input when automatically expanding hint - fails to expand due to lack of key attribute - changes default option - fails to expand due to wrong key length - specifies options through DSL - fails to expand due to reserve key - sets quiet mode through DSL - fails to expand due to duplicate key - expands default option - specifies options through DSL and executes value - automatically expands hint - sets quiet mode - expands chosen option with extra information +TTY::Prompt::Question convert to array + converts answer to an array of booleans + converts answer to an array + converts answer to an array of integers -TTY::Prompt::Choices#enabled - returns only choices which aren't disabled +TTY::Prompt::Question convert char + reads single character -TTY::Prompt confirmation - #no? - changes default - assumes default false - warns about invalid entry when using defaults - defaults suffix and converter - disagrees with question - agrees with question - customizes question through DSL - #yes? - fails to infer default value from a word - obeys quiet mode - infers default value from a word - defaults positive and negative - disagrees with question - assumes default true - customizes question through options - agrees with question - changes default - customizes question through DSL - accepts regex conflicting characters as suffix - defaults suffix and converter - warns about invalid entry when using defaults +TTY::Prompt::Question convert regexp + converts regex -TTY::Prompt::Paginator#paginate +TTY::Prompt::Question::Modifier#letter_case + string + changes to lower case + changes to uppercase + capitalizes text + nil (empty user input) + up returns nil + down returns nil + capitalize returns nil + +TTY::Prompt::BlockPaginator#paginate ignores per_page when less items + ignores per_page when equal items + paginates items matching per_page count + finds both start and end index for current selection paginates items not matching per_page count + doesn't accept invalid pagination starts with default selection + +TTY::Prompt::Paginator#paginate + finds both start and end index for current selection ignores per_page when equal items - doesn't accept invalid pagination + ignores per_page when less items + paginates items not matching per_page count paginates items matching per_page count - finds both start and end index for current selection + doesn't accept invalid pagination + starts with default selection -TTY::Prompt#error - displays one message - displays message with option - changes default red color to cyan - displays many messages +TTY::Prompt::Question convert file + converts to file -TTY::Prompt::Question#validate - deprecates :validation option - provides default error message for wrong input - validates input with regex - provides custom error message for wrong input - understands custom validation like :email - validates input with proc +TTY::Prompt::Question convert date + converts date + fails to convert date + converts datetime -TTY::Prompt::SelectedChoices - initializes with selected choices - inserts and deletes choices - clears choices - inserts choices by the index order +TTY::Prompt + sets default options through DSL syntax + sets choice value to nil through DSL + sets default options through hash syntax + sets default choices using names + sets choice custom values + raises error for defaults out of range + sets choice name and value through DSL + changes help text and color + selects nothing when return pressed immediately + selects item when space pressed + selects item when space pressed but doesn't echo item if echo: false + sets prompt to quiet mode + changes to always show help + sets prompt prefix + changes to never show help + changes selected item color & marker + with :max + limits number of choices + disables Ctrl+a/Ctrl+r selection when :max option is specified + when paginated + paginates long selections through DSL + reverts selection accross pages with Ctrl+r + selects all paged choices with ctrl+a + navigates left and right + doesn't paginate short selections + navigates unevenly paged output with right arrow until the end of selection + paginates choices as hash object + combines up/down navigation with left/right + navigates evenly paged output with right arrow until end of selection + paginates long selections + with :disabled + omits disabled choice when nagivating menu + selects all non-disabled choices when ctrl+a is pressed + omits disabled choice when number key is pressed + adjusts active index to match first non-disabled choice + fails when default item is also disabled + with filter + doesn't lose the selection when switching between filters + with :min + requires number of choices + with :cycle + cycles when configured to do so + doesn't cycle by default + cycles choices using left/right arrows + cycles filtered choices left and right -Top 2 slowest examples (0.1473 seconds, 14.9% of total time): - TTY::Prompt#mask masks output with custom character - 0.11573 seconds ./spec/unit/mask_spec.rb:32 - TTY::Prompt::Timer times out loop execution - 0.03156 seconds ./spec/unit/timer_spec.rb:4 +Top 2 slowest examples (0.1033 seconds, 15.8% of total time): + TTY::Prompt::Question#default uses default value in block + 0.07208 seconds ./spec/unit/question/default_spec.rb:20 + TTY::Prompt::Timer registers a tick event + 0.03122 seconds ./spec/unit/timer_spec.rb:15 Top 2 slowest example groups: + TTY::Prompt::Question#default + 0.03673 seconds average (0.07345 seconds / 2 examples) ./spec/unit/question/default_spec.rb:3 TTY::Prompt::Timer - 0.0313 seconds average (0.0626 seconds / 2 examples) ./spec/unit/timer_spec.rb:3 - TTY::Prompt#mask - 0.02461 seconds average (0.12307 seconds / 5 examples) ./spec/unit/mask_spec.rb:3 + 0.03132 seconds average (0.06265 seconds / 2 examples) ./spec/unit/timer_spec.rb:3 -Finished in 0.98997 seconds (files took 0.58933 seconds to load) +Finished in 0.65409 seconds (files took 0.33761 seconds to load) 494 examples, 0 failures -Randomized with seed 32283 +Randomized with seed 27058 /usr/bin/ruby3.1 /usr/bin/gem2deb-test-runner @@ -1720,318 +1756,279 @@ RUBYLIB=. GEM_PATH=/build/reproducible-path/ruby-tty-prompt-0.23.1/debian/ruby-tty-prompt/usr/share/rubygems-integration/all:/build/reproducible-path/ruby-tty-prompt-0.23.1/debian/.debhelper/generated/_source/home/.local/share/gem/ruby/3.1.0:/var/lib/gems/3.1.0:/usr/local/lib/ruby/gems/3.1.0:/usr/lib/ruby/gems/3.1.0:/usr/lib/i386-linux-gnu/ruby/gems/3.1.0:/usr/share/rubygems-integration/3.1.0:/usr/share/rubygems-integration/all:/usr/lib/i386-linux-gnu/rubygems-integration/3.1.0 ruby3.1 -S rake --rakelibdir /gem2deb-nonexistent -f debian/ruby-tests.rake /usr/bin/ruby3.1 -I/usr/share/rubygems-integration/all/gems/rspec-support-3.13.1/lib:/usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/exe/rspec --pattern ./spec/\*\*/\*_spec.rb --format documentation -Randomized with seed 17554 +Randomized with seed 17915 -TTY::Prompt::Choices#each - iterates over collection +TTY::Prompt::Timer + registers a tick event + times out loop execution -TTY::Prompt::Question#default +TTY::Prompt::Choice#from + creates choice from an array with name only and defaults value + creates choice from a string + creates choice from a hash with name, value and key keys + creates choice from an array with a hash with name and value keys + creates choice from array with name and nil value + skips Choice instance + creates choice from an array with a hash without value key + creates choice from a symbol + creates choice from a hash with a nil value + creates disabled choice + creates choice from a hash with a value + creates choice from an arbitrary object that responds to to_s call + creates choice from an array with name and false value + creates choice from an array with key-value pair + creates choice from an array with name and a value + +TTY::Prompt::Question#echo No entry for terminal type "unknown"; using dumb terminal settings. No entry for terminal type "unknown"; using dumb terminal settings. No entry for terminal type "unknown"; using dumb terminal settings. - uses default value in block - uses default value + asks with echo on + asks with echo off + +TTY::Prompt::Question convert custom + converts response with custom conversion + +TTY::Prompt::Question convert to hash + converts answer to a hash + converts answer to a hash of integer values + converts answer to a hash of boolean values TTY::Prompt - sets prompt prefix - sets default options through hash syntax - sets choice name and value through DSL - sets default choices using names sets choice value to nil through DSL - changes to never show help - sets default options through DSL syntax - selects nothing when return pressed immediately - selects item when space pressed - sets prompt to quiet mode - changes selected item color & marker - changes to always show help - raises error for defaults out of range - sets choice custom values - selects item when space pressed but doesn't echo item if echo: false - changes help text and color - with filter - doesn't lose the selection when switching between filters - with :min - requires number of choices - with :max - disables Ctrl+a/Ctrl+r selection when :max option is specified - limits number of choices - when paginated - paginates long selections through DSL - navigates unevenly paged output with right arrow until the end of selection - reverts selection accross pages with Ctrl+r - selects all paged choices with ctrl+a - navigates evenly paged output with right arrow until end of selection - combines up/down navigation with left/right - doesn't paginate short selections - paginates long selections - paginates choices as hash object - navigates left and right - with :cycle - cycles when configured to do so - doesn't cycle by default - cycles filtered choices left and right - cycles choices using left/right arrows - with :disabled - selects all non-disabled choices when ctrl+a is pressed - adjusts active index to match first non-disabled choice - omits disabled choice when number key is pressed - fails when default item is also disabled - omits disabled choice when nagivating menu + displays error with unrecognized input + selects option through DSL + sets quiet mode through DSL + selects default option when return pressed immediately + changes global symbols + selects option by index from the list + doesn't cycle around by default + raises when default choice name is not found + changes global symbols through DSL + switches through pages with tab key + selects option through DSL with key and value + raises when default name matches a disabled choice + doesn't paginate short selections + cycles around when configured to do so + sets quiet mode + paginates long selections + shows pages matching input + selects default choice by name + raises configuration error when default is higher than number of choices + changes colors for selection, hint and error + with :disabled choice + omits disabled choice when navigating with numbers + fails when active item is also disabled + finds first non-disabled index + doesn't allow to choose disabled choice and defaults -TTY::Prompt::Choices#<< - adds choice to collection +TTY::Prompt::Choices#find_by + finds no matching choice + finds a matching choice by :name key + finds a matching choice by :key key + finds a matching choice by :value key -TTY::Prompt::Question convert to array - converts answer to an array of booleans - converts answer to an array - converts answer to an array of integers +TTY::Prompt::Result + checks value to be invalid + checks value to be valid -TTY::Prompt::Question#keypress - asks for a keypress with echo on - interrupts input - asks for a keypress with echo off - receives line feed with echo on - timeouts when no key provided +TTY::Prompt#collect + collects more than one answer + when receiving multiple answers + collects as a list if values method used in chain + overrides a non-array key on multiple answers + collects as a list if values method used in chain with block + with multiple keys + collects into the appropriate keys -TTY::Prompt::Evaluator - checks chained validation procs - checks chained validation objects +TTY::Prompt::Question::Modifier#apply_to + combines whitespace & letter case modifications + doesn't apply modifiers + combines letter case & whitespace modifications + +TTY::Prompt::Question#multiline + sets quiet mode + uses defualt when no input + reads multiple lines with empty lines + reads no lines + changes help text + +TTY::Prompt::Question::Modifier#letter_case + string + changes to lower case + changes to uppercase + capitalizes text + nil (empty user input) + down returns nil + capitalize returns nil + up returns nil + +TTY::Prompt::Question convert char + reads single character + +TTY::Prompt::Question#default + sets quiet mode + +TTY::Prompt#expand + fails to expand due to wrong key length + automatically expands hint + fails to expand due to reserve key + specifies options through DSL and executes value + expands default option + changes default option + fails to expand due to lack of key attribute + informs about invalid input when automatically expanding hint + fails to expand due to duplicate key + expands chosen option with extra information + sets quiet mode + sets quiet mode through DSL + specifies options through DSL + expands help option and then defaults + +TTY::Prompt::Question convert regexp + converts regex + +TTY::Prompt::Question + passes validation check + fails convert check with custom message + fails convert check + passes convert check + fails required check + fails validation check with inlined custom message + passes required check + fails range check + fails validation check with custom message + fails required check with custom message + fails validation check + passes range check + fails range check + +TTY::Prompt::Question#validate + validates input with regex + provides custom error message for wrong input + provides default error message for wrong input + validates input with proc + understands custom validation like :email + deprecates :validation option TTY::Prompt#decorate decorates string with named colors - decorates with a proc + decorates with a callable object + doesn't decorate without additional arguments doesn't decorate empty string + decorates with a proc doesn't decorate when disabled - doesn't decorate without additional arguments - decorates with a callable object -TTY::Prompt#select - sets choice value to nil - selects by default first option - changes help text through DSL - sets choice name & value through DSL - changes help text - sets choice value to proc and executes it +TTY::Prompt + selects item when space pressed + sets choice custom values + sets default options through hash syntax + selects item when space pressed but doesn't echo item if echo: false + sets choice value to nil through DSL + changes help text and color + sets prompt to quiet mode changes to never show help - verifies default index range - raises when default choice matches disabled choice - allows navigation using events without errors - sets choice name and value - sets choice name through DSL - raises when default choice doesn't match any choices - changes selected item color & marker - sets choices and single choice through DSL - doesn't paginate short selections - verifies default index format - configures quiet mode - selects default choice by name - changes to always show help - sets default option through hash syntax - sets choice name & value through DSL - sets quiet mode through DSL sets prompt prefix - with :cycle option - doesn't cycle by default - cycles pages left/right with disabled items - cycles filtered choices left and right - cycles around disabled items - cycles choices using left/right arrows - cycles around when configured to do so - with :disabled choice - sets active to be first non-disabled choice + selects nothing when return pressed immediately + raises error for defaults out of range + changes to always show help + sets choice name and value through DSL + changes selected item color & marker + sets default options through DSL syntax + sets default choices using names + with :max + disables Ctrl+a/Ctrl+r selection when :max option is specified + limits number of choices + with :disabled + selects all non-disabled choices when ctrl+a is pressed + fails when default item is also disabled omits disabled choice when number key is pressed - doesn't show disabled choice when filtering choices - omits disabled choice when navigating menu - prevents setting default to disabled choice + adjusts active index to match first non-disabled choice + omits disabled choice when nagivating menu with filter - navigates left and right with filtered items - cancels a selection - filters based on alphanumeric and punctuation characters - filters and chooses a uniquely matching entry, ignoring case - doesn't exit when there are no matching entries - filters and chooses the first of multiple matching entries - doesn't allow mixing enumeration and filter + doesn't lose the selection when switching between filters + with :min + requires number of choices + with :cycle + cycles filtered choices left and right + doesn't cycle by default + cycles choices using left/right arrows + cycles when configured to do so when paginated - paginates choices as hash object - navigates left and right - navigates pages up/down with disabled items + paginates long selections through DSL + reverts selection accross pages with Ctrl+r navigates unevenly paged output with right arrow until the end of selection + doesn't paginate short selections + navigates evenly paged output with right arrow until end of selection + selects all paged choices with ctrl+a + paginates choices as hash object combines up/down navigation with left/right - navigates pages left/right with disabled items - paginates long selections through DSL + navigates left and right paginates long selections - navigates evenly paged output with right arrow until end of selection -TTY::Prompt::Result - checks value to be valid - checks value to be invalid - -TTY::Prompt::Question::Validation#coerce - coerces lambda into proc - doesn't coerce symbols - coerces into regex - fails to coerce pattern into validation +TTY::Prompt#say + prints an empty message + with color + prints message with ansi color without newline + prints message with ansi color + with tab or space + prints + with new line + prints a message without newline + prints a message with newline within text and blank space + prints a message with newline within text + prints a message with newline + prints a message with implicit newline + without color + prints message without ansi -TTY::Prompt::Question convert char - reads single character +TTY::Prompt::Question convert bool + converts positive boolean + fails to convert boolean + converts single positive boolean + handles default values + handles default values + converts negative boolean -TTY::Prompt#error - displays many messages - changes default red color to cyan - displays message with option - displays one message +TTY::Prompt::Question convert file + converts to file -TTY::Prompt::Converters - :integer - converts "unknown" to "undefined" - converts "12" to 12 - :regexp - converts "\\d+" to /\d+/ - converts "unknown" to /unknown/ - :datetime - converts "2020/05/21 11:12:13" to # - converts "unknown" to "undefined" - :date - converts "2020/05/21" to # - converts "unknown" to "undefined" - :range - converts "-5--1" to -5..-1 - converts "1 . . . 10" to 1...10 - converts "1...10" to 1...10 - converts 1..10 to 1..10 - converts "1.0" to 1.0..1.0 - converts "1" to 1..1 - converts "1.2-5.0" to 1.2..5.0 - converts "1..10" to 1..10 - converts "1 , 10" to 1..10 - converts "unknown" to "undefined" - converts "a . . . z" to "a"..."z" - converts "a..z" to "a".."z" - converts "1-10" to 1..10 - :char - converts "input" to "i" - converts "" to nil - :path - converts "/foo/bar/baz" to # - :float - converts "12.3" to 12.3 - converts "unknown" to "undefined" - :time - converts "unknown" to "undefined" - converts "11:12:13" to 2025-01-27 11:12:13 -1200 - :boolean - converts "unknown" to "undefined" - converts "true" to true - converts "y" to true - converts "f" to false - converts "1" to true - converts "YES" to true - converts "0" to false - converts "FALSE" to false - converts "t" to true - converts "no" to false - :array/:list - converts "a, b\\, c" to ["a", "b, c"] - converts ["a", "b", "c"] to ["a", "b", "c"] - converts "1,2,3" to [1, 2, 3] - converts "t,t,f" to [true, true, false] - converts "a,b,c" to [:a, :b, :c] - converts "a,b,c" to [/a/, /b/, /c/] - converts "t,t,f" to [true, true, false] - converts "a , b , c" to ["a", "b", "c"] - converts "1,2,3" to [1, 2, 3] - converts "1,2,3" to [1, 2, 3] - converts "t,t,f" to [true, true, false] - converts "a,b,c" to ["a", "b", "c"] - converts ",b,c" to ["b", "c"] - converts ",," to [] - converts "1,2,3" to [1.0, 2.0, 3.0] - converts "1,2,3" to [1, 2, 3] - converts "a,b,c" to [:a, :b, :c] - converts "a, , c" to ["a", "c"] - converts "1,2,3" to [1.0, 2.0, 3.0] - :hash/:map - converts "a:1 b:2" to {:a=>"1", :b=>"2"} - converts "a:1 b:2 c:3" to {:a=>1, :b=>2, :c=>3} - converts "a:t b:f c:t" to {:a=>true, :b=>false, :c=>true} - converts ["a=1", "b=2", "c=3"] to {:a=>"1", :b=>"2", :c=>"3"} - converts "a:t b:f c:t" to {:a=>:t, :b=>:f, :c=>:t} - converts "a:1 b:2 c:3" to {"a"=>1, "b"=>2, "c"=>3} - converts "a:1 b:2 c:3" to {:a=>1, :b=>2, :c=>3} - converts "a:1 b:2 a:3" to {:a=>["1", "3"], :b=>"2"} - converts "a=1&b=2&a=3" to {:a=>["1", "3"], :b=>"2"} - converts "a:t b:f c:t" to {:a=>/t/, :b=>/f/, :c=>/t/} - converts "a=&b=2" to {:a=>"", :b=>"2"} - converts "a:t b:f c:t" to {:a=>true, :b=>false, :c=>true} - converts "a:1 b:2 c:3" to {:a=>1.0, :b=>2.0, :c=>3.0} - converts "a=1&b=2" to {:a=>"1", :b=>"2"} - converts "" to {} - converts "a=1" to {:a=>"1"} - converts ["a:1", "b:2", "c:3"] to {:a=>"1", :b=>"2", :c=>"3"} - converts "a:1 b:2 c:3" to {"a"=>1, "b"=>2, "c"=>3} - :uri - converts "http://foobar.com" to # - :string - converts "" to "" - converts "input\n" to "input" +TTY::Prompt::Choices#each + iterates over collection -TTY::Prompt::Question convert string - converts symbol - converts string +TTY::Prompt::Choice#== + is true with the same name and value attributes + is false with different name attribute + is false with different value attribute + is false with different key attribute + is false with non-choice object -TTY::Prompt::Question - fails convert check with custom message - fails convert check - fails validation check with custom message - fails range check - passes required check - fails required check - fails required check with custom message - passes convert check - fails validation check with inlined custom message - fails range check - passes validation check - fails validation check - passes range check +TTY::Prompt::Question convert date + converts datetime + converts date + fails to convert date -TTY::Prompt::Question convert to hash - converts answer to a hash of integer values - converts answer to a hash of boolean values - converts answer to a hash +TTY::Prompt#subscribe + subscribes to key events only for the current prompt -TTY::Prompt#slider - changes to always show help - mixes choices as values and via DSL and keeps ordering - formats via proc - changes all display symbols per instance - specifies choices instead of calculated range - specifies choices through DSL - specifies choices through DSL - doesn't allow values outside of range - specifies range through DSL - changes display colors - sets default choice by name - changes all display symbols - sets default choice by index number - specifies default value - sets choice value to proc and executes it - sets quiet mode - changes to never show help - specifies quiet mode through DSL - specifies ranges & step +TTY::Prompt::Question::Validation#call + fails validation when not maching pattern + validates successfully when the value matches pattern + validates nil input + validates with custom name + validates with a proc -TTY::Prompt::Statement.new - forces newline after the prompt message - displays prompt message in color +TTY::Prompt::Question convert string + converts symbol + converts string TTY::Utils #deep_copy - copies ["foo", {:bar=>"baz"}, :fum, 11] copies "" + copies ["foo", {:bar=>"baz"}, :fum, 11] #blank? detects blank of nil as true detects blank of "foo" as false @@ -2040,387 +2037,426 @@ detects blank of " " as true detects blank of "\n\t " as true -TTY::Prompt::Question convert path - converts pathname +TTY::Prompt::SelectedChoices + initializes with selected choices + inserts choices by the index order + inserts and deletes choices + clears choices -TTY::Prompt::Question convert bool - converts negative boolean - converts positive boolean - converts single positive boolean - fails to convert boolean - handles default values - handles default values +TTY::Prompt::Question#modify + collapses whitespace + strips and collapses whitespace + preserves answer for unkown modification + converts to upper case + trims whitespace -TTY::Prompt::Paginator#paginate - doesn't accept invalid pagination +TTY::Prompt::Choices.new + creates choices collection + +TTY::Prompt::BlockPaginator#paginate starts with default selection - paginates items not matching per_page count - paginates items matching per_page count ignores per_page when equal items - finds both start and end index for current selection + paginates items matching per_page count + doesn't accept invalid pagination ignores per_page when less items + paginates items not matching per_page count + finds both start and end index for current selection -TTY::Prompt::Choices#find_by - finds a matching choice by :key key - finds a matching choice by :value key - finds a matching choice by :name key - finds no matching choice +TTY::Prompt::Question#required + requires value to be present + requires value to be present with option + uses required in validation check + doesn't require value to be present -TTY::Prompt#ok - prints text in green - prints multiple lines in green - changes color to cyan +TTY::Prompt::ConverterRegistry + register + registers new conversion under single name + registers new conversion under multiple names + fails to register conversion + contain + doesn't have conversion + checks conversion with object type + contains conversion + fetch + retrieves converter from the registry + retrieves uppcase named converter + fails to retrieve conversion TTY::Prompt#mask - validates input ignores mask if echo is off - masks with unicode character - masks output by default masks output with custom character + validates input + masks output by default + masks with unicode character -TTY::Prompt confirmation - #yes? - customizes question through options - assumes default true - warns about invalid entry when using defaults - infers default value from a word - obeys quiet mode - changes default - fails to infer default value from a word - defaults positive and negative - customizes question through DSL - defaults suffix and converter - accepts regex conflicting characters as suffix - agrees with question - disagrees with question - #no? - warns about invalid entry when using defaults - agrees with question - defaults suffix and converter - disagrees with question - customizes question through DSL - assumes default false - changes default - -TTY::Prompt::Question convert file - converts to file - -TTY::Prompt::Question convert regexp - converts regex - -TTY::Prompt::Question::Modifier#letter_case - nil (empty user input) - up returns nil - capitalize returns nil - down returns nil - string - capitalizes text - changes to uppercase - changes to lower case - -TTY::Prompt#new - sets input stream - sets output stream - sets prefix - -TTY::Prompt#warn - displays message with option - displays one message - changes default yellow color to cyan - displays many messages - -TTY::Prompt - cycles around when configured to do so - switches through pages with tab key - changes colors for selection, hint and error - selects default option when return pressed immediately - raises configuration error when default is higher than number of choices - changes global symbols - doesn't paginate short selections - displays error with unrecognized input - sets quiet mode through DSL - selects option through DSL with key and value - raises when default choice name is not found - doesn't cycle around by default - sets quiet mode - shows pages matching input - raises when default name matches a disabled choice - selects option by index from the list - paginates long selections - changes global symbols through DSL - selects option through DSL - sets choice value to nil through DSL - selects default choice by name - with :disabled choice - omits disabled choice when navigating with numbers - finds first non-disabled index - fails when active item is also disabled - doesn't allow to choose disabled choice and defaults - -TTY::Prompt#ask - permits nil default parameter - sets quiet mode - asks a question with a prefix [?] - asks a question with block - asks an empty question and returns nil if EOF is sent to stdin - asks an empty question - sets quiet mode through DSL - asks an empty question with prepopulated value - asks question - permits empty default parameter - overwrites global settings - asks question with prepopulated value - changes question color - -TTY::Prompt#subscribe - subscribes to key events only for the current prompt - -TTY::Prompt::Choices.new - creates choices collection - -TTY::Prompt::Question::Validation#call - validates nil input - validates with custom name - validates with a proc - validates successfully when the value matches pattern - fails validation when not maching pattern +TTY::Prompt#ok + prints text in green + prints multiple lines in green + changes color to cyan -TTY::Prompt::Question#required - requires value to be present - uses required in validation check - requires value to be present with option - doesn't require value to be present +TTY::Prompt::Question#keypress + timeouts when no key provided + asks for a keypress with echo on + interrupts input + receives line feed with echo on + asks for a keypress with echo off -TTY::Prompt::Choice#== - is false with different value attribute - is false with non-choice object - is true with the same name and value attributes - is false with different name attribute - is false with different key attribute +TTY::Prompt::Statement.new + displays prompt message in color + forces newline after the prompt message TTY::Prompt::Distance.distance + when contain similar + is expected to eql 2 when similar - is expected to eql 0 + is expected to eql 1 + with one non empty + is expected to eql 3 when similar is expected to eql 2 - when contain similar - is expected to eql 2 when single char is expected to eql 2 - when prefix - is expected to eql 3 - with one non empty - is expected to eql 3 when empty is expected to eql 0 - when end similar + when prefix is expected to eql 3 - when similar + when unicode is expected to eql 1 + when similar + is expected to eql 0 when nil is expected to eql 0 - when unicode - is expected to eql 1 + when end similar + is expected to eql 3 + +TTY::Prompt#warn + displays one message + displays message with option + displays many messages + changes default yellow color to cyan + +TTY::Prompt::Converters + :string + converts "input\n" to "input" + converts "" to "" + :boolean + converts "no" to false + converts "1" to true + converts "FALSE" to false + converts "f" to false + converts "true" to true + converts "t" to true + converts "unknown" to "undefined" + converts "0" to false + converts "YES" to true + converts "y" to true + :hash/:map + converts "a:t b:f c:t" to {:a=>/t/, :b=>/f/, :c=>/t/} + converts "a:1 b:2" to {:a=>"1", :b=>"2"} + converts ["a:1", "b:2", "c:3"] to {:a=>"1", :b=>"2", :c=>"3"} + converts ["a=1", "b=2", "c=3"] to {:a=>"1", :b=>"2", :c=>"3"} + converts "a:1 b:2 a:3" to {:a=>["1", "3"], :b=>"2"} + converts "a=1&b=2&a=3" to {:a=>["1", "3"], :b=>"2"} + converts "a=1" to {:a=>"1"} + converts "a=&b=2" to {:a=>"", :b=>"2"} + converts "a:t b:f c:t" to {:a=>true, :b=>false, :c=>true} + converts "a=1&b=2" to {:a=>"1", :b=>"2"} + converts "a:1 b:2 c:3" to {"a"=>1, "b"=>2, "c"=>3} + converts "a:1 b:2 c:3" to {:a=>1.0, :b=>2.0, :c=>3.0} + converts "a:1 b:2 c:3" to {:a=>1, :b=>2, :c=>3} + converts "a:1 b:2 c:3" to {"a"=>1, "b"=>2, "c"=>3} + converts "a:t b:f c:t" to {:a=>:t, :b=>:f, :c=>:t} + converts "a:1 b:2 c:3" to {:a=>1, :b=>2, :c=>3} + converts "a:t b:f c:t" to {:a=>true, :b=>false, :c=>true} + converts "" to {} + :range + converts "1.2-5.0" to 1.2..5.0 + converts "1" to 1..1 + converts "1-10" to 1..10 + converts "1 . . . 10" to 1...10 + converts "a..z" to "a".."z" + converts "unknown" to "undefined" + converts "1 , 10" to 1..10 + converts "a . . . z" to "a"..."z" + converts "1...10" to 1...10 + converts 1..10 to 1..10 + converts "-5--1" to -5..-1 + converts "1.0" to 1.0..1.0 + converts "1..10" to 1..10 + :float + converts "unknown" to "undefined" + converts "12.3" to 12.3 + :integer + converts "12" to 12 + converts "unknown" to "undefined" + :path + converts "/foo/bar/baz" to # + :time + converts "unknown" to "undefined" + converts "11:12:13" to 2026-03-03 11:12:13 +1400 + :datetime + converts "unknown" to "undefined" + converts "2020/05/21 11:12:13" to # + :regexp + converts "\\d+" to /\d+/ + converts "unknown" to /unknown/ + :array/:list + converts "t,t,f" to [true, true, false] + converts "1,2,3" to [1, 2, 3] + converts "a,b,c" to [:a, :b, :c] + converts "a, b\\, c" to ["a", "b, c"] + converts "a,b,c" to ["a", "b", "c"] + converts "a , b , c" to ["a", "b", "c"] + converts "t,t,f" to [true, true, false] + converts "a,b,c" to [:a, :b, :c] + converts "1,2,3" to [1, 2, 3] + converts ",b,c" to ["b", "c"] + converts "1,2,3" to [1, 2, 3] + converts ",," to [] + converts "1,2,3" to [1, 2, 3] + converts "a, , c" to ["a", "c"] + converts "1,2,3" to [1.0, 2.0, 3.0] + converts "t,t,f" to [true, true, false] + converts "1,2,3" to [1.0, 2.0, 3.0] + converts ["a", "b", "c"] to ["a", "b", "c"] + converts "a,b,c" to [/a/, /b/, /c/] + :uri + converts "http://foobar.com" to # + :date + converts "unknown" to "undefined" + converts "2020/05/21" to # + :char + converts "input" to "i" + converts "" to nil + +TTY::Prompt::Question#in + provides default error message when wrong input + reads range from option + reads number within digit range + reads letters within range + reads number within string range + overwrites default error message when wrong input + +TTY::Prompt::Question convert to array + converts answer to an array + converts answer to an array of booleans + converts answer to an array of integers + +TTY::Prompt::Choices#<< + adds choice to collection + +TTY::Prompt#suggest + suggests few matches + suggests with different text and indentation + suggests a single match for two characters + suggests a single match for one character TTY::Prompt#inspect inspects instance attributes -TTY::Prompt::BlockPaginator#paginate - paginates items matching per_page count +TTY::Prompt#ask + asks a question with block + permits empty default parameter + overwrites global settings + asks an empty question + changes question color + asks question + asks an empty question and returns nil if EOF is sent to stdin + sets quiet mode + asks a question with a prefix [?] + sets quiet mode through DSL + permits nil default parameter + asks question with prepopulated value + asks an empty question with prepopulated value + +TTY::Prompt#error + changes default red color to cyan + displays message with option + displays one message + displays many messages + +TTY::Prompt::Paginator#paginate + finds both start and end index for current selection paginates items not matching per_page count + paginates items matching per_page count starts with default selection - finds both start and end index for current selection - doesn't accept invalid pagination ignores per_page when less items + doesn't accept invalid pagination ignores per_page when equal items -TTY::Prompt::Question#validate - validates input with regex - deprecates :validation option - validates input with proc - provides custom error message for wrong input - understands custom validation like :email - provides default error message for wrong input - -TTY::Prompt#collect - collects more than one answer - when receiving multiple answers - collects as a list if values method used in chain - overrides a non-array key on multiple answers - collects as a list if values method used in chain with block - with multiple keys - collects into the appropriate keys +TTY::Prompt#new + sets output stream + sets input stream + sets prefix TTY::Prompt::Question#default - sets quiet mode - -TTY::Prompt::Timer - times out loop execution - registers a tick event - -TTY::Prompt::Question convert date - fails to convert date - converts datetime - converts date - -TTY::Prompt#expand - expands help option and then defaults - specifies options through DSL - expands chosen option with extra information - fails to expand due to wrong key length - expands default option - specifies options through DSL and executes value - sets quiet mode - sets quiet mode through DSL - fails to expand due to reserve key - fails to expand due to lack of key attribute - fails to expand due to duplicate key - changes default option - informs about invalid input when automatically expanding hint - automatically expands hint + uses default value + uses default value in block TTY::Prompt::Choices#enabled returns only choices which aren't disabled -TTY::Prompt::Question#modify - trims whitespace - converts to upper case - collapses whitespace - strips and collapses whitespace - preserves answer for unkown modification - -TTY::Prompt::Choice#from - creates choice from a hash with a value - creates disabled choice - creates choice from an array with name only and defaults value - creates choice from an array with name and false value - skips Choice instance - creates choice from an array with key-value pair - creates choice from a hash with name, value and key keys - creates choice from an array with a hash without value key - creates choice from an array with a hash with name and value keys - creates choice from a hash with a nil value - creates choice from an arbitrary object that responds to to_s call - creates choice from a string - creates choice from array with name and nil value - creates choice from a symbol - creates choice from an array with name and a value +TTY::Prompt::Choices#pluck + plucks choice by key name TTY::Prompt::Question#initialize - is expected to eq [] is expected to eq true is expected to eq TTY::Prompt::Question::UndefinedSetting + is expected to eq [] -TTY::Prompt::Question#in - provides default error message when wrong input - reads letters within range - reads range from option - reads number within digit range - reads number within string range - overwrites default error message when wrong input +TTY::Prompt#slider + formats via proc + changes display colors + specifies default value + sets quiet mode + specifies quiet mode through DSL + specifies range through DSL + specifies choices through DSL + changes to always show help + changes all display symbols + doesn't allow values outside of range + specifies choices through DSL + specifies choices instead of calculated range + sets default choice by name + sets choice value to proc and executes it + changes all display symbols per instance + changes to never show help + sets default choice by index number + specifies ranges & step + mixes choices as values and via DSL and keeps ordering -TTY::Prompt::Question::Modifier#apply_to - combines whitespace & letter case modifications - doesn't apply modifiers - combines letter case & whitespace modifications +TTY::Prompt::Question convert path + converts pathname TTY::Prompt::Question::Modifier#whitespace string with whitespaces - chomps whitespace - collapses text removes whitespace + collapses text + chomps whitespace trims whitespace nil (empty user input) - chomp returns nil - trim returns nil collapse returns nil + trim returns nil remove returns nil + chomp returns nil -TTY::Prompt::SelectedChoices - inserts and deletes choices - clears choices - inserts choices by the index order - initializes with selected choices - -TTY::Prompt::Question convert custom - converts response with custom conversion +TTY::Prompt confirmation + #yes? + customizes question through options + defaults positive and negative + fails to infer default value from a word + changes default + defaults suffix and converter + accepts regex conflicting characters as suffix + assumes default true + disagrees with question + customizes question through DSL + warns about invalid entry when using defaults + infers default value from a word + obeys quiet mode + agrees with question + #no? + disagrees with question + defaults suffix and converter + agrees with question + changes default + assumes default false + warns about invalid entry when using defaults + customizes question through DSL -TTY::Prompt::Question#echo - asks with echo on - asks with echo off +TTY::Prompt::Question convert range + converts with valid range + fails to convert to range TTY::Prompt::Question convert numbers + converts float fails to convert integer - converts integer fails to convert float - converts float - -TTY::Prompt::ConverterRegistry - contain - contains conversion - doesn't have conversion - checks conversion with object type - register - registers new conversion under single name - registers new conversion under multiple names - fails to register conversion - fetch - fails to retrieve conversion - retrieves converter from the registry - retrieves uppcase named converter - -TTY::Prompt::Choices#pluck - plucks choice by key name - -TTY::Prompt::Question convert range - converts with valid range - fails to convert to range + converts integer -TTY::Prompt#say - prints an empty message - with color - prints message with ansi color without newline - prints message with ansi color - without color - prints message without ansi - with tab or space - prints - with new line - prints a message with newline within text and blank space - prints a message with implicit newline - prints a message with newline - prints a message with newline within text - prints a message without newline +TTY::Prompt::Evaluator + checks chained validation objects + checks chained validation procs -TTY::Prompt#suggest - suggests few matches - suggests a single match for two characters - suggests with different text and indentation - suggests a single match for one character +TTY::Prompt::Question::Validation#coerce + doesn't coerce symbols + coerces into regex + fails to coerce pattern into validation + coerces lambda into proc -TTY::Prompt::Question#multiline - uses defualt when no input - reads no lines +TTY::Prompt#select + sets quiet mode through DSL + sets choice name & value through DSL + changes to never show help + configures quiet mode + changes to always show help + sets choice value to nil + sets prompt prefix + sets default option through hash syntax + sets choice value to proc and executes it + sets choice name and value + doesn't paginate short selections + changes selected item color & marker + sets choices and single choice through DSL changes help text - reads multiple lines with empty lines - sets quiet mode + verifies default index format + raises when default choice doesn't match any choices + selects default choice by name + raises when default choice matches disabled choice + verifies default index range + changes help text through DSL + sets choice name through DSL + sets choice name & value through DSL + allows navigation using events without errors + selects by default first option + with :cycle option + cycles around when configured to do so + doesn't cycle by default + cycles pages left/right with disabled items + cycles around disabled items + cycles choices using left/right arrows + cycles filtered choices left and right + with :disabled choice + omits disabled choice when number key is pressed + sets active to be first non-disabled choice + doesn't show disabled choice when filtering choices + prevents setting default to disabled choice + omits disabled choice when navigating menu + when paginated + navigates left and right + paginates long selections through DSL + paginates long selections + paginates choices as hash object + navigates unevenly paged output with right arrow until the end of selection + combines up/down navigation with left/right + navigates evenly paged output with right arrow until end of selection + navigates pages up/down with disabled items + navigates pages left/right with disabled items + with filter + doesn't exit when there are no matching entries + filters based on alphanumeric and punctuation characters + cancels a selection + doesn't allow mixing enumeration and filter + filters and chooses a uniquely matching entry, ignoring case + navigates left and right with filtered items + filters and chooses the first of multiple matching entries -Top 2 slowest examples (0.06196 seconds, 8.4% of total time): - TTY::Prompt::Timer times out loop execution - 0.03162 seconds ./spec/unit/timer_spec.rb:4 +Top 2 slowest examples (0.06194 seconds, 11.0% of total time): TTY::Prompt::Timer registers a tick event - 0.03034 seconds ./spec/unit/timer_spec.rb:15 + 0.03106 seconds ./spec/unit/timer_spec.rb:15 + TTY::Prompt::Timer times out loop execution + 0.03087 seconds ./spec/unit/timer_spec.rb:4 Top 2 slowest example groups: TTY::Prompt::Timer - 0.03134 seconds average (0.06268 seconds / 2 examples) ./spec/unit/timer_spec.rb:3 - TTY::Prompt#collect - 0.01221 seconds average (0.06107 seconds / 5 examples) ./spec/unit/collect_spec.rb:3 + 0.03125 seconds average (0.06249 seconds / 2 examples) ./spec/unit/timer_spec.rb:3 + TTY::Prompt#subscribe + 0.00597 seconds average (0.00597 seconds / 1 example) ./spec/unit/subscribe_spec.rb:3 -Finished in 0.73967 seconds (files took 0.47634 seconds to load) +Finished in 0.56314 seconds (files took 0.30618 seconds to load) 494 examples, 0 failures -Randomized with seed 17554 +Randomized with seed 17915 ┌──────────────────────────────────────────────────────────────────────────────┐ @@ -2453,12 +2489,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: including full source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/65259/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/65259/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/16311 and its subdirectories -I: Current time: Mon Jan 27 21:43:59 -12 2025 -I: pbuilder-time-stamp: 1738057439 +I: removing directory /srv/workspace/pbuilder/65259 and its subdirectories +I: Current time: Tue Mar 3 06:07:39 +14 2026 +I: pbuilder-time-stamp: 1772467659