Diff of the two buildlogs: -- --- b1/build.log 2025-01-12 12:32:13.879070579 +0000 +++ b2/build.log 2025-01-12 12:34:05.061987696 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Sun Jan 12 00:27:28 -12 2025 -I: pbuilder-time-stamp: 1736684848 +I: Current time: Sun Feb 15 08:55:17 +14 2026 +I: pbuilder-time-stamp: 1771095317 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration @@ -30,52 +30,84 @@ dpkg-source: info: applying ignore-unicode-emoji-ambiguous-whitespaces-with-formatador-0.3+.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/1476247/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/3289516/tmp/hooks/D01_modify_environment starting +debug: Running on ionos5-amd64. +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 Feb 14 18:55 /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/3289516/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/3289516/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='amd64' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=20 ' - DISTRIBUTION='unstable' - HOME='/root' - HOST_ARCH='amd64' + 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]="x86_64-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=amd64 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=42 ' + DIRSTACK=() + DISTRIBUTION=unstable + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=x86_64 + HOST_ARCH=amd64 IFS=' ' - INVOCATION_ID='cd4a8d50d5ec48099e385744596c54df' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - 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='1476247' - PS1='# ' - PS2='> ' + INVOCATION_ID=41bee302da6647c6830c0be550519bc5 + LANG=C + LANGUAGE=et_EE:et + LC_ALL=C + MACHTYPE=x86_64-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=3289516 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.rVVuSRGJ/pbuilderrc_VXJG --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.rVVuSRGJ/b1 --logfile b1/build.log ruby-guard_2.18.1-3.dsc' - SUDO_GID='110' - SUDO_UID='105' - 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.rVVuSRGJ/pbuilderrc_fQTt --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.rVVuSRGJ/b2 --logfile b2/build.log ruby-guard_2.18.1-3.dsc' + SUDO_GID=110 + SUDO_UID=105 + 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 ionos1-amd64 6.1.0-29-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 (2025-01-02) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.11.10+bpo-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.11.10-1~bpo12+1 (2024-12-19) 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/1476247/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Nov 22 2024 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/3289516/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -286,7 +318,7 @@ Get: 149 http://deb.debian.org/debian unstable/main amd64 ruby-rspec-mocks all 3.13.0c0e0m0s1-2 [81.3 kB] Get: 150 http://deb.debian.org/debian unstable/main amd64 ruby-rspec all 3.13.0c0e0m0s1-2 [5184 B] Get: 151 http://deb.debian.org/debian unstable/main amd64 ruby-thor all 1.3.1-1 [49.2 kB] -Fetched 56.1 MB in 7s (7537 kB/s) +Fetched 56.1 MB in 1s (108 MB/s) Preconfiguring packages ... Selecting previously unselected package libpython3.13-minimal:amd64. (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 ... 19849 files and directories currently installed.) @@ -784,8 +816,8 @@ Setting up tzdata (2024b-5) ... Current default time zone: 'Etc/UTC' -Local time is now: Sun Jan 12 12:30:07 UTC 2025. -Universal Time is now: Sun Jan 12 12:30:07 UTC 2025. +Local time is now: Sat Feb 14 18:56:14 UTC 2026. +Universal Time is now: Sat Feb 14 18:56:14 UTC 2026. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up ruby-method-source (1.0.0-3) ... @@ -925,7 +957,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/ruby-guard-2.18.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-guard_2.18.1-3_source.changes +I: user script /srv/workspace/pbuilder/3289516/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for unstable +I: user script /srv/workspace/pbuilder/3289516/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/ruby-guard-2.18.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-guard_2.18.1-3_source.changes dpkg-buildpackage: info: source package ruby-guard dpkg-buildpackage: info: source version 2.18.1-3 dpkg-buildpackage: info: source distribution unstable @@ -1053,84 +1089,510 @@ All examples were filtered out; ignoring {:focus=>true} -Randomized with seed 42571 +Randomized with seed 24695 -Guard::Plugin - .notify - sends :call to the given Guard class's start_begin callback - sends :call to the given Guard class's start_begin callback - runs callbacks only for the guard given - runs only the given callbacks - .add_callback - can add multiple callbacks - can add a run_on_modifications callback - with a plugin instance - #title - outputs the plugin title - #to_s - output the short plugin name - .non_namespaced_classname - remove the Guard:: namespace - #name - outputs the short plugin name - .template - reads the default template - .non_namespaced_name - remove the Guard:: namespace and downcase - #initialize - assigns the defined options - assigns the defined watchers - without a group in the options - assigns a default group - with a callback - adds the callback - with a group in the options - assigns the given group - #hook - passes the hooks name - accepts extra arguments - notifies the hooks - -Guard::UI::Logger::Config - #level= - with a valid value - stores the level - defaults - flushes device by default +Guard::Watcher::Pattern::PathnamePath + #match result + when constructed with an unclean Pathname + when matched file is a string + when filename matches + is expected to eq [#] + when filename does not match + is expected to be nil + when matched file is an unclean Pathname + when filename does not match + is expected to be nil + when filename matches + is expected to eq [#] Guard::Watcher::Pattern .create - when a regexp is given - is expected to be a kind of Guard::Watcher::Pattern::Matcher - when an regexp string is given - shows a warning - is expected to be a kind of Guard::Watcher::Pattern::Matcher when a string is given is expected to be a kind of Guard::Watcher::Pattern::SimplePath when a custom matcher is expected to be a kind of Guard::Watcher::Pattern::Matcher when a Pathname is given is expected to be a kind of Guard::Watcher::Pattern::PathnamePath + when an regexp string is given + is expected to be a kind of Guard::Watcher::Pattern::Matcher + shows a warning + when a regexp is given + is expected to be a kind of Guard::Watcher::Pattern::Matcher + +Guard::Watcher::Pattern::Matcher + #match + when constructed with valid matcher object + when matched against a String + returns the match result + passes a Pathname to the matcher + when matched against a Pathname + returns the match result + passes the Pathname to the matcher + #== + returns false for unequal matchers + returns true for equal matchers + integration + #match result + when constructed with valid regexp + when matched file is an unclean Pathname + when filename matches + is expected to eq ["foo.rb"] + when filename does not match + is expected to be nil + when matched file is a string + when filename matches + is expected to eq ["foo.rb"] + when filename does not match + is expected to be nil + when matched file contains a $ + is expected to eq ["foo.rb"] + +Guard::CLI + #version + shows the current version + #notifiers + calls the evaluation + outputs the notifiers list + #list + calls the evaluation + outputs the Guard plugins list + #init + passes options + delegates to Guard::Environment.start + exits with given exit code + passes plugin names + #start + exits with given exit code + delegates to Guard::Environment.start + passes options + #show + calls the evaluation + outputs the Guard::DslDescriber.list result + +Guard::Options + .initialize + has indifferent access + merges the sensible defaults to the given options + can be passed defaults + handles nil options + +Guard::Commands::Scope + with a valid Guard group scope + sets up the scope with the given scope + with an invalid scope + does not change the scope and shows unknown scopes + with a valid Guard plugin scope + runs the :scope= action with the given scope + without scope + does not call :scope= and shows usage + +Guard::Watcher + #match + with a valid pattern + with a valid file name to match + when matching is not successful + returns nil + when matching is successful + returns the match result + #initialize + with no arguments + raises an error + with a pattern parameter + creates a matcher + integration + #match + with a named regexp pattern + with a watcher that matches a file + provides the match by name + is expected to eq "bar" + #== + returns false for unequal watchers + returns true for equal watchers + #action + sets the action to nothing by default + sets the action to the supplied block + .match_files + with an exception that is raised + displays the error and backtrace + with a watcher action that takes a parameter + for a watcher that matches file strings + returns nothing if the action response is empty + returns a substituted single file specified within the action + combines results of different actions + returns nothing if the action returns nothing + returns nothing if action returns non-string or non-string array + returns multiple files specified within the action + for a watcher that matches information objects + returns the evaluated addition argument + the path + returns a hash specified within the action + returns nothing if the action returns is IO::NULL + combinines results of different actions + returns nothing if the action response is empty string + returns a substituted single file specified within the action + without a watcher action + with a string pattern + returns the path that matches the string + with a regex pattern + returns the paths that matches the regex + for ambiguous watchers + when the :first_match option is turned on + returns only the files from the first watcher + when the :first_match option is turned off + returns multiple files by combining the results of the watchers + with a watcher action without parameter + for a watcher that matches information objects + returns the evaluated addition argument in an array + combines the results of different actions + returns nothing if the action response is empty string + returns a single file specified within the action + returns nothing if the action returns empty string + returns multiple files specified within the action + for a watcher that matches file strings + returns nothing if the action response is empty + returns nothing if the action returns nothing + combines files from results of different actions + returns a single file specified within the action + returns multiple files specified within the action + when action returns non-string or array of non-strings + returns nothing + +Guard::Interactor + when enabled + #background + hides Pry + #foreground + starts Pry + #handle_interrupt + interrupts Pry + .enabled & .enabled= + returns true by default + interactor not enabled + returns false + .options & .options= + returns {} by default + options set to { foo: :bar } + returns { foo: :bar } + when disabled + #handle_interrupt + interrupts sleep + #foreground + sleeps + #background + wakes up from sleep + job selection + when enabled from the DSL + when disabled from the commandline + is expected to be enabled + uses only sleeper + when enabled from the commandline + is expected to be enabled + uses only pry + when disabled from the DSL + when disabled from the commandline + is expected not to be enabled + uses only sleeper + when enabled from the commandline + is expected not to be enabled + uses only sleeper + +Guard::DslReader + #initialize signature + matches base signature + notification + handles arguments without errors + guard + when it is a String + works without errors + reports the name as a String + when it is a Symbol + reports the name as a String + works without errors + #notification signature + matches base signature + plugin_names + returns encountered names + #ignore! signature + matches base signature + #callback signature + matches base signature + #watch signature + matches base signature + #guard signature + matches base signature + #directories signature + matches base signature + #clearing signature + matches base signature + #ignore signature + matches base signature + #group signature + matches base signature + #logger signature + matches base signature + #scope signature + matches base signature + #interactor signature + matches base signature + +Guard::Terminal + is expected to respond to #clear + .clear + when on Windows + clears the screen + when the clear command fails + fails + when on UNIX + when the clear command exists + clears the screen using 'clear' + when the clear command fails + fails + +Guard::Commands::Pause + tells Guard to pause + +Guard::Notifier + .notify + with no options + notifies + with multiple parameters + notifies + with a runtime error + shows an error + toggle_notification + with available notifiers + when currently on + suspends notifications + when currently off + resumes notifications + +Guard::Deprecated::Evaluator + #reevaluate_guardfile + displays a deprecation warning to the user + #evaluate_guardfile + calls the recommended method + displays a deprecation warning to the user + +Guard::Deprecated::Guardfile + .create_guardfile + delegates to Guard::Guardfile::Generator + displays a deprecation warning to the user + .initialize_all_templates + displays a deprecation warning to the user + delegates to Guard::Guardfile::Generator + .initialize_template + delegates to Guard::Guardfile::Generator + displays a deprecation warning to the user + +Guard::Watcher::Pattern::SimplePath + #match result + when constructed with filename string + when matched file is a string + when filename matches + is expected to eq ["foo.rb"] + when filename does not match + is expected to be nil + when matched file is an unclean Pathname + when filename does not match + is expected to be nil + when filename matches + is expected to eq ["foo.rb"] + +Guard::Deprecated::Dsl + .evaluate_guardfile + displays a deprecation warning to the user + delegates to Guard::Guardfile::Generator + +Guard::Runner + #_supervise + executes the task on the passed guard + with a task that succeeds + without any arguments + calls :begin and :end hooks + passes the result of the supervised method to the :end hook + returns the result of the task + does not remove the Guard + with arguments + does not remove the Guard + returns the result of the task + with a task that throws :task_has_failed + in a group + with halt_on_fail: false + catches :task_has_failed + with halt_on_fail: true + throws :task_has_failed + with a task that raises an exception + removes the Guard + calls the default begin hook but not the default end hook + display an error to the user + returns the exception + #run_on_changes + always calls UI.clearable + with modified paths + executes the :run_first_task_found task + with modified files but modified paths is empty + does not call run anything + with non-matching removed paths + does not call tasks + when clearable + clear UI + with added files but added paths is empty + does not call run anything + with no changes + does not run any task + with matching removed paths + executes the :run_on_removals task + with added paths + executes the :run_on_additions task + .stopping_symbol_for + for a group without :halt_on_fail + returns :task_has_failed + for a group with :halt_on_fail + returns :no_catch + #run + executes supervised task on all registered plugins implementing it + marks an action as unit of work + with a scope + executes the supervised task on the specified plugin only + with no scope + executes the supervised task using current scope + with interrupted task + catches the thrown symbol + +Guard::Commands::Show + tells Guard to output DSL description + +Guard::Commands::Notification + toggles the Guard notifier + +Guard::Commander + .pause + when unpaused + with :unpaused + does nothing + with :paused + pauses + shows a message + with invalid parameter + raises an ArgumentError + with :toggle + shows a message + pauses + with nil + shows a message + pauses + when already paused + with :paused + does nothing + with invalid parameter + raises an ArgumentError + with nil + unpauses + shows a message + with :unpaused + unpauses + shows a message + with :toggle + shows a message + unpauses + .reload + clears the screen + reloads Guard + .start + tell the runner to run the :start task + displays an info message + calls Guard setup + start the listener + when listener.start raises an error + calls Commander#stop + when finished + stops everything + when setup raises an error + calls Commander#stop + .run_all + with an empty scope + runs all + with a given scope + runs all with the scope + .stop + turns off the interactor + tell the runner to run the :stop task + turns the notifier off + stops the listener + .show + shows list of plugins + +Guard::Internals::Traps + .handle + with an unsupported signal name + does not set a handler + with a supported signal name + sets up a handler + +Guard::Jobs::PryWrapper + #_prompt(ending_char) + Guard is using Pry < 0.13 + displays 'guard' + does not call Pry::Prompt.new + Guard is using Pry >= 0.13 + calls Pry::Prompt.new + Guard is paused + displays 'pause' + with a plugins scope + displays the group scope title in the prompt + with a groups scope + displays the group scope title in the prompt + Guard is not paused + displays 'guard' + #background +  kills the Pry thread + #foreground +  prevents the Pry thread from being killed too quickly +  return :stopped when brought into background +  waits for Pry thread to finish + #_setup + Guard is using Pry >= 0.13 + calls Pry.config.history_file= + Guard is using Pry < 0.13 + calls Pry.config.history.file= Guard::UI - .info + .level= + when logger is not set up yet + does not autocreate the logger + sets the logger's config level + when logger is set up + sets the logger's config level + sets the logger's level + .debug behaves like a logger method - logs the message with the given severity resets the line with the :reset option + logs the message with the given severity with the :only option allows logging matching messages prevents logging other messages with the :except option - allows logging other messages prevents logging matching messages + allows logging other messages + .action_with_scopes + with a groups scope + shows the group scoped action + with a plugins scope + shows the plugin scoped action + without a scope + with a global group scope + shows the global group scoped action + with a global plugin scope + shows the global plugin scoped action + .options= + sets the logger options .logger with no logger set yet sets the logger device returns the logger instance - .warning + .info behaves like a logger method - logs the message with the given severity resets the line with the :reset option + logs the message with the given severity with the :except option prevents logging matching messages allows logging other messages @@ -1138,217 +1600,247 @@ allows logging matching messages prevents logging other messages .deprecation - with GUARD_GEM_SILENCE_DEPRECATIONS set to 1 - silences deprecations with GUARD_GEM_SILENCE_DEPRECATIONS unset behaves like a logger method - logs the message with the given severity resets the line with the :reset option - with the :except option - allows logging other messages - prevents logging matching messages + logs the message with the given severity with the :only option prevents logging other messages allows logging matching messages - .debug - behaves like a logger method - logs the message with the given severity - resets the line with the :reset option - with the :except option - allows logging other messages - prevents logging matching messages - with the :only option - prevents logging other messages - allows logging matching messages - .level= - when logger is set up - sets the logger's level - sets the logger's config level - when logger is not set up yet - does not autocreate the logger - sets the logger's config level + with the :except option + prevents logging matching messages + allows logging other messages + with GUARD_GEM_SILENCE_DEPRECATIONS set to 1 + silences deprecations .clear with UI set up and ready + when clear option is disabled + does not clear the output when clear option is enabled - when the screen has just been cleared - does not clear - when forced - clears the outputs if forced when the screen is marked as needing clearing clears the output only once clears the output when the command fails shows a warning - when clear option is disabled - does not clear the output - .error + when the screen has just been cleared + does not clear + when forced + clears the outputs if forced + .warning behaves like a logger method - logs the message with the given severity resets the line with the :reset option + logs the message with the given severity + with the :only option + prevents logging other messages + allows logging matching messages with the :except option prevents logging matching messages allows logging other messages + .error + behaves like a logger method + logs the message with the given severity + resets the line with the :reset option with the :only option prevents logging other messages allows logging matching messages - .action_with_scopes - with a plugins scope - shows the plugin scoped action - with a groups scope - shows the group scoped action - without a scope - with a global group scope - shows the global group scoped action - with a global plugin scope - shows the global plugin scoped action - .options= - sets the logger options + with the :except option + allows logging other messages + prevents logging matching messages -Guard::Internals::Scope - #to_hash - :plugin - when not set in interactor - when not set in commandline - when set in Guardfile - uses guardfile scope - when set in commandline - uses commandline scope - when set from interactor - uses interactor scope - :group - when not set in interactor - when not set in commandline - when set in Guardfile - uses guardfile scope - when set in commandline - uses commandline scope - when set from interactor - uses interactor scope - #titles - example at ./spec/lib/guard/internals/scope_spec.rb:93 (PENDING: Not yet implemented) +Guard::Watcher::Pattern::MatchResult + #[] + with a valid match + when asked for the first item + returns the full original value + when asked for the non-first item + returns the value at given index + when asked for a name match via a symbol + returns the value by name + #initialize + with valid arguments + does not fail -Guard::Deprecated::Guardfile - .initialize_template +Guard::Internals::Tracing + Module method tracing + when tracing + with no command arguments + when backticks + outputs command + is expected to eq "" + when #system + is expected to eq true + outputs command + with command arguments + when #system + is expected to eq true + outputs command arguments + when not tracing + with command arguments + when #system + does not output anything + is expected to eq true + with no command arguments + when backticks + is expected to eq "" + does not output anything + when #system + is expected to eq true + does not output anything + +Guard::Jobs::Sleep + #background + wakes up main thread + #foreground + returns :stopped when put to background + sleeps + +Guard::Deprecated::Guard + .running + show deprecation warning + .get_guard_class displays a deprecation warning to the user - delegates to Guard::Guardfile::Generator - .create_guardfile - delegates to Guard::Guardfile::Generator + delegates to Guard::PluginUtil + :fail_gracefully + pass it to get_guard_class + options + show deprecation warning + :clear + when being read + when set + provides an alternative implementation + when not set + provides an alternative implementation + when being set to false + sets the clearing option accordingly + when being set to true + sets the clearing option accordingly + .group + show deprecation warning + provides a similar implementation + .add_guard displays a deprecation warning to the user - .initialize_all_templates + delegates to Guard.plugins + reset_evaluator + show deprecation warning + .guards displays a deprecation warning to the user - delegates to Guard::Guardfile::Generator - -Guard::CLI - #init - passes options - exits with given exit code - passes plugin names - delegates to Guard::Environment.start - #start - passes options - exits with given exit code - delegates to Guard::Environment.start - #show - calls the evaluation - outputs the Guard::DslDescriber.list result - #list - calls the evaluation - outputs the Guard plugins list - #notifiers - outputs the notifiers list - calls the evaluation - #version - shows the current version - -Guard::Internals::State - #initialize - debugging - when debug is set to false - does not set up debugging - when debug is set to true - sets up debugging - -Guard::Notifier - .notify - with multiple parameters - notifies - with no options - notifies - with a runtime error - shows an error - toggle_notification - with available notifiers - when currently off - resumes notifications - when currently on - suspends notifications + delegates to Plugins + .plugins + show deprecation warning + provides a similar implementation + evaluate_guardfile + evaluates the guardfile + show deprecation warning + .add_group + adds a group + show deprecation warning + evaluator + show deprecation warning + .scope= + show deprecation warning + provides a similar implementation + .guard_gem_names + delegates to Guard::PluginUtil + displays a deprecation warning to the user + .listener= + show deprecation warning + provides and alternative implementation + .scope + provides a similar implementation + show deprecation warning + .plugin + provides a similar implementation + show deprecation warning + .lock + show deprecation warning + .add_plugin + adds a plugin + show deprecation warning + .groups + provides a similar implementation + show deprecation warning + .locate_guard + displays a deprecation warning to the user + delegates to Guard::PluginUtil Guard::Dsl - #scope - with any parameters - sets the guardfile's default scope - #logger - with invalid options - for the log level - shows a warning - does not set the invalid value - when having both the :only and :except options - removes the options - shows a warning - options - with logger except filter from array of symbols and string - is expected to have received options=({:except=>/rspec|cucumber|jasmine/i}) 1 time - with logger level 'error' - is expected to have received options=({:level=>:error}) 1 time - with a logger only filter from a symbol - is expected to have received options=({:only=>/cucumber/i}) 1 time - with logger level :error - is expected to have received options=({:level=>:error}) 1 time - with a logger time format - is expected to have received options=({:time_format=>"%Y"}) 1 time - with logger except filter from a symbol - is expected to have received options=({:except=>/jasmine/i}) 1 time - with logger template - is expected to have received options=({:template=>":message - :severity"}) 1 time - with logger only filter from a string - is expected to have received options=({:only=>/jasmine/i}) 1 time - with logger only filter from an array of symbols and string - is expected to have received options=({:only=>/rspec|cucumber/i}) 1 time - with logger except filter from a string - is expected to have received options=({:except=>/jasmine/i}) 1 time - #watch - with watch in main scope - should create an implicit no-op guard when outside a guard block - with watchers - should receive watchers when specified + #notification + when notification + adds a notification to the notifier + with multiple notifications + adds multiple notifiers #interactor - with interactor options - passes the options to the interactor with interactor :off disables the interactions with :off - #filter alias method - is expected to eq # + with interactor options + passes the options to the interactor #clear - with clear :off - disables clearing the screen after every task with clear :on enabled clearing the screen after every task + with clear :off + disables clearing the screen after every task + #filter! alias method + is expected to eq # + #watch + with watchers + should receive watchers when specified + with watch in main scope + should create an implicit no-op guard when outside a guard block #group - group named :all - raises an error - with a valid guardfile - evaluates all groups + with multiple names + adds all given groups no plugins in group displays an error + with a valid guardfile + evaluates all groups + group named :all + raises an error group named "all" raises an error - with multiple names - adds all given groups - #callback - with - creates callbacks for the guard - without a guard block - fails + #logger + options + with logger except filter from a string + is expected to have received options=({:except=>/jasmine/i}) 1 time + with logger except filter from a symbol + is expected to have received options=({:except=>/jasmine/i}) 1 time + with logger only filter from an array of symbols and string + is expected to have received options=({:only=>/rspec|cucumber/i}) 1 time + with a logger only filter from a symbol + is expected to have received options=({:only=>/cucumber/i}) 1 time + with a logger time format + is expected to have received options=({:time_format=>"%Y"}) 1 time + with logger template + is expected to have received options=({:template=>":message - :severity"}) 1 time + with logger level 'error' + is expected to have received options=({:level=>:error}) 1 time + with logger except filter from array of symbols and string + is expected to have received options=({:except=>/rspec|cucumber|jasmine/i}) 1 time + with logger level :error + is expected to have received options=({:level=>:error}) 1 time + with logger only filter from a string + is expected to have received options=({:only=>/jasmine/i}) 1 time + with invalid options + when having both the :only and :except options + removes the options + shows a warning + for the log level + does not set the invalid value + shows a warning + #guard + with double-quoted name + loads a guard specified as a double quoted string from the DSL + with single-quoted name + loads a guard specified as a quoted string from the DSL + with name as symbol in parens + adds the plugin + with groups + adds plugin with group info + with plugins in custom and default groups + assigns plugins to correct groups + with options + passes options to plugin + with symbol for name + loads a guard specified as a symbol from the DSL #ignore with ignore regexps adds ignored regexps to the listener @@ -1360,298 +1852,460 @@ when ignoring only foo* and *bar* replaces listener regexps #directories - with no parameters - sets the watchdirs to empty with valid directories sets the watchdirs to given values with non-existing directory fails with an error - #notification - with multiple notifications - adds multiple notifiers - when notification - adds a notification to the notifier - #guard - with symbol for name - loads a guard specified as a symbol from the DSL - with groups - adds plugin with group info - with double-quoted name - loads a guard specified as a double quoted string from the DSL - with single-quoted name - loads a guard specified as a quoted string from the DSL - with options - passes options to plugin - with name as symbol in parens - adds the plugin - with plugins in custom and default groups - assigns plugins to correct groups - #filter! alias method - is expected to eq # + with no parameters + sets the watchdirs to empty + #filter alias method + is expected to eq # + #scope + with any parameters + sets the guardfile's default scope + #callback + with + creates callbacks for the guard + without a guard block + fails -GuardReloader - when not running with bundler - when not running with rubygems_gemdeps - when not run as binstub - when no Gemfile exists - shows no warning - when Gemfile exists - shows a warning - when running as binstub - when the relative Gemfile exists - sets up bundler - sets the Gemfile - when the relative Gemfile does not exist - does not setup bundler - does not setup rubygems - shows no warning - when running with rubygems_gemdeps - sets up rubygems - when running with bundler - sets up bundler +Guard::Config + is expected to respond to #silence_deprecations? + is expected to respond to #strict? + .strict? + when GUARD_STRICT is set to a 'true' value + is expected to be strict + when GUARD_STRICT is set to a 'false' value + is expected not to be strict -Guard::Runner - .stopping_symbol_for - for a group with :halt_on_fail - returns :no_catch - for a group without :halt_on_fail - returns :task_has_failed - #run - marks an action as unit of work - executes supervised task on all registered plugins implementing it - with interrupted task - catches the thrown symbol - with no scope - executes the supervised task using current scope - with a scope - executes the supervised task on the specified plugin only - #run_on_changes - always calls UI.clearable - when clearable - clear UI - with modified paths - executes the :run_first_task_found task - with matching removed paths - executes the :run_on_removals task - with no changes - does not run any task - with added files but added paths is empty - does not call run anything - with non-matching removed paths - does not call tasks - with modified files but modified paths is empty - does not call run anything - with added paths - executes the :run_on_additions task - #_supervise - executes the task on the passed guard - with a task that throws :task_has_failed - in a group - with halt_on_fail: false - catches :task_has_failed - with halt_on_fail: true - throws :task_has_failed - with a task that succeeds - with arguments - does not remove the Guard - returns the result of the task - without any arguments - calls :begin and :end hooks - passes the result of the supervised method to the :end hook - returns the result of the task - does not remove the Guard - with a task that raises an exception - returns the exception - display an error to the user - calls the default begin hook but not the default end hook - removes the Guard +Guard::Internals::Scope + #to_hash + :plugin + when set from interactor + uses interactor scope + when not set in interactor + when set in commandline + uses commandline scope + when not set in commandline + when set in Guardfile + uses guardfile scope + :group + when set from interactor + uses interactor scope + when not set in interactor + when set in commandline + uses commandline scope + when not set in commandline + when set in Guardfile + uses guardfile scope + #titles + example at ./spec/lib/guard/internals/scope_spec.rb:93 (PENDING: Not yet implemented) -Guard::Jobs::PryWrapper - #_setup - Guard is using Pry < 0.13 - calls Pry.config.history.file= - Guard is using Pry >= 0.13 - calls Pry.config.history_file= - #_prompt(ending_char) - Guard is using Pry < 0.13 - displays 'guard' - does not call Pry::Prompt.new - Guard is using Pry >= 0.13 - calls Pry::Prompt.new - with a groups scope - displays the group scope title in the prompt - with a plugins scope - displays the group scope title in the prompt - Guard is paused - displays 'pause' - Guard is not paused - displays 'guard' - #foreground -  return :stopped when brought into background -  prevents the Pry thread from being killed too quickly -  waits for Pry thread to finish - #background -  kills the Pry thread +Guard::Group + #to_s + is expected to eq "#" + #title + is expected to eq "Foo" + #name + is expected to eq :foo + when initialized from a string + is expected to eq :foo + #options + when provided + is expected to eq {:halt_on_fail=>true} -Guard::Internals::Traps - .handle - with a supported signal name - sets up a handler - with an unsupported signal name - does not set a handler +Guard + #relevant_changes? + example at ./spec/lib/guard_spec.rb:247 (PENDING: Not yet implemented) + .setup + displays an error message when no guard are defined in Guardfile + initializes the listener + connects to the notifier + initializes the interactor + returns itself for chaining + evaluates the Guardfile + with the group option + passes options to session + with the plugin option + passes options to session + .interactor + with interactions enabled + is expected to have received new(false) 1 time + with interactions disabled + is expected to have received new(true) 1 time + trapping signals + sets up USR2 trap for unpausing + sets up USR1 trap for pausing + sets up INT trap for cancelling or quitting interactor + listener + with ignores 'ignore(/foo/)' and 'ignore!(/bar/)' + is expected to have received ignore!([/bar/]) 1 time + is expected to have received ignore([/foo/]) 1 time + without ignores + is expected not to have received ignore!(*(any args)) 0 times + is expected not to have received ignore(*(any args)) 0 times + UI + when clearing is configured + is expected to have received reset_and_clear(*(any args)) 1 time + ._relative_pathname + with file on another drive (e.g. Windows) + is expected to eq # + with file within project + is expected to eq # + with file in project directory + is expected to eq # + with file in parent directory + is expected to eq # + +Guard::Internals::Plugins + #all + find a plugin by as string + returns an array of plugins if plugins are found + find a plugin by as symbol + returns an array of plugins if plugins are found + returns an empty array when no plugin is found + find plugins matching a regexp + returns an empty array when no plugin is found + returns an array of plugins if plugins are found + find plugins by their group as a symbol + returns an array of plugins if plugins are found + returns an empty array when no plugin is found + find plugins by their group as a string + returns an array of plugins if plugins are found + find plugins by their group & name + returns an empty array when no plugin is found + returns an array of plugins if plugins are found + with no arguments + returns all plugins + #remove + removes given plugin + +Guard::Internals::Debugging + #stop + when already started + untraces Open3.popen3 + untraces Kernel.` + sets logger level to info + untraces Kernel.system + when not started + does not set logger level + #start + traces Kernel.spawn + traces Open3.popen3 + traces Kernel.` + traces Kernel.system + when not started + sets logger to debug + makes threads abort on exceptions + when already started + does not set log level Guard::Internals::Session - #guardfile_ignore_bang= + .convert_scope + returns the unkown scopes + returns multiple group scopes + returns a group scope + returns a plugin scope + returns a plugin and group scope + returns multiple plugin scopes + #guardfile_ignore= + when set multiple times from guardfile + is expected to eq [/foo/, /bar/] when unset is expected to eq [] when set from guardfile is expected to eq [/foo/] - #guardfile_notification= - when unset - is expected to eq {:notifiers=>{}, :notify=>true} - when set from guardfile - is expected to eq {:notifiers=>{:foo=>{:bar=>:baz}}, :notify=>true} - when set multiple times from guardfile - merges results #clearing when set from guardfile - when set to :on - is expected to be clearing when set to :off is expected not to be clearing + when set to :on + is expected to be clearing when not set when clearing is set from commandline is expected not to be clearing when clearing is not set from commandline is expected not to be clearing - #guardfile_ignore= + #initialize + with the group option + initializes the group scope + with the plugin option + initializes the plugin scope + #listener_args + with multiple watchdirs + is expected to eq [:to, "/usr", "/bin", {}] + with latency option + is expected to eq [:to, "/build/reproducible-path/ruby-guard-2.18.1", {:latency=>1.5}] + with force_polling option + is expected to eq [:to, "/build/reproducible-path/ruby-guard-2.18.1", {:force_polling=>true}] + with a single watchdir + is expected to eq [:to, "/usr", {}] + #guardfile_ignore_bang= when unset is expected to eq [] when set from guardfile is expected to eq [/foo/] + #guardfile_notification= when set multiple times from guardfile - is expected to eq [/foo/, /bar/] + merges results + when unset + is expected to eq {:notifiers=>{}, :notify=>true} + when set from guardfile + is expected to eq {:notifiers=>{:foo=>{:bar=>:baz}}, :notify=>true} #guardfile_scope - with a groups scope + with a group scope sets the groups with a plugin scope sets the plugins with a plugins scope sets the plugins - with a group scope + with a groups scope sets the groups - #initialize - with the group option - initializes the group scope - #listener_args - with force_polling option - is expected to eq [:to, "/build/reproducible-path/ruby-guard-2.18.1", {:force_polling=>true}] - with multiple watchdirs - is expected to eq [:to, "/usr", "/bin", {}] - with latency option - is expected to eq [:to, "/build/reproducible-path/ruby-guard-2.18.1", {:latency=>1.5}] - with a single watchdir - is expected to eq [:to, "/usr", {}] - with the plugin option - initializes the plugin scope - .convert_scope - returns a group scope - returns a plugin and group scope - returns multiple plugin scopes - returns multiple group scopes - returns a plugin scope - returns the unkown scopes -Guard::Terminal - is expected to respond to #clear - .clear - when on UNIX - when the clear command fails - fails - when the clear command exists - clears the screen using 'clear' - when on Windows - clears the screen - when the clear command fails - fails +Guard::Commands::Reload + without scope + triggers the :reload action + with a valid Guard plugin scope + triggers the :reload action with the given scope + with a valid Guard group scope + triggers the :reload action with the given scope + with an invalid scope + does not trigger the action -Guard::Deprecated::Dsl - .evaluate_guardfile +Guard::UI::Config + #logger_config + with deprecated options set + when set using a string + provides a logger config + passes deprecated options to logger + when set using a symbol + passes deprecated options to logger + provides a logger config + with defaults + provides a logger config + #device + when not set + when accessed as a string + returns $stderr + when accessed as a method + returns $stderr + when accessed as a symbol + returns $stderr + +Guard::Deprecated::Watcher + .match_guardfile? displays a deprecation warning to the user - delegates to Guard::Guardfile::Generator + matches against current guardfile -Guard::DslReader - plugin_names - returns encountered names - #watch signature - matches base signature - #clearing signature - matches base signature - guard - when it is a String - reports the name as a String - works without errors - when it is a Symbol - reports the name as a String - works without errors - #ignore! signature - matches base signature - #interactor signature - matches base signature - #initialize signature - matches base signature - #notification signature - matches base signature - #callback signature - matches base signature - #scope signature - matches base signature - #ignore signature - matches base signature - #logger signature - matches base signature - #guard signature - matches base signature - notification - handles arguments without errors - #directories signature - matches base signature - #group signature - matches base signature +Guard::Commands::All + with a valid Guard group scope + runs the :run_all action with the given scope + with a valid Guard plugin scope + runs the :run_all action with the given scope + without scope + runs the :run_all action + with an invalid scope + does not run the action -Guard::Watcher::Pattern::PathnamePath - #match result - when constructed with an unclean Pathname - when matched file is a string - when filename matches - is expected to eq [#] - when filename does not match - is expected to be nil - when matched file is an unclean Pathname - when filename does not match - is expected to be nil - when filename matches - is expected to eq [#] +Guard::Watcher::Pattern::DeprecatedRegexp + .deprecated? + is expected to be deprecated + is expected to be deprecated + Matcher returned by .convert + with .*rb + creates a Matcher with (?-mix:.*rb) + with foo\.rb + creates a Matcher with (?-mix:foo\.rb) + with ^foo.rb + creates a Matcher with (?-mix:^foo.rb) + with foo.rb$ + creates a Matcher with (?-mix:foo.rb$) -Guard::Group - #options - when provided - is expected to eq {:halt_on_fail=>true} - #title - is expected to eq "Foo" - #to_s - is expected to eq "#" - #name - is expected to eq :foo - when initialized from a string - is expected to eq :foo +Guard::Internals::State + #initialize + debugging + when debug is set to false + does not set up debugging + when debug is set to true + sets up debugging -Guard::Watcher +Guard::UI::Logger::Config + defaults + flushes device by default + #level= + with a valid value + stores the level + +Guard::Plugin #initialize - with a pattern parameter - creates a matcher - with no arguments - raises an error + assigns the defined options + assigns the defined watchers + without a group in the options + assigns a default group + with a group in the options + assigns the given group + with a callback + adds the callback + #hook + accepts extra arguments + notifies the hooks + passes the hooks name + .add_callback + can add a run_on_modifications callback + can add multiple callbacks + .notify + sends :call to the given Guard class's start_begin callback + runs callbacks only for the guard given + runs only the given callbacks + sends :call to the given Guard class's start_begin callback + with a plugin instance + .non_namespaced_name + remove the Guard:: namespace and downcase + #title + outputs the plugin title + .template + reads the default template + .non_namespaced_classname + remove the Guard:: namespace + #to_s + output the short plugin name + #name + outputs the short plugin name + +Guard::Internals::Groups + #all + with only default groups + initializes the groups + with existing groups + with no arguments + returns all groups + with a symbol argument not matching a group + returns an empty array when no group is found + with a regexp argument matching a group + returns an array of groups + with a symbol argument matching a group + returns an array of groups if plugins are found + with a string argument + returns an array of groups if plugins are found + with a regexp argument not matching a group + returns an empty array when no group is found + #add + with existing groups + add the given group + add the given group with options + with an existing group + does not add duplicate groups when name is a symbol + does not add duplicate groups when name is a string + +Guard::PluginUtil + #add_to_guardfile + when Guardfile is empty + appends the template to the Guardfile + when the Guard is not in the Guardfile + appends the template to the Guardfile + when the Guard is already in the Guardfile + shows an info message (PENDING: Temporarily skipped with xcontext) + #initialize_plugin + with a plugin inheriting from Guard::Plugin + instantiate the plugin using the new API + #plugin_location + returns the path of a Guard gem + .plugin_names + ignores guard-compat (PENDING: Temporarily skipped with xdescribe) + returns the list of embedded guard gems (PENDING: Temporarily skipped with xdescribe) + returns the list of guard gems (PENDING: Temporarily skipped with xdescribe) + #initialize + accepts a name with guard- + accepts a name without guard- + #plugin_class + reports an error if the class is not found + with a nested Guard class + resolves the Guard class from string + resolves the Guard class from symbol + with a name like VSpec + returns the Guard class + when set to fail gracefully + does not print error messages on fail + with a name with underscores + returns the Guard class + with a name with dashes + returns the Guard class + with an inline Guard class + returns the Guard class + +GuardReloader + when not running with bundler + when not running with rubygems_gemdeps + when not run as binstub + when Gemfile exists + shows a warning + when no Gemfile exists + shows no warning + when running as binstub + when the relative Gemfile does not exist + does not setup bundler + shows no warning + does not setup rubygems + when the relative Gemfile exists + sets the Gemfile + sets up bundler + when running with rubygems_gemdeps + sets up rubygems + when running with bundler + sets up bundler + +Pending: (Failures listed here are expected and do not affect your suite's status) + + 1) Guard::Internals::Scope#titles + # Not yet implemented + # ./spec/lib/guard/internals/scope_spec.rb:93 + + 2) Guard#relevant_changes? + # Not yet implemented + # ./spec/lib/guard_spec.rb:247 + + 3) Guard::PluginUtil#add_to_guardfile when the Guard is already in the Guardfile shows an info message + # Temporarily skipped with xcontext + # ./spec/lib/guard/plugin_util_spec.rb:235 + + 4) Guard::PluginUtil.plugin_names ignores guard-compat + # Temporarily skipped with xdescribe + # ./spec/lib/guard/plugin_util_spec.rb:50 + + 5) Guard::PluginUtil.plugin_names returns the list of embedded guard gems + # Temporarily skipped with xdescribe + # ./spec/lib/guard/plugin_util_spec.rb:46 + + 6) Guard::PluginUtil.plugin_names returns the list of guard gems + # Temporarily skipped with xdescribe + # ./spec/lib/guard/plugin_util_spec.rb:42 + +Finished in 16.62 seconds (files took 0.58819 seconds to load) +553 examples, 0 failures, 6 pending + +Randomized with seed 24695 + +/usr/bin/ruby3.3 /usr/bin/gem2deb-test-runner + +┌──────────────────────────────────────────────────────────────────────────────┐ +│ Checking Rubygems dependency resolution on ruby3.3 │ +└──────────────────────────────────────────────────────────────────────────────┘ + +RUBYLIB=/build/reproducible-path/ruby-guard-2.18.1/debian/ruby-guard/usr/lib/ruby/vendor_ruby:. GEM_PATH=/build/reproducible-path/ruby-guard-2.18.1/debian/ruby-guard/usr/share/rubygems-integration/all:/build/reproducible-path/ruby-guard-2.18.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/x86_64-linux-gnu/ruby/gems/3.3.0:/usr/share/rubygems-integration/3.3.0:/usr/share/rubygems-integration/all:/usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0 ruby3.3 -e gem\ \"guard\" + +┌──────────────────────────────────────────────────────────────────────────────┐ +│ Run tests for ruby3.3 from debian/ruby-tests.rake │ +└──────────────────────────────────────────────────────────────────────────────┘ + +RUBYLIB=/build/reproducible-path/ruby-guard-2.18.1/debian/ruby-guard/usr/lib/ruby/vendor_ruby:. GEM_PATH=/build/reproducible-path/ruby-guard-2.18.1/debian/ruby-guard/usr/share/rubygems-integration/all:/build/reproducible-path/ruby-guard-2.18.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/x86_64-linux-gnu/ruby/gems/3.3.0:/usr/share/rubygems-integration/3.3.0:/usr/share/rubygems-integration/all:/usr/lib/x86_64-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 --exclude-pattern ./spec/lib/guard/cli/environments/\*_spec.rb,./spec/lib/guard/guardfile/\*_spec.rb,./spec/lib/guard/commands/change_spec.rb,./spec/lib/guard/dsl_describer_spec.rb --format documentation +Run options: include {:focus=>true} + +All examples were filtered out; ignoring {:focus=>true} + +Randomized with seed 13180 + +Guard::Watcher #match with a valid pattern with a valid file name to match @@ -1663,48 +2317,35 @@ #match with a named regexp pattern with a watcher that matches a file - is expected to eq "bar" provides the match by name - #action - sets the action to the supplied block - sets the action to nothing by default + is expected to eq "bar" + #initialize + with no arguments + raises an error + with a pattern parameter + creates a matcher .match_files for ambiguous watchers when the :first_match option is turned on returns only the files from the first watcher when the :first_match option is turned off returns multiple files by combining the results of the watchers - with a watcher action that takes a parameter - for a watcher that matches information objects - returns nothing if the action returns is IO::NULL - returns the evaluated addition argument + the path - combinines results of different actions - returns nothing if the action response is empty string - returns a substituted single file specified within the action - returns a hash specified within the action - for a watcher that matches file strings - returns nothing if the action returns nothing - returns a substituted single file specified within the action - returns nothing if action returns non-string or non-string array - returns multiple files specified within the action - combines results of different actions - returns nothing if the action response is empty with a watcher action without parameter - for a watcher that matches information objects - returns the evaluated addition argument in an array - returns multiple files specified within the action - combines the results of different actions - returns nothing if the action response is empty string - returns nothing if the action returns empty string - returns a single file specified within the action for a watcher that matches file strings - returns nothing if the action response is empty combines files from results of different actions + returns nothing if the action returns nothing + returns nothing if the action response is empty returns a single file specified within the action returns multiple files specified within the action - returns nothing if the action returns nothing when action returns non-string or array of non-strings returns nothing + for a watcher that matches information objects + returns multiple files specified within the action + returns nothing if the action response is empty string + returns the evaluated addition argument in an array + returns a single file specified within the action + returns nothing if the action returns empty string + combines the results of different actions with an exception that is raised displays the error and backtrace without a watcher action @@ -1712,153 +2353,304 @@ returns the path that matches the string with a regex pattern returns the paths that matches the regex + with a watcher action that takes a parameter + for a watcher that matches file strings + returns nothing if the action response is empty + returns a substituted single file specified within the action + returns nothing if the action returns nothing + combines results of different actions + returns multiple files specified within the action + returns nothing if action returns non-string or non-string array + for a watcher that matches information objects + returns nothing if the action response is empty string + returns nothing if the action returns is IO::NULL + returns the evaluated addition argument + the path + combinines results of different actions + returns a substituted single file specified within the action + returns a hash specified within the action + #action + sets the action to nothing by default + sets the action to the supplied block #== returns true for equal watchers returns false for unequal watchers -Guard::Commands::All - with an invalid scope - does not run the action - without scope - runs the :run_all action - with a valid Guard plugin scope - runs the :run_all action with the given scope - with a valid Guard group scope - runs the :run_all action with the given scope - -Guard::Commands::Pause - tells Guard to pause +Guard::Notifier + toggle_notification + with available notifiers + when currently off + resumes notifications + when currently on + suspends notifications + .notify + with no options + notifies + with multiple parameters + notifies + with a runtime error + shows an error -Guard::UI::Config - #device - when not set - when accessed as a symbol - returns $stderr - when accessed as a method - returns $stderr - when accessed as a string - returns $stderr - #logger_config - with defaults - provides a logger config - with deprecated options set - when set using a string - passes deprecated options to logger - provides a logger config - when set using a symbol - passes deprecated options to logger - provides a logger config +Guard::Deprecated::Evaluator + #evaluate_guardfile + calls the recommended method + displays a deprecation warning to the user + #reevaluate_guardfile + displays a deprecation warning to the user -Guard::Commands::Notification - toggles the Guard notifier +Guard::Commands::Show + tells Guard to output DSL description Guard::Watcher::Pattern::SimplePath #match result when constructed with filename string - when matched file is a string + when matched file is an unclean Pathname when filename matches is expected to eq ["foo.rb"] when filename does not match is expected to be nil - when matched file is an unclean Pathname - when filename matches - is expected to eq ["foo.rb"] + when matched file is a string when filename does not match is expected to be nil + when filename matches + is expected to eq ["foo.rb"] -Guard::Jobs::Sleep - #background - wakes up main thread - #foreground - returns :stopped when put to background - sleeps +Guard::Terminal + is expected to respond to #clear + .clear + when on Windows + clears the screen + when the clear command fails + fails + when on UNIX + when the clear command fails + fails + when the clear command exists + clears the screen using 'clear' + +Guard::Internals::State + #initialize + debugging + when debug is set to false + does not set up debugging + when debug is set to true + sets up debugging + +Guard::Commands::Notification + toggles the Guard notifier + +Guard::Internals::Plugins + #all + find plugins by their group & name + returns an array of plugins if plugins are found + returns an empty array when no plugin is found + find plugins by their group as a string + returns an array of plugins if plugins are found + with no arguments + returns all plugins + find a plugin by as symbol + returns an array of plugins if plugins are found + returns an empty array when no plugin is found + find plugins by their group as a symbol + returns an empty array when no plugin is found + returns an array of plugins if plugins are found + find a plugin by as string + returns an array of plugins if plugins are found + find plugins matching a regexp + returns an array of plugins if plugins are found + returns an empty array when no plugin is found + #remove + removes given plugin + +GuardReloader + when not running with bundler + when running with rubygems_gemdeps + sets up rubygems + when not running with rubygems_gemdeps + when not run as binstub + when no Gemfile exists + shows no warning + when Gemfile exists + shows a warning + when running as binstub + when the relative Gemfile does not exist + does not setup bundler + shows no warning + does not setup rubygems + when the relative Gemfile exists + sets up bundler + sets the Gemfile + when running with bundler + sets up bundler + +Guard::Deprecated::Watcher + .match_guardfile? + matches against current guardfile + displays a deprecation warning to the user Guard::Options .initialize + merges the sensible defaults to the given options can be passed defaults has indifferent access handles nil options - merges the sensible defaults to the given options + +Guard::Watcher::Pattern::PathnamePath + #match result + when constructed with an unclean Pathname + when matched file is an unclean Pathname + when filename matches + is expected to eq [#] + when filename does not match + is expected to be nil + when matched file is a string + when filename matches + is expected to eq [#] + when filename does not match + is expected to be nil + +Guard::DslReader + #ignore! signature + matches base signature + #callback signature + matches base signature + #clearing signature + matches base signature + guard + when it is a Symbol + works without errors + reports the name as a String + when it is a String + works without errors + reports the name as a String + #group signature + matches base signature + #watch signature + matches base signature + #interactor signature + matches base signature + notification + handles arguments without errors + #initialize signature + matches base signature + #logger signature + matches base signature + #directories signature + matches base signature + plugin_names + returns encountered names + #guard signature + matches base signature + #scope signature + matches base signature + #notification signature + matches base signature + #ignore signature + matches base signature + +Guard::Watcher::Pattern + .create + when a Pathname is given + is expected to be a kind of Guard::Watcher::Pattern::PathnamePath + when an regexp string is given + shows a warning + is expected to be a kind of Guard::Watcher::Pattern::Matcher + when a regexp is given + is expected to be a kind of Guard::Watcher::Pattern::Matcher + when a string is given + is expected to be a kind of Guard::Watcher::Pattern::SimplePath + when a custom matcher + is expected to be a kind of Guard::Watcher::Pattern::Matcher + +Guard::Watcher::Pattern::MatchResult + #[] + with a valid match + when asked for a name match via a symbol + returns the value by name + when asked for the non-first item + returns the value at given index + when asked for the first item + returns the full original value + #initialize + with valid arguments + does not fail Guard::Watcher::Pattern::DeprecatedRegexp + .deprecated? + is expected to be deprecated + is expected to be deprecated Matcher returned by .convert with .*rb creates a Matcher with (?-mix:.*rb) + with foo.rb$ + creates a Matcher with (?-mix:foo.rb$) with foo\.rb creates a Matcher with (?-mix:foo\.rb) with ^foo.rb creates a Matcher with (?-mix:^foo.rb) - with foo.rb$ - creates a Matcher with (?-mix:foo.rb$) - .deprecated? - is expected to be deprecated - is expected to be deprecated -Guard::Deprecated::Evaluator - #reevaluate_guardfile - displays a deprecation warning to the user - #evaluate_guardfile - displays a deprecation warning to the user - calls the recommended method +Guard::Internals::Groups + #add + with existing groups + add the given group with options + add the given group + with an existing group + does not add duplicate groups when name is a symbol + does not add duplicate groups when name is a string + #all + with existing groups + with a symbol argument not matching a group + returns an empty array when no group is found + with a regexp argument matching a group + returns an array of groups + with a symbol argument matching a group + returns an array of groups if plugins are found + with no arguments + returns all groups + with a regexp argument not matching a group + returns an empty array when no group is found + with a string argument + returns an array of groups if plugins are found + with only default groups + initializes the groups -Guard::Internals::Tracing - Module method tracing - when not tracing - with no command arguments - when backticks - does not output anything - is expected to eq "" - when #system - does not output anything - is expected to eq true - with command arguments - when #system - does not output anything - is expected to eq true - when tracing - with no command arguments - when #system - outputs command - is expected to eq true - when backticks - outputs command - is expected to eq "" - with command arguments - when #system - is expected to eq true - outputs command arguments +Guard::Deprecated::Dsl + .evaluate_guardfile + delegates to Guard::Guardfile::Generator + displays a deprecation warning to the user Guard + #relevant_changes? + example at ./spec/lib/guard_spec.rb:247 (PENDING: Not yet implemented) .setup initializes the listener - initializes the interactor + displays an error message when no guard are defined in Guardfile + evaluates the Guardfile returns itself for chaining connects to the notifier - evaluates the Guardfile - displays an error message when no guard are defined in Guardfile + initializes the interactor with the group option passes options to session - .interactor - with interactions disabled - is expected to have received new(true) 1 time - with interactions enabled - is expected to have received new(false) 1 time - UI - when clearing is configured - is expected to have received reset_and_clear(*(any args)) 1 time trapping signals - sets up USR1 trap for pausing sets up INT trap for cancelling or quitting interactor sets up USR2 trap for unpausing - with the plugin option - passes options to session + sets up USR1 trap for pausing + UI + when clearing is configured + is expected to have received reset_and_clear(*(any args)) 1 time listener + without ignores + is expected not to have received ignore(*(any args)) 0 times + is expected not to have received ignore!(*(any args)) 0 times with ignores 'ignore(/foo/)' and 'ignore!(/bar/)' is expected to have received ignore([/foo/]) 1 time is expected to have received ignore!([/bar/]) 1 time - without ignores - is expected not to have received ignore!(*(any args)) 0 times - is expected not to have received ignore(*(any args)) 0 times + with the plugin option + passes options to session + .interactor + with interactions enabled + is expected to have received new(false) 1 time + with interactions disabled + is expected to have received new(true) 1 time ._relative_pathname with file in parent directory is expected to eq # @@ -1868,595 +2660,583 @@ is expected to eq # with file on another drive (e.g. Windows) is expected to eq # - #relevant_changes? - example at ./spec/lib/guard_spec.rb:247 (PENDING: Not yet implemented) -Guard::Watcher::Pattern::MatchResult - #initialize - with valid arguments - does not fail - #[] - with a valid match - when asked for the non-first item - returns the value at given index - when asked for the first item - returns the full original value - when asked for a name match via a symbol - returns the value by name +Guard::Internals::Debugging + #stop + when already started + untraces Kernel.` + sets logger level to info + untraces Kernel.system + untraces Open3.popen3 + when not started + does not set logger level + #start + traces Kernel.spawn + traces Open3.popen3 + traces Kernel.system + traces Kernel.` + when not started + makes threads abort on exceptions + sets logger to debug + when already started + does not set log level -Guard::Config - is expected to respond to #strict? - is expected to respond to #silence_deprecations? - .strict? - when GUARD_STRICT is set to a 'false' value - is expected not to be strict - when GUARD_STRICT is set to a 'true' value - is expected to be strict +Guard::UI::Logger::Config + defaults + flushes device by default + #level= + with a valid value + stores the level -Guard::Interactor - .enabled & .enabled= - returns true by default - interactor not enabled - returns false - when enabled - #background - hides Pry - #foreground - starts Pry - #handle_interrupt - interrupts Pry - job selection - when disabled from the DSL - when enabled from the commandline - uses only sleeper - is expected not to be enabled - when disabled from the commandline - is expected not to be enabled - uses only sleeper - when enabled from the DSL - when enabled from the commandline - uses only pry - is expected to be enabled - when disabled from the commandline - uses only sleeper - is expected to be enabled - when disabled - #handle_interrupt - interrupts sleep - #background - wakes up from sleep - #foreground - sleeps - .options & .options= - returns {} by default - options set to { foo: :bar } - returns { foo: :bar } +Guard::Jobs::Sleep + #background + wakes up main thread + #foreground + returns :stopped when put to background + sleeps + +Guard::Jobs::PryWrapper + #_prompt(ending_char) + Guard is using Pry < 0.13 + displays 'guard' + does not call Pry::Prompt.new + Guard is using Pry >= 0.13 + calls Pry::Prompt.new + with a groups scope + displays the group scope title in the prompt + Guard is not paused + displays 'guard' + with a plugins scope + displays the group scope title in the prompt + Guard is paused + displays 'pause' + #foreground +  prevents the Pry thread from being killed too quickly +  waits for Pry thread to finish +  return :stopped when brought into background + #_setup + Guard is using Pry >= 0.13 + calls Pry.config.history_file= + Guard is using Pry < 0.13 + calls Pry.config.history.file= + #background +  kills the Pry thread + +Guard::UI::Config + #device + when not set + when accessed as a symbol + returns $stderr + when accessed as a method + returns $stderr + when accessed as a string + returns $stderr + #logger_config + with deprecated options set + when set using a string + passes deprecated options to logger + provides a logger config + when set using a symbol + passes deprecated options to logger + provides a logger config + with defaults + provides a logger config + +Guard::Plugin + with a plugin instance + #title + outputs the plugin title + #name + outputs the short plugin name + .non_namespaced_classname + remove the Guard:: namespace + #to_s + output the short plugin name + .non_namespaced_name + remove the Guard:: namespace and downcase + .template + reads the default template + .notify + runs callbacks only for the guard given + runs only the given callbacks + sends :call to the given Guard class's start_begin callback + sends :call to the given Guard class's start_begin callback + .add_callback + can add multiple callbacks + can add a run_on_modifications callback + #hook + accepts extra arguments + passes the hooks name + notifies the hooks + #initialize + assigns the defined watchers + assigns the defined options + with a group in the options + assigns the given group + without a group in the options + assigns a default group + with a callback + adds the callback + +Guard::Internals::Session + #guardfile_ignore= + when set from guardfile + is expected to eq [/foo/] + when unset + is expected to eq [] + when set multiple times from guardfile + is expected to eq [/foo/, /bar/] + #clearing + when set from guardfile + when set to :on + is expected to be clearing + when set to :off + is expected not to be clearing + when not set + when clearing is not set from commandline + is expected not to be clearing + when clearing is set from commandline + is expected not to be clearing + #initialize + with the group option + initializes the group scope + with the plugin option + initializes the plugin scope + #listener_args + with force_polling option + is expected to eq [:to, "/build/reproducible-path/ruby-guard-2.18.1", {:force_polling=>true}] + with a single watchdir + is expected to eq [:to, "/usr", {}] + with multiple watchdirs + is expected to eq [:to, "/usr", "/bin", {}] + with latency option + is expected to eq [:to, "/build/reproducible-path/ruby-guard-2.18.1", {:latency=>1.5}] + #guardfile_scope + with a group scope + sets the groups + with a plugin scope + sets the plugins + with a groups scope + sets the groups + with a plugins scope + sets the plugins + .convert_scope + returns a plugin and group scope + returns a plugin scope + returns multiple group scopes + returns a group scope + returns the unkown scopes + returns multiple plugin scopes + #guardfile_ignore_bang= + when unset + is expected to eq [] + when set from guardfile + is expected to eq [/foo/] + #guardfile_notification= + when set multiple times from guardfile + merges results + when unset + is expected to eq {:notifiers=>{}, :notify=>true} + when set from guardfile + is expected to eq {:notifiers=>{:foo=>{:bar=>:baz}}, :notify=>true} Guard::PluginUtil #add_to_guardfile - when the Guard is not in the Guardfile - appends the template to the Guardfile when Guardfile is empty appends the template to the Guardfile when the Guard is already in the Guardfile shows an info message (PENDING: Temporarily skipped with xcontext) + when the Guard is not in the Guardfile + appends the template to the Guardfile #plugin_class reports an error if the class is not found - with a name like VSpec - returns the Guard class - with a name with underscores - returns the Guard class when set to fail gracefully does not print error messages on fail - with an inline Guard class - returns the Guard class with a name with dashes returns the Guard class with a nested Guard class - resolves the Guard class from string resolves the Guard class from symbol - #plugin_location - returns the path of a Guard gem + resolves the Guard class from string + with a name like VSpec + returns the Guard class + with a name with underscores + returns the Guard class + with an inline Guard class + returns the Guard class #initialize - accepts a name without guard- accepts a name with guard- - .plugin_names - ignores guard-compat (PENDING: Temporarily skipped with xdescribe) - returns the list of embedded guard gems (PENDING: Temporarily skipped with xdescribe) - returns the list of guard gems (PENDING: Temporarily skipped with xdescribe) + accepts a name without guard- + #plugin_location + returns the path of a Guard gem #initialize_plugin with a plugin inheriting from Guard::Plugin instantiate the plugin using the new API - -Guard::Internals::Debugging - #stop - when not started - does not set logger level - when already started - untraces Kernel.` - sets logger level to info - untraces Kernel.system - untraces Open3.popen3 - #start - traces Kernel.system - traces Kernel.` - traces Kernel.spawn - traces Open3.popen3 - when already started - does not set log level - when not started - sets logger to debug - makes threads abort on exceptions - -Guard::Commands::Show - tells Guard to output DSL description - -Guard::Deprecated::Guard - .group - show deprecation warning - provides a similar implementation - .get_guard_class - displays a deprecation warning to the user - delegates to Guard::PluginUtil - :fail_gracefully - pass it to get_guard_class - .plugins - provides a similar implementation - show deprecation warning - .guards - delegates to Plugins - displays a deprecation warning to the user - .add_guard - delegates to Guard.plugins - displays a deprecation warning to the user - .lock - show deprecation warning - .add_plugin - show deprecation warning - adds a plugin - .scope - provides a similar implementation - show deprecation warning - evaluate_guardfile - evaluates the guardfile - show deprecation warning - .listener= - provides and alternative implementation - show deprecation warning - .guard_gem_names - displays a deprecation warning to the user - delegates to Guard::PluginUtil - .scope= - provides a similar implementation - show deprecation warning - .plugin - show deprecation warning - provides a similar implementation - .add_group - show deprecation warning - adds a group - .running - show deprecation warning - options - show deprecation warning - :clear - when being read - when not set - provides an alternative implementation - when set - provides an alternative implementation - when being set to true - sets the clearing option accordingly - when being set to false - sets the clearing option accordingly - .groups - show deprecation warning - provides a similar implementation - evaluator - show deprecation warning - .locate_guard - displays a deprecation warning to the user - delegates to Guard::PluginUtil - reset_evaluator - show deprecation warning - -Guard::Watcher::Pattern::Matcher - integration - #match result - when constructed with valid regexp - when matched file is an unclean Pathname - when filename matches - is expected to eq ["foo.rb"] - when filename does not match - is expected to be nil - when matched file contains a $ - is expected to eq ["foo.rb"] - when matched file is a string - when filename does not match - is expected to be nil - when filename matches - is expected to eq ["foo.rb"] - #match - when constructed with valid matcher object - when matched against a Pathname - returns the match result - passes the Pathname to the matcher - when matched against a String - passes a Pathname to the matcher - returns the match result - #== - returns false for unequal matchers - returns true for equal matchers - -Guard::Internals::Plugins - #remove - removes given plugin - #all - find plugins by their group as a string - returns an array of plugins if plugins are found - find plugins by their group & name - returns an empty array when no plugin is found - returns an array of plugins if plugins are found - with no arguments - returns all plugins - find a plugin by as string - returns an array of plugins if plugins are found - find plugins matching a regexp - returns an array of plugins if plugins are found - returns an empty array when no plugin is found - find a plugin by as symbol - returns an array of plugins if plugins are found - returns an empty array when no plugin is found - find plugins by their group as a symbol - returns an array of plugins if plugins are found - returns an empty array when no plugin is found + .plugin_names + returns the list of embedded guard gems (PENDING: Temporarily skipped with xdescribe) + ignores guard-compat (PENDING: Temporarily skipped with xdescribe) + returns the list of guard gems (PENDING: Temporarily skipped with xdescribe) Guard::Commands::Reload - with an invalid scope - does not trigger the action - with a valid Guard plugin scope - triggers the :reload action with the given scope without scope triggers the :reload action with a valid Guard group scope triggers the :reload action with the given scope + with an invalid scope + does not trigger the action + with a valid Guard plugin scope + triggers the :reload action with the given scope -Guard::Internals::Groups - #all - with only default groups - initializes the groups - with existing groups - with a symbol argument matching a group - returns an array of groups if plugins are found - with a regexp argument not matching a group - returns an empty array when no group is found - with a string argument - returns an array of groups if plugins are found - with a regexp argument matching a group - returns an array of groups - with no arguments - returns all groups - with a symbol argument not matching a group - returns an empty array when no group is found - #add - with existing groups - add the given group with options - add the given group - with an existing group - does not add duplicate groups when name is a symbol - does not add duplicate groups when name is a string - -Guard::Deprecated::Watcher - .match_guardfile? - matches against current guardfile - displays a deprecation warning to the user +Guard::Internals::Traps + .handle + with a supported signal name + sets up a handler + with an unsupported signal name + does not set a handler Guard::Commander - .stop - stops the listener - tell the runner to run the :stop task - turns the notifier off - turns off the interactor - .run_all - with an empty scope - runs all - with a given scope - runs all with the scope .start + start the listener + calls Guard setup displays an info message tell the runner to run the :start task - calls Guard setup - start the listener - when setup raises an error - calls Commander#stop when finished stops everything + when setup raises an error + calls Commander#stop when listener.start raises an error calls Commander#stop + .show + shows list of plugins + .run_all + with an empty scope + runs all + with a given scope + runs all with the scope .pause - when already paused - with invalid parameter - raises an ArgumentError + when unpaused with :paused - does nothing + shows a message + pauses with :toggle - unpauses + pauses shows a message + with :unpaused + does nothing + with invalid parameter + raises an ArgumentError with nil shows a message - unpauses + pauses + when already paused with :unpaused shows a message unpauses - when unpaused - with :unpaused - does nothing with :paused - pauses - shows a message - with :toggle - pauses - shows a message + does nothing with nil + unpauses shows a message - pauses with invalid parameter raises an ArgumentError + with :toggle + shows a message + unpauses .reload reloads Guard clears the screen - .show - shows list of plugins - -Guard::Commands::Scope - with a valid Guard group scope - sets up the scope with the given scope - with a valid Guard plugin scope - runs the :scope= action with the given scope - with an invalid scope - does not change the scope and shows unknown scopes - without scope - does not call :scope= and shows usage - -Pending: (Failures listed here are expected and do not affect your suite's status) - - 1) Guard::Internals::Scope#titles - # Not yet implemented - # ./spec/lib/guard/internals/scope_spec.rb:93 - - 2) Guard#relevant_changes? - # Not yet implemented - # ./spec/lib/guard_spec.rb:247 - - 3) Guard::PluginUtil#add_to_guardfile when the Guard is already in the Guardfile shows an info message - # Temporarily skipped with xcontext - # ./spec/lib/guard/plugin_util_spec.rb:235 - - 4) Guard::PluginUtil.plugin_names ignores guard-compat - # Temporarily skipped with xdescribe - # ./spec/lib/guard/plugin_util_spec.rb:50 - - 5) Guard::PluginUtil.plugin_names returns the list of embedded guard gems - # Temporarily skipped with xdescribe - # ./spec/lib/guard/plugin_util_spec.rb:46 - - 6) Guard::PluginUtil.plugin_names returns the list of guard gems - # Temporarily skipped with xdescribe - # ./spec/lib/guard/plugin_util_spec.rb:42 - -Finished in 30.75 seconds (files took 1.24 seconds to load) -553 examples, 0 failures, 6 pending - -Randomized with seed 42571 - -/usr/bin/ruby3.3 /usr/bin/gem2deb-test-runner - -┌──────────────────────────────────────────────────────────────────────────────┐ -│ Checking Rubygems dependency resolution on ruby3.3 │ -└──────────────────────────────────────────────────────────────────────────────┘ - -RUBYLIB=/build/reproducible-path/ruby-guard-2.18.1/debian/ruby-guard/usr/lib/ruby/vendor_ruby:. GEM_PATH=/build/reproducible-path/ruby-guard-2.18.1/debian/ruby-guard/usr/share/rubygems-integration/all:/build/reproducible-path/ruby-guard-2.18.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/x86_64-linux-gnu/ruby/gems/3.3.0:/usr/share/rubygems-integration/3.3.0:/usr/share/rubygems-integration/all:/usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0 ruby3.3 -e gem\ \"guard\" - -┌──────────────────────────────────────────────────────────────────────────────┐ -│ Run tests for ruby3.3 from debian/ruby-tests.rake │ -└──────────────────────────────────────────────────────────────────────────────┘ + .stop + turns the notifier off + tell the runner to run the :stop task + turns off the interactor + stops the listener -RUBYLIB=/build/reproducible-path/ruby-guard-2.18.1/debian/ruby-guard/usr/lib/ruby/vendor_ruby:. GEM_PATH=/build/reproducible-path/ruby-guard-2.18.1/debian/ruby-guard/usr/share/rubygems-integration/all:/build/reproducible-path/ruby-guard-2.18.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/x86_64-linux-gnu/ruby/gems/3.3.0:/usr/share/rubygems-integration/3.3.0:/usr/share/rubygems-integration/all:/usr/lib/x86_64-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 --exclude-pattern ./spec/lib/guard/cli/environments/\*_spec.rb,./spec/lib/guard/guardfile/\*_spec.rb,./spec/lib/guard/commands/change_spec.rb,./spec/lib/guard/dsl_describer_spec.rb --format documentation -Run options: include {:focus=>true} +Guard::Config + is expected to respond to #strict? + is expected to respond to #silence_deprecations? + .strict? + when GUARD_STRICT is set to a 'false' value + is expected not to be strict + when GUARD_STRICT is set to a 'true' value + is expected to be strict -All examples were filtered out; ignoring {:focus=>true} +Guard::UI + .info + behaves like a logger method + logs the message with the given severity + resets the line with the :reset option + with the :except option + allows logging other messages + prevents logging matching messages + with the :only option + prevents logging other messages + allows logging matching messages + .logger + with no logger set yet + sets the logger device + returns the logger instance + .clear + with UI set up and ready + when clear option is disabled + does not clear the output + when clear option is enabled + when the screen is marked as needing clearing + clears the output + clears the output only once + when the command fails + shows a warning + when the screen has just been cleared + does not clear + when forced + clears the outputs if forced + .options= + sets the logger options + .warning + behaves like a logger method + logs the message with the given severity + resets the line with the :reset option + with the :only option + prevents logging other messages + allows logging matching messages + with the :except option + allows logging other messages + prevents logging matching messages + .action_with_scopes + with a groups scope + shows the group scoped action + with a plugins scope + shows the plugin scoped action + without a scope + with a global plugin scope + shows the global plugin scoped action + with a global group scope + shows the global group scoped action + .error + behaves like a logger method + logs the message with the given severity + resets the line with the :reset option + with the :except option + allows logging other messages + prevents logging matching messages + with the :only option + prevents logging other messages + allows logging matching messages + .deprecation + with GUARD_GEM_SILENCE_DEPRECATIONS set to 1 + silences deprecations + with GUARD_GEM_SILENCE_DEPRECATIONS unset + behaves like a logger method + logs the message with the given severity + resets the line with the :reset option + with the :except option + prevents logging matching messages + allows logging other messages + with the :only option + prevents logging other messages + allows logging matching messages + .debug + behaves like a logger method + logs the message with the given severity + resets the line with the :reset option + with the :only option + prevents logging other messages + allows logging matching messages + with the :except option + allows logging other messages + prevents logging matching messages + .level= + when logger is not set up yet + sets the logger's config level + does not autocreate the logger + when logger is set up + sets the logger's config level + sets the logger's level -Randomized with seed 39534 +Guard::Interactor + when enabled + #background + hides Pry + #foreground + starts Pry + #handle_interrupt + interrupts Pry + .options & .options= + returns {} by default + options set to { foo: :bar } + returns { foo: :bar } + when disabled + #handle_interrupt + interrupts sleep + #foreground + sleeps + #background + wakes up from sleep + job selection + when disabled from the DSL + when enabled from the commandline + uses only sleeper + is expected not to be enabled + when disabled from the commandline + is expected not to be enabled + uses only sleeper + when enabled from the DSL + when disabled from the commandline + uses only sleeper + is expected to be enabled + when enabled from the commandline + is expected to be enabled + uses only pry + .enabled & .enabled= + returns true by default + interactor not enabled + returns false -Guard::PluginUtil - .plugin_names - returns the list of guard gems (PENDING: Temporarily skipped with xdescribe) - ignores guard-compat (PENDING: Temporarily skipped with xdescribe) - returns the list of embedded guard gems (PENDING: Temporarily skipped with xdescribe) - #add_to_guardfile - when the Guard is not in the Guardfile - appends the template to the Guardfile - when the Guard is already in the Guardfile - shows an info message (PENDING: Temporarily skipped with xcontext) - when Guardfile is empty - appends the template to the Guardfile - #plugin_class - reports an error if the class is not found - with an inline Guard class - returns the Guard class - with a nested Guard class - resolves the Guard class from string - resolves the Guard class from symbol - with a name like VSpec - returns the Guard class - with a name with underscores - returns the Guard class - when set to fail gracefully - does not print error messages on fail - with a name with dashes - returns the Guard class - #initialize_plugin - with a plugin inheriting from Guard::Plugin - instantiate the plugin using the new API - #plugin_location - returns the path of a Guard gem - #initialize - accepts a name with guard- - accepts a name without guard- +Guard::Deprecated::Guardfile + .create_guardfile + displays a deprecation warning to the user + delegates to Guard::Guardfile::Generator + .initialize_all_templates + displays a deprecation warning to the user + delegates to Guard::Guardfile::Generator + .initialize_template + delegates to Guard::Guardfile::Generator + displays a deprecation warning to the user -Guard::Jobs::PryWrapper - #background -  kills the Pry thread - #_prompt(ending_char) - Guard is using Pry >= 0.13 - calls Pry::Prompt.new - with a plugins scope - displays the group scope title in the prompt - Guard is paused - displays 'pause' - with a groups scope - displays the group scope title in the prompt - Guard is not paused - displays 'guard' - Guard is using Pry < 0.13 - does not call Pry::Prompt.new - displays 'guard' - #_setup - Guard is using Pry >= 0.13 - calls Pry.config.history_file= - Guard is using Pry < 0.13 - calls Pry.config.history.file= - #foreground -  return :stopped when brought into background -  prevents the Pry thread from being killed too quickly -  waits for Pry thread to finish +Guard::Watcher::Pattern::Matcher + #== + returns false for unequal matchers + returns true for equal matchers + integration + #match result + when constructed with valid regexp + when matched file is a string + when filename matches + is expected to eq ["foo.rb"] + when filename does not match + is expected to be nil + when matched file contains a $ + is expected to eq ["foo.rb"] + when matched file is an unclean Pathname + when filename matches + is expected to eq ["foo.rb"] + when filename does not match + is expected to be nil + #match + when constructed with valid matcher object + when matched against a Pathname + returns the match result + passes the Pathname to the matcher + when matched against a String + passes a Pathname to the matcher + returns the match result -Guard::Internals::Session - #guardfile_notification= - when set from guardfile - is expected to eq {:notifiers=>{:foo=>{:bar=>:baz}}, :notify=>true} - when set multiple times from guardfile - merges results - when unset - is expected to eq {:notifiers=>{}, :notify=>true} - #guardfile_scope - with a plugins scope - sets the plugins - with a plugin scope - sets the plugins - with a groups scope - sets the groups - with a group scope - sets the groups - #clearing - when set from guardfile - when set to :on - is expected to be clearing - when set to :off - is expected not to be clearing - when not set - when clearing is not set from commandline - is expected not to be clearing - when clearing is set from commandline - is expected not to be clearing - #guardfile_ignore_bang= - when unset - is expected to eq [] - when set from guardfile - is expected to eq [/foo/] - .convert_scope - returns a plugin scope - returns a plugin and group scope - returns a group scope - returns multiple plugin scopes - returns the unkown scopes - returns multiple group scopes - #initialize - #listener_args - with multiple watchdirs - is expected to eq [:to, "/usr", "/bin", {}] - with a single watchdir - is expected to eq [:to, "/usr", {}] - with force_polling option - is expected to eq [:to, "/build/reproducible-path/ruby-guard-2.18.1", {:force_polling=>true}] - with latency option - is expected to eq [:to, "/build/reproducible-path/ruby-guard-2.18.1", {:latency=>1.5}] - with the group option - initializes the group scope - with the plugin option - initializes the plugin scope - #guardfile_ignore= - when unset - is expected to eq [] - when set from guardfile - is expected to eq [/foo/] - when set multiple times from guardfile - is expected to eq [/foo/, /bar/] +Guard::Internals::Scope + #titles + example at ./spec/lib/guard/internals/scope_spec.rb:93 (PENDING: Not yet implemented) + #to_hash + :plugin + when not set in interactor + when not set in commandline + when set in Guardfile + uses guardfile scope + when set in commandline + uses commandline scope + when set from interactor + uses interactor scope + :group + when not set in interactor + when set in commandline + uses commandline scope + when not set in commandline + when set in Guardfile + uses guardfile scope + when set from interactor + uses interactor scope -Guard::Watcher::Pattern - .create - when a custom matcher - is expected to be a kind of Guard::Watcher::Pattern::Matcher - when a Pathname is given - is expected to be a kind of Guard::Watcher::Pattern::PathnamePath - when an regexp string is given - is expected to be a kind of Guard::Watcher::Pattern::Matcher - shows a warning - when a regexp is given - is expected to be a kind of Guard::Watcher::Pattern::Matcher - when a string is given - is expected to be a kind of Guard::Watcher::Pattern::SimplePath +Guard::Group + #to_s + is expected to eq "#" + #title + is expected to eq "Foo" + #options + when provided + is expected to eq {:halt_on_fail=>true} + #name + is expected to eq :foo + when initialized from a string + is expected to eq :foo -Guard::Internals::Debugging +Guard::CLI + #init + passes plugin names + passes options + exits with given exit code + delegates to Guard::Environment.start #start - traces Kernel.spawn - traces Open3.popen3 - traces Kernel.` - traces Kernel.system - when already started - does not set log level - when not started - makes threads abort on exceptions - sets logger to debug - #stop - when not started - does not set logger level - when already started - sets logger level to info - untraces Open3.popen3 - untraces Kernel.system - untraces Kernel.` + delegates to Guard::Environment.start + exits with given exit code + passes options + #notifiers + calls the evaluation + outputs the notifiers list + #list + outputs the Guard plugins list + calls the evaluation + #show + calls the evaluation + outputs the Guard::DslDescriber.list result + #version + shows the current version Guard::Dsl - #ignore - with multiple ignore calls - adds all ignored regexps to the listener - with ignore regexps - adds ignored regexps to the listener - #watch - with watch in main scope - should create an implicit no-op guard when outside a guard block - with watchers - should receive watchers when specified - #group - with multiple names - adds all given groups - no plugins in group - displays an error - group named "all" - raises an error - group named :all - raises an error - with a valid guardfile - evaluates all groups + #logger + with invalid options + for the log level + does not set the invalid value + shows a warning + when having both the :only and :except options + removes the options + shows a warning + options + with logger template + is expected to have received options=({:template=>":message - :severity"}) 1 time + with a logger only filter from a symbol + is expected to have received options=({:only=>/cucumber/i}) 1 time + with a logger time format + is expected to have received options=({:time_format=>"%Y"}) 1 time + with logger level 'error' + is expected to have received options=({:level=>:error}) 1 time + with logger level :error + is expected to have received options=({:level=>:error}) 1 time + with logger only filter from a string + is expected to have received options=({:only=>/jasmine/i}) 1 time + with logger except filter from a symbol + is expected to have received options=({:except=>/jasmine/i}) 1 time + with logger except filter from array of symbols and string + is expected to have received options=({:except=>/rspec|cucumber|jasmine/i}) 1 time + with logger except filter from a string + is expected to have received options=({:except=>/jasmine/i}) 1 time + with logger only filter from an array of symbols and string + is expected to have received options=({:only=>/rspec|cucumber/i}) 1 time #directories with non-existing directory fails with an error - with no parameters - sets the watchdirs to empty with valid directories sets the watchdirs to given values + with no parameters + sets the watchdirs to empty + #interactor + with interactor :off + disables the interactions with :off + with interactor options + passes the options to the interactor + #scope + with any parameters + sets the guardfile's default scope + #ignore + with multiple ignore calls + adds all ignored regexps to the listener + with ignore regexps + adds ignored regexps to the listener #notification when notification adds a notification to the notifier @@ -2464,133 +3244,79 @@ adds multiple notifiers #filter! alias method is expected to eq # + #ignore! + when ignoring only foo* and *bar* + replaces listener regexps + when ignoring *.txt and *.zip and ignoring! only foo* + replaces listener ignores, but keeps ignore! ignores #clear with clear :off disables clearing the screen after every task with clear :on enabled clearing the screen after every task - #interactor - with interactor options - passes the options to the interactor - with interactor :off - disables the interactions with :off - #filter alias method - is expected to eq # #guard + with single-quoted name + loads a guard specified as a quoted string from the DSL + with groups + adds plugin with group info with double-quoted name loads a guard specified as a double quoted string from the DSL with plugins in custom and default groups assigns plugins to correct groups - with name as symbol in parens - adds the plugin - with symbol for name - loads a guard specified as a symbol from the DSL with options passes options to plugin - with single-quoted name - loads a guard specified as a quoted string from the DSL - with groups - adds plugin with group info + with symbol for name + loads a guard specified as a symbol from the DSL + with name as symbol in parens + adds the plugin + #group + group named "all" + raises an error + with multiple names + adds all given groups + group named :all + raises an error + no plugins in group + displays an error + with a valid guardfile + evaluates all groups + #filter alias method + is expected to eq # #callback - without a guard block - fails with creates callbacks for the guard - #logger - with invalid options - when having both the :only and :except options - removes the options - shows a warning - for the log level - shows a warning - does not set the invalid value - options - with logger except filter from array of symbols and string - is expected to have received options=({:except=>/rspec|cucumber|jasmine/i}) 1 time - with logger only filter from an array of symbols and string - is expected to have received options=({:only=>/rspec|cucumber/i}) 1 time - with logger except filter from a symbol - is expected to have received options=({:except=>/jasmine/i}) 1 time - with logger only filter from a string - is expected to have received options=({:only=>/jasmine/i}) 1 time - with logger level 'error' - is expected to have received options=({:level=>:error}) 1 time - with a logger only filter from a symbol - is expected to have received options=({:only=>/cucumber/i}) 1 time - with a logger time format - is expected to have received options=({:time_format=>"%Y"}) 1 time - with logger except filter from a string - is expected to have received options=({:except=>/jasmine/i}) 1 time - with logger template - is expected to have received options=({:template=>":message - :severity"}) 1 time - with logger level :error - is expected to have received options=({:level=>:error}) 1 time - #ignore! - when ignoring *.txt and *.zip and ignoring! only foo* - replaces listener ignores, but keeps ignore! ignores - when ignoring only foo* and *bar* - replaces listener regexps - #scope - with any parameters - sets the guardfile's default scope - -Guard::Deprecated::Evaluator - #reevaluate_guardfile - displays a deprecation warning to the user - #evaluate_guardfile - displays a deprecation warning to the user - calls the recommended method - -Guard::UI::Logger::Config - #level= - with a valid value - stores the level - defaults - flushes device by default - -Guard::Notifier - toggle_notification - with available notifiers - when currently on - suspends notifications - when currently off - resumes notifications - .notify - with a runtime error - shows an error - with multiple parameters - notifies - with no options - notifies + without a guard block + fails + #watch + with watch in main scope + should create an implicit no-op guard when outside a guard block + with watchers + should receive watchers when specified -Guard::Watcher::Pattern::PathnamePath - #match result - when constructed with an unclean Pathname - when matched file is a string - when filename does not match - is expected to be nil - when filename matches - is expected to eq [#] - when matched file is an unclean Pathname - when filename matches - is expected to eq [#] - when filename does not match - is expected to be nil +Guard::Commands::All + with a valid Guard group scope + runs the :run_all action with the given scope + with a valid Guard plugin scope + runs the :run_all action with the given scope + without scope + runs the :run_all action + with an invalid scope + does not run the action Guard::Internals::Tracing Module method tracing when tracing - with command arguments - when #system - is expected to eq true - outputs command arguments with no command arguments when backticks - outputs command is expected to eq "" + outputs command when #system is expected to eq true outputs command + with command arguments + when #system + is expected to eq true + outputs command arguments when not tracing with command arguments when #system @@ -2604,864 +3330,174 @@ is expected to eq true does not output anything -Guard::Watcher::Pattern::DeprecatedRegexp - .deprecated? - is expected to be deprecated - is expected to be deprecated - Matcher returned by .convert - with foo\.rb - creates a Matcher with (?-mix:foo\.rb) - with foo.rb$ - creates a Matcher with (?-mix:foo.rb$) - with .*rb - creates a Matcher with (?-mix:.*rb) - with ^foo.rb - creates a Matcher with (?-mix:^foo.rb) - -Guard::UI::Config - #logger_config - with deprecated options set - when set using a symbol - provides a logger config - passes deprecated options to logger - when set using a string - provides a logger config - passes deprecated options to logger - with defaults - provides a logger config - #device - when not set - when accessed as a symbol - returns $stderr - when accessed as a method - returns $stderr - when accessed as a string - returns $stderr - -Guard::CLI - #list - outputs the Guard plugins list - calls the evaluation - #init - passes options - exits with given exit code - delegates to Guard::Environment.start - passes plugin names - #show - calls the evaluation - outputs the Guard::DslDescriber.list result - #version - shows the current version - #start - passes options - delegates to Guard::Environment.start - exits with given exit code - #notifiers - outputs the notifiers list - calls the evaluation - -Guard::Commands::Scope - with a valid Guard plugin scope - runs the :scope= action with the given scope - without scope - does not call :scope= and shows usage - with an invalid scope - does not change the scope and shows unknown scopes - with a valid Guard group scope - sets up the scope with the given scope +Guard::Commands::Pause + tells Guard to pause Guard::Runner - .stopping_symbol_for - for a group with :halt_on_fail - returns :no_catch - for a group without :halt_on_fail - returns :task_has_failed - #run_on_changes - always calls UI.clearable - with no changes - does not run any task - with matching removed paths - executes the :run_on_removals task - with modified paths - executes the :run_first_task_found task - with non-matching removed paths - does not call tasks - with added files but added paths is empty - does not call run anything - with modified files but modified paths is empty - does not call run anything - when clearable - clear UI - with added paths - executes the :run_on_additions task - #run - marks an action as unit of work - executes supervised task on all registered plugins implementing it - with a scope - executes the supervised task on the specified plugin only - with no scope - executes the supervised task using current scope - with interrupted task - catches the thrown symbol #_supervise executes the task on the passed guard + with a task that throws :task_has_failed + in a group + with halt_on_fail: false + catches :task_has_failed + with halt_on_fail: true + throws :task_has_failed with a task that succeeds without any arguments + does not remove the Guard calls :begin and :end hooks - passes the result of the supervised method to the :end hook returns the result of the task - does not remove the Guard + passes the result of the supervised method to the :end hook with arguments returns the result of the task does not remove the Guard - with a task that throws :task_has_failed - in a group - with halt_on_fail: true - throws :task_has_failed - with halt_on_fail: false - catches :task_has_failed with a task that raises an exception - calls the default begin hook but not the default end hook returns the exception + calls the default begin hook but not the default end hook display an error to the user removes the Guard - -Guard::Commander - .start - calls Guard setup - displays an info message - start the listener - tell the runner to run the :start task - when finished - stops everything - when listener.start raises an error - calls Commander#stop - when setup raises an error - calls Commander#stop - .stop - turns the notifier off - stops the listener - tell the runner to run the :stop task - turns off the interactor - .pause - when already paused - with :paused - does nothing - with invalid parameter - raises an ArgumentError - with nil - unpauses - shows a message - with :toggle - shows a message - unpauses - with :unpaused - unpauses - shows a message - when unpaused - with :unpaused - does nothing - with :toggle - shows a message - pauses - with nil - shows a message - pauses - with invalid parameter - raises an ArgumentError - with :paused - shows a message - pauses - .run_all - with a given scope - runs all with the scope - with an empty scope - runs all - .show - shows list of plugins - .reload - reloads Guard - clears the screen - -Guard::Watcher::Pattern::MatchResult - #[] - with a valid match - when asked for a name match via a symbol - returns the value by name - when asked for the non-first item - returns the value at given index - when asked for the first item - returns the full original value - #initialize - with valid arguments - does not fail - -Guard::Group - #to_s - is expected to eq "#" - #title - is expected to eq "Foo" - #options - when provided - is expected to eq {:halt_on_fail=>true} - #name - is expected to eq :foo - when initialized from a string - is expected to eq :foo - -Guard::Watcher::Pattern::Matcher - integration - #match result - when constructed with valid regexp - when matched file contains a $ - is expected to eq ["foo.rb"] - when matched file is an unclean Pathname - when filename does not match - is expected to be nil - when filename matches - is expected to eq ["foo.rb"] - when matched file is a string - when filename does not match - is expected to be nil - when filename matches - is expected to eq ["foo.rb"] - #match - when constructed with valid matcher object - when matched against a Pathname - passes the Pathname to the matcher - returns the match result - when matched against a String - returns the match result - passes a Pathname to the matcher - #== - returns false for unequal matchers - returns true for equal matchers - -Guard::Internals::Scope - #to_hash - :plugin - when set from interactor - uses interactor scope - when not set in interactor - when set in commandline - uses commandline scope - when not set in commandline - when set in Guardfile - uses guardfile scope - :group - when not set in interactor - when set in commandline - uses commandline scope - when not set in commandline - when set in Guardfile - uses guardfile scope - when set from interactor - uses interactor scope - #titles - example at ./spec/lib/guard/internals/scope_spec.rb:93 (PENDING: Not yet implemented) - -Guard::Plugin - with a plugin instance - #to_s - output the short plugin name - .template - reads the default template - .non_namespaced_name - remove the Guard:: namespace and downcase - .non_namespaced_classname - remove the Guard:: namespace - #name - outputs the short plugin name - #title - outputs the plugin title - .add_callback - can add a run_on_modifications callback - can add multiple callbacks - #initialize - assigns the defined options - assigns the defined watchers - without a group in the options - assigns a default group - with a group in the options - assigns the given group - with a callback - adds the callback - #hook - notifies the hooks - accepts extra arguments - passes the hooks name - .notify - runs only the given callbacks - sends :call to the given Guard class's start_begin callback - runs callbacks only for the guard given - sends :call to the given Guard class's start_begin callback + .stopping_symbol_for + for a group without :halt_on_fail + returns :task_has_failed + for a group with :halt_on_fail + returns :no_catch + #run + executes supervised task on all registered plugins implementing it + marks an action as unit of work + with a scope + executes the supervised task on the specified plugin only + with interrupted task + catches the thrown symbol + with no scope + executes the supervised task using current scope + #run_on_changes + always calls UI.clearable + with modified files but modified paths is empty + does not call run anything + with matching removed paths + executes the :run_on_removals task + with added files but added paths is empty + does not call run anything + with non-matching removed paths + does not call tasks + when clearable + clear UI + with modified paths + executes the :run_first_task_found task + with no changes + does not run any task + with added paths + executes the :run_on_additions task Guard::Deprecated::Guard - evaluate_guardfile - evaluates the guardfile + .running show deprecation warning - .guard_gem_names - displays a deprecation warning to the user - delegates to Guard::PluginUtil - .locate_guard - delegates to Guard::PluginUtil - displays a deprecation warning to the user - .groups + .plugins show deprecation warning provides a similar implementation - .get_guard_class - displays a deprecation warning to the user - delegates to Guard::PluginUtil - :fail_gracefully - pass it to get_guard_class - .scope= - provides a similar implementation + .add_plugin + adds a plugin show deprecation warning - .group + .add_group + show deprecation warning + adds a group + .groups provides a similar implementation show deprecation warning + .listener= + provides and alternative implementation + show deprecation warning + .lock + show deprecation warning options show deprecation warning :clear when being set to true sets the clearing option accordingly + when being set to false + sets the clearing option accordingly when being read - when set - provides an alternative implementation when not set provides an alternative implementation - when being set to false - sets the clearing option accordingly - .add_group + when set + provides an alternative implementation + .group show deprecation warning - adds a group - .plugin provides a similar implementation - show deprecation warning - .running - show deprecation warning - .add_plugin - adds a plugin - show deprecation warning - .lock - show deprecation warning .add_guard delegates to Guard.plugins displays a deprecation warning to the user - .plugins - provides a similar implementation - show deprecation warning - .scope - show deprecation warning - provides a similar implementation .guards displays a deprecation warning to the user delegates to Plugins - .listener= - provides and alternative implementation - show deprecation warning + .locate_guard + delegates to Guard::PluginUtil + displays a deprecation warning to the user + .get_guard_class + delegates to Guard::PluginUtil + displays a deprecation warning to the user + :fail_gracefully + pass it to get_guard_class evaluator show deprecation warning + .plugin + provides a similar implementation + show deprecation warning + .scope + provides a similar implementation + show deprecation warning reset_evaluator show deprecation warning + .guard_gem_names + delegates to Guard::PluginUtil + displays a deprecation warning to the user + evaluate_guardfile + evaluates the guardfile + show deprecation warning + .scope= + provides a similar implementation + show deprecation warning -Guard::Internals::Plugins - #all - find plugins by their group as a symbol - returns an array of plugins if plugins are found - returns an empty array when no plugin is found - with no arguments - returns all plugins - find plugins matching a regexp - returns an empty array when no plugin is found - returns an array of plugins if plugins are found - find a plugin by as symbol - returns an empty array when no plugin is found - returns an array of plugins if plugins are found - find a plugin by as string - returns an array of plugins if plugins are found - find plugins by their group as a string - returns an array of plugins if plugins are found - find plugins by their group & name - returns an empty array when no plugin is found - returns an array of plugins if plugins are found - #remove - removes given plugin - -Guard::Jobs::Sleep - #background - wakes up main thread - #foreground - sleeps - returns :stopped when put to background - -Guard::Commands::All - with a valid Guard group scope - runs the :run_all action with the given scope +Guard::Commands::Scope with a valid Guard plugin scope - runs the :run_all action with the given scope + runs the :scope= action with the given scope with an invalid scope - does not run the action - without scope - runs the :run_all action - -Guard::Commands::Reload + does not change the scope and shows unknown scopes with a valid Guard group scope - triggers the :reload action with the given scope - with an invalid scope - does not trigger the action - with a valid Guard plugin scope - triggers the :reload action with the given scope + sets up the scope with the given scope without scope - triggers the :reload action - -Guard::DslReader - #watch signature - matches base signature - #interactor signature - matches base signature - notification - handles arguments without errors - #callback signature - matches base signature - #scope signature - matches base signature - #notification signature - matches base signature - #logger signature - matches base signature - #guard signature - matches base signature - #ignore! signature - matches base signature - plugin_names - returns encountered names - #directories signature - matches base signature - #ignore signature - matches base signature - guard - when it is a Symbol - reports the name as a String - works without errors - when it is a String - reports the name as a String - works without errors - #clearing signature - matches base signature - #group signature - matches base signature - #initialize signature - matches base signature - -GuardReloader - when not running with bundler - when not running with rubygems_gemdeps - when not run as binstub - when no Gemfile exists - shows no warning - when Gemfile exists - shows a warning - when running as binstub - when the relative Gemfile exists - sets up bundler - sets the Gemfile - when the relative Gemfile does not exist - does not setup bundler - does not setup rubygems - shows no warning - when running with rubygems_gemdeps - sets up rubygems - when running with bundler - sets up bundler - -Guard::Config - is expected to respond to #silence_deprecations? - is expected to respond to #strict? - .strict? - when GUARD_STRICT is set to a 'true' value - is expected to be strict - when GUARD_STRICT is set to a 'false' value - is expected not to be strict - -Guard::Terminal - is expected to respond to #clear - .clear - when on UNIX - when the clear command exists - clears the screen using 'clear' - when the clear command fails - fails - when on Windows - clears the screen - when the clear command fails - fails - -Guard::Commands::Notification - toggles the Guard notifier - -Guard::Interactor - job selection - when enabled from the DSL - when disabled from the commandline - is expected to be enabled - uses only sleeper - when enabled from the commandline - is expected to be enabled - uses only pry - when disabled from the DSL - when enabled from the commandline - uses only sleeper - is expected not to be enabled - when disabled from the commandline - uses only sleeper - is expected not to be enabled - when disabled - #foreground - sleeps - #handle_interrupt - interrupts sleep - #background - wakes up from sleep - when enabled - #foreground - starts Pry - #background - hides Pry - #handle_interrupt - interrupts Pry - .enabled & .enabled= - returns true by default - interactor not enabled - returns false - .options & .options= - returns {} by default - options set to { foo: :bar } - returns { foo: :bar } - -Guard::Commands::Pause - tells Guard to pause - -Guard::UI - .error - behaves like a logger method - resets the line with the :reset option - logs the message with the given severity - with the :only option - allows logging matching messages - prevents logging other messages - with the :except option - allows logging other messages - prevents logging matching messages - .options= - sets the logger options - .info - behaves like a logger method - resets the line with the :reset option - logs the message with the given severity - with the :except option - allows logging other messages - prevents logging matching messages - with the :only option - prevents logging other messages - allows logging matching messages - .debug - behaves like a logger method - resets the line with the :reset option - logs the message with the given severity - with the :except option - prevents logging matching messages - allows logging other messages - with the :only option - allows logging matching messages - prevents logging other messages - .logger - with no logger set yet - returns the logger instance - sets the logger device - .deprecation - with GUARD_GEM_SILENCE_DEPRECATIONS unset - behaves like a logger method - resets the line with the :reset option - logs the message with the given severity - with the :only option - prevents logging other messages - allows logging matching messages - with the :except option - allows logging other messages - prevents logging matching messages - with GUARD_GEM_SILENCE_DEPRECATIONS set to 1 - silences deprecations - .warning - behaves like a logger method - resets the line with the :reset option - logs the message with the given severity - with the :only option - prevents logging other messages - allows logging matching messages - with the :except option - prevents logging matching messages - allows logging other messages - .clear - with UI set up and ready - when clear option is disabled - does not clear the output - when clear option is enabled - when the screen has just been cleared - does not clear - when forced - clears the outputs if forced - when the screen is marked as needing clearing - clears the output - clears the output only once - when the command fails - shows a warning - .action_with_scopes - with a groups scope - shows the group scoped action - without a scope - with a global plugin scope - shows the global plugin scoped action - with a global group scope - shows the global group scoped action - with a plugins scope - shows the plugin scoped action - .level= - when logger is not set up yet - sets the logger's config level - does not autocreate the logger - when logger is set up - sets the logger's level - sets the logger's config level - -Guard::Options - .initialize - can be passed defaults - has indifferent access - merges the sensible defaults to the given options - handles nil options - -Guard::Deprecated::Watcher - .match_guardfile? - displays a deprecation warning to the user - matches against current guardfile - -Guard::Deprecated::Guardfile - .initialize_template - displays a deprecation warning to the user - delegates to Guard::Guardfile::Generator - .create_guardfile - delegates to Guard::Guardfile::Generator - displays a deprecation warning to the user - .initialize_all_templates - displays a deprecation warning to the user - delegates to Guard::Guardfile::Generator - -Guard::Internals::Groups - #all - with only default groups - initializes the groups - with existing groups - with a symbol argument matching a group - returns an array of groups if plugins are found - with no arguments - returns all groups - with a symbol argument not matching a group - returns an empty array when no group is found - with a regexp argument not matching a group - returns an empty array when no group is found - with a string argument - returns an array of groups if plugins are found - with a regexp argument matching a group - returns an array of groups - #add - with existing groups - add the given group - add the given group with options - with an existing group - does not add duplicate groups when name is a string - does not add duplicate groups when name is a symbol - -Guard::Watcher::Pattern::SimplePath - #match result - when constructed with filename string - when matched file is an unclean Pathname - when filename matches - is expected to eq ["foo.rb"] - when filename does not match - is expected to be nil - when matched file is a string - when filename matches - is expected to eq ["foo.rb"] - when filename does not match - is expected to be nil - -Guard::Watcher - integration - #match - with a named regexp pattern - with a watcher that matches a file - is expected to eq "bar" - provides the match by name - #action - sets the action to nothing by default - sets the action to the supplied block - #initialize - with no arguments - raises an error - with a pattern parameter - creates a matcher - #== - returns true for equal watchers - returns false for unequal watchers - .match_files - with an exception that is raised - displays the error and backtrace - for ambiguous watchers - when the :first_match option is turned off - returns multiple files by combining the results of the watchers - when the :first_match option is turned on - returns only the files from the first watcher - with a watcher action that takes a parameter - for a watcher that matches file strings - returns multiple files specified within the action - returns nothing if action returns non-string or non-string array - combines results of different actions - returns nothing if the action returns nothing - returns nothing if the action response is empty - returns a substituted single file specified within the action - for a watcher that matches information objects - returns nothing if the action returns is IO::NULL - returns nothing if the action response is empty string - combinines results of different actions - returns a substituted single file specified within the action - returns the evaluated addition argument + the path - returns a hash specified within the action - with a watcher action without parameter - for a watcher that matches information objects - returns nothing if the action response is empty string - returns nothing if the action returns empty string - combines the results of different actions - returns multiple files specified within the action - returns the evaluated addition argument in an array - returns a single file specified within the action - for a watcher that matches file strings - returns nothing if the action returns nothing - combines files from results of different actions - returns a single file specified within the action - returns nothing if the action response is empty - returns multiple files specified within the action - when action returns non-string or array of non-strings - returns nothing - without a watcher action - with a regex pattern - returns the paths that matches the regex - with a string pattern - returns the path that matches the string - #match - with a valid pattern - with a valid file name to match - when matching is not successful - returns nil - when matching is successful - returns the match result - -Guard::Internals::Traps - .handle - with a supported signal name - sets up a handler - with an unsupported signal name - does not set a handler - -Guard::Commands::Show - tells Guard to output DSL description - -Guard - #relevant_changes? - example at ./spec/lib/guard_spec.rb:247 (PENDING: Not yet implemented) - ._relative_pathname - with file in project directory - is expected to eq # - with file in parent directory - is expected to eq # - with file within project - is expected to eq # - with file on another drive (e.g. Windows) - is expected to eq # - .setup - displays an error message when no guard are defined in Guardfile - connects to the notifier - initializes the interactor - initializes the listener - evaluates the Guardfile - returns itself for chaining - .interactor - with interactions disabled - is expected to have received new(true) 1 time - with interactions enabled - is expected to have received new(false) 1 time - with the plugin option - passes options to session - listener - with ignores 'ignore(/foo/)' and 'ignore!(/bar/)' - is expected to have received ignore([/foo/]) 1 time - is expected to have received ignore!([/bar/]) 1 time - without ignores - is expected not to have received ignore(*(any args)) 0 times - is expected not to have received ignore!(*(any args)) 0 times - with the group option - passes options to session - trapping signals - sets up USR1 trap for pausing - sets up INT trap for cancelling or quitting interactor - sets up USR2 trap for unpausing - UI - when clearing is configured - is expected to have received reset_and_clear(*(any args)) 1 time + does not call :scope= and shows usage -Guard::Internals::State - #initialize - debugging - when debug is set to true - sets up debugging - when debug is set to false - does not set up debugging +Pending: (Failures listed here are expected and do not affect your suite's status) -Guard::Deprecated::Dsl - .evaluate_guardfile - displays a deprecation warning to the user - delegates to Guard::Guardfile::Generator + 1) Guard#relevant_changes? + # Not yet implemented + # ./spec/lib/guard_spec.rb:247 -Pending: (Failures listed here are expected and do not affect your suite's status) + 2) Guard::PluginUtil#add_to_guardfile when the Guard is already in the Guardfile shows an info message + # Temporarily skipped with xcontext + # ./spec/lib/guard/plugin_util_spec.rb:235 - 1) Guard::PluginUtil.plugin_names returns the list of guard gems + 3) Guard::PluginUtil.plugin_names returns the list of embedded guard gems # Temporarily skipped with xdescribe - # ./spec/lib/guard/plugin_util_spec.rb:42 + # ./spec/lib/guard/plugin_util_spec.rb:46 - 2) Guard::PluginUtil.plugin_names ignores guard-compat + 4) Guard::PluginUtil.plugin_names ignores guard-compat # Temporarily skipped with xdescribe # ./spec/lib/guard/plugin_util_spec.rb:50 - 3) Guard::PluginUtil.plugin_names returns the list of embedded guard gems + 5) Guard::PluginUtil.plugin_names returns the list of guard gems # Temporarily skipped with xdescribe - # ./spec/lib/guard/plugin_util_spec.rb:46 - - 4) Guard::PluginUtil#add_to_guardfile when the Guard is already in the Guardfile shows an info message - # Temporarily skipped with xcontext - # ./spec/lib/guard/plugin_util_spec.rb:235 + # ./spec/lib/guard/plugin_util_spec.rb:42 - 5) Guard::Internals::Scope#titles + 6) Guard::Internals::Scope#titles # Not yet implemented # ./spec/lib/guard/internals/scope_spec.rb:93 - 6) Guard#relevant_changes? - # Not yet implemented - # ./spec/lib/guard_spec.rb:247 - -Finished in 31.71 seconds (files took 1.73 seconds to load) +Finished in 12.68 seconds (files took 0.54654 seconds to load) 553 examples, 0 failures, 6 pending -Randomized with seed 39534 +Randomized with seed 13180 ┌──────────────────────────────────────────────────────────────────────────────┐ @@ -3495,12 +3531,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: not including original source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/3289516/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/3289516/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/1476247 and its subdirectories -I: Current time: Sun Jan 12 00:32:13 -12 2025 -I: pbuilder-time-stamp: 1736685133 +I: removing directory /srv/workspace/pbuilder/3289516 and its subdirectories +I: Current time: Sun Feb 15 08:57:04 +14 2026 +I: pbuilder-time-stamp: 1771095424