Diff of the two buildlogs:

--
--- b1/build.log	2023-04-28 03:10:28.083029796 +0000
+++ b2/build.log	2023-04-28 03:12:15.098285339 +0000
@@ -1,6 +1,6 @@
 I: pbuilder: network access will be disabled during build
-I: Current time: Wed May 29 21:31:04 -12 2024
-I: pbuilder-time-stamp: 1717061464
+I: Current time: Fri Apr 28 17:10:30 +14 2023
+I: pbuilder-time-stamp: 1682651430
 I: Building the build Environment
 I: extracting base tarball [/var/cache/pbuilder/bookworm-reproducible-base.tgz]
 I: copying local configuration
@@ -16,7 +16,7 @@
 I: copying [./ruby-guard_2.18.0.orig.tar.gz]
 I: copying [./ruby-guard_2.18.0-3.debian.tar.xz]
 I: Extracting source
-gpgv: Signature made Tue Dec 27 15:23:35 2022 -12
+gpgv: Signature made Wed Dec 28 17:23:35 2022 +14
 gpgv:                using RSA key 0B29D88E42E6B765B8D8EA507839619DD439668E
 gpgv: Can't check signature: No public key
 dpkg-source: warning: cannot verify inline signature for ./ruby-guard_2.18.0-3.dsc: no acceptable signature found
@@ -32,52 +32,84 @@
 dpkg-source: info: applying fix-ftbfs-with-rspec-mock-3.12-and-ruby-3+.patch
 I: Not using root during the build.
 I: Installing the build-deps
-I: user script /srv/workspace/pbuilder/8256/tmp/hooks/D02_print_environment starting
+I: user script /srv/workspace/pbuilder/8386/tmp/hooks/D01_modify_environment starting
+debug: Running on codethink14-arm64.
+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 Apr 28 17:10 /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/8386/tmp/hooks/D01_modify_environment finished
+I: user script /srv/workspace/pbuilder/8386/tmp/hooks/D02_print_environment starting
 I: set
-  BUILDDIR='/build'
-  BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other'
-  BUILDUSERNAME='pbuilder1'
-  BUILD_ARCH='arm64'
-  DEBIAN_FRONTEND='noninteractive'
+  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]="15" [3]="1" [4]="release" [5]="aarch64-unknown-linux-gnu")
+  BASH_VERSION='5.2.15(1)-release'
+  BUILDDIR=/build
+  BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other'
+  BUILDUSERNAME=pbuilder2
+  BUILD_ARCH=arm64
+  DEBIAN_FRONTEND=noninteractive
   DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=8'
-  DISTRIBUTION='bookworm'
-  HOME='/var/lib/jenkins'
-  HOST_ARCH='arm64'
+  DIRSTACK=()
+  DISTRIBUTION=bookworm
+  EUID=0
+  FUNCNAME=([0]="Echo" [1]="main")
+  GROUPS=()
+  HOME=/var/lib/jenkins
+  HOSTNAME=i-capture-the-hostname
+  HOSTTYPE=aarch64
+  HOST_ARCH=arm64
   IFS=' 	
   '
-  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='8256'
-  PS1='# '
-  PS2='> '
+  LANG=C
+  LANGUAGE=nl_BE:nl
+  LC_ALL=C
+  MACHTYPE=aarch64-unknown-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=8386
   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.tkuXtigm/pbuilderrc_548T --distribution bookworm --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bookworm-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.tkuXtigm/b1 --logfile b1/build.log ruby-guard_2.18.0-3.dsc'
-  SUDO_GID='117'
-  SUDO_UID='110'
-  SUDO_USER='jenkins'
-  TERM='unknown'
-  TZ='/usr/share/zoneinfo/Etc/GMT+12'
-  USER='root'
-  USERNAME='root'
-  _='/usr/bin/systemd-run'
-  http_proxy='http://192.168.101.16: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.tkuXtigm/pbuilderrc_VtVj --distribution bookworm --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bookworm-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.tkuXtigm/b2 --logfile b2/build.log --extrapackages usrmerge ruby-guard_2.18.0-3.dsc'
+  SUDO_GID=117
+  SUDO_UID=110
+  SUDO_USER=jenkins
+  TERM=unknown
+  TZ=/usr/share/zoneinfo/Etc/GMT-14
+  UID=0
+  USER=root
+  USERNAME=root
+  _='I: set'
+  http_proxy=http://192.168.101.16:3128
 I: uname -a
-  Linux codethink15-arm64 4.15.0-210-generic #221-Ubuntu SMP Tue Apr 18 08:32:48 UTC 2023 aarch64 GNU/Linux
+  Linux i-capture-the-hostname 4.15.0-210-generic #221-Ubuntu SMP Tue Apr 18 08:32:48 UTC 2023 aarch64 GNU/Linux
 I: ls -l /bin
-  lrwxrwxrwx 1 root root 7 May 28 13:18 /bin -> usr/bin
-I: user script /srv/workspace/pbuilder/8256/tmp/hooks/D02_print_environment finished
+  lrwxrwxrwx 1 root root 7 Apr 26 00:27 /bin -> usr/bin
+I: user script /srv/workspace/pbuilder/8386/tmp/hooks/D02_print_environment finished
  -> Attempting to satisfy build-dependencies
  -> Creating pbuilder-satisfydepends-dummy package
 Package: pbuilder-satisfydepends-dummy
@@ -280,7 +312,7 @@
 Get: 141 http://deb.debian.org/debian bookworm/main arm64 ruby-rspec-mocks all 3.12.0c0e1m1s0-1 [79.5 kB]
 Get: 142 http://deb.debian.org/debian bookworm/main arm64 ruby-rspec all 3.12.0c0e1m1s0-1 [5084 B]
 Get: 143 http://deb.debian.org/debian bookworm/main arm64 ruby-thor all 1.2.1-2 [46.4 kB]
-Fetched 46.2 MB in 1s (34.1 MB/s)
+Fetched 46.2 MB in 4s (10.3 MB/s)
 debconf: delaying package configuration, since apt-utils is not installed
 Selecting previously unselected package libpython3.11-minimal:arm64.
 (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 ... 19616 files and directories currently installed.)
@@ -875,8 +907,17 @@
 Writing extended state information...
 Building tag database...
  -> Finished parsing the build-deps
+Reading package lists...
+Building dependency tree...
+Reading state information...
+usrmerge is already the newest version (35).
+0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
 I: Building the package
-I: Running cd /build/ruby-guard-2.18.0/ && 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.0-3_source.changes
+I: user script /srv/workspace/pbuilder/8386/tmp/hooks/A99_set_merged_usr starting
+Re-configuring usrmerge...
+I: user script /srv/workspace/pbuilder/8386/tmp/hooks/A99_set_merged_usr finished
+hostname: Temporary failure in name resolution
+I: Running cd /build/ruby-guard-2.18.0/ && 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.0-3_source.changes
 dpkg-buildpackage: info: source package ruby-guard
 dpkg-buildpackage: info: source version 2.18.0-3
 dpkg-buildpackage: info: source distribution unstable
@@ -1004,64 +1045,760 @@
 
 All examples were filtered out; ignoring {:focus=>true}
 
-Randomized with seed 43404
+Randomized with seed 60869
 
-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
-      is expected to be a kind of Guard::Watcher::Pattern::Matcher
-      shows a warning
-    when a string is given
-      is expected to be a kind of Guard::Watcher::Pattern::SimplePath
-    when a regexp is given
-      is expected to be a kind of Guard::Watcher::Pattern::Matcher
-    when a custom matcher
-      is expected to be a kind of Guard::Watcher::Pattern::Matcher
+Guard::Deprecated::Watcher
+  .match_guardfile?
+    displays a deprecation warning to the user
+    matches against current guardfile
+
+Guard::DslReader
+  #notification signature
+    matches base signature
+  #ignore! signature
+    matches base signature
+  #callback signature
+    matches base signature
+  guard
+    when it is a Symbol
+      reports the name as a String
+      works without errors
+    when it is a String
+      works without errors
+      reports the name as a String
+  #logger signature
+    matches base signature
+  #guard signature
+    matches base signature
+  #scope signature
+    matches base signature
+  plugin_names
+    returns encountered names
+  #initialize signature
+    matches base signature
+  notification
+    handles arguments without errors
+  #group signature
+    matches base signature
+  #ignore signature
+    matches base signature
+  #directories signature
+    matches base signature
+  #interactor signature
+    matches base signature
+  #watch signature
+    matches base signature
+  #clearing signature
+    matches base signature
+
+Guard::Commands::All
+  without scope
+    runs the :run_all action
+  with an invalid scope
+    does not run the 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::Guardfile::Generator
+  has a valid Guardfile template
+  #initialize_all_templates
+    calls Guard.initialize_template on all installed plugins
+  #create_guardfile
+    without an existing Guardfile
+      copies the Guardfile template and notifies the user
+      does not display any kind of error or abort
+    with an existing Guardfile
+      does not copy the Guardfile template or notify the user
+      does not display information
+      displays an error message
+      aborts
+  #initialize_template
+    with a user defined template
+      copies the Guardfile template and initializes the Guard
+    with an installed Guard implementation
+      initializes the Guard
+    when the passed guard can't be found
+      notifies the user about the problem
+
+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 #system
+          is expected to eq true
+          outputs command
+        when backticks
+          is expected to eq ""
+          outputs command
+    when not tracing
+      with command arguments
+        when #system
+          is expected to eq true
+          does not output anything
+      with no command arguments
+        when #system
+          does not output anything
+          is expected to eq true
+        when backticks
+          does not output anything
+          is expected to eq ""
+
+Guard::Group
+  #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}
+  #to_s
+    is expected to eq "#<Guard::Group @name=foo @options={}>"
+
+Guard::Dsl
+  #clear
+    with clear :on
+      enabled clearing the screen after every task
+    with clear :off
+      disables clearing the screen after every task
+  #ignore
+    with ignore regexps
+      adds ignored regexps to the listener
+    with multiple ignore calls
+      adds all ignored regexps to the listener
+  #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
+  #notification
+    with multiple notifications
+      adds multiple notifiers
+    when notification
+      adds a notification to the notifier
+  #filter alias method
+    is expected to eq #<UnboundMethod: Guard::Dsl#ignore(*regexps) /build/ruby-guard-2.18.0/lib/guard/dsl.rb:267>
+  #logger
+    with invalid options
+      when having both the :only and :except options
+        shows a warning
+        removes the options
+      for the log level
+        shows a warning
+        does not set the invalid value
+    options
+      with logger except filter from a string
+        is expected to have received options=({:except=>/jasmine/i}) 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 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 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 only filter from a string
+        is expected to have received options=({:only=>/jasmine/i}) 1 time
+  #group
+    group named :all
+      raises an error
+    with multiple names
+      adds all given groups
+    no plugins in group
+      displays an error
+    group named "all"
+      raises an error
+    with a valid guardfile
+      evaluates all groups
+  #scope
+    with any parameters
+      sets the guardfile's default scope
+  #interactor
+    with interactor :off
+      disables the interactions with :off
+    with interactor options
+      passes the options to the interactor
+  #directories
+    with no parameters
+      sets the watchdirs to empty
+    with non-existing directory
+      fails with an error
+    with valid directories
+      sets the watchdirs to given values
+  #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
+  #filter! alias method
+    is expected to eq #<UnboundMethod: Guard::Dsl#ignore!(*regexps) /build/ruby-guard-2.18.0/lib/guard/dsl.rb:282>
+  #callback
+    with
+      creates callbacks for the guard
+    without a guard block
+      fails
+  #guard
+    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
+    with name as symbol in parens
+      adds the plugin
+    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
+
+Guard::Internals::Session
+  #guardfile_ignore=
+    when unset
+      is expected to eq []
+    when set multiple times from guardfile
+      is expected to eq [/foo/, /bar/]
+    when set from guardfile
+      is expected to eq [/foo/]
+  .convert_scope
+    returns a group scope
+    returns the unkown scopes
+    returns a plugin and group scope
+    returns a plugin scope
+    returns multiple plugin scopes
+    returns multiple group scopes
+  #clearing
+    when set from guardfile
+      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 not set from commandline
+        is expected not to be clearing
+      when clearing is set from commandline
+        is expected not to be clearing
+  #guardfile_notification=
+    when set from guardfile
+      is expected to eq {:notifiers=>{:foo=>{:bar=>:baz}}, :notify=>true}
+    when unset
+      is expected to eq {:notifiers=>{}, :notify=>true}
+    when set multiple times from guardfile
+      merges results
+  #guardfile_scope
+    with a groups scope
+      sets the groups
+    with a plugin scope
+      sets the plugins
+    with a group scope
+      sets the groups
+    with a plugins scope
+      sets the plugins
+  #guardfile_ignore_bang=
+    when set from guardfile
+      is expected to eq [/foo/]
+    when unset
+      is expected to eq []
+  #initialize
+    #listener_args
+      with multiple watchdirs
+        is expected to eq [:to, "/usr", "/bin", {}]
+      with a single watchdir
+        is expected to eq [:to, "/usr", {}]
+      with latency option
+        is expected to eq [:to, "/build/ruby-guard-2.18.0", {:latency=>1.5}]
+      with force_polling option
+        is expected to eq [:to, "/build/ruby-guard-2.18.0", {:force_polling=>true}]
+    with the group option
+      initializes the group scope
+    with the plugin option
+      initializes the plugin scope
+
+Guard::Internals::Plugins
+  #remove
+    removes given plugin
+  #all
+    find a plugin by as string
+      returns an array of plugins if plugins are found
+    find plugins by their group & name
+      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 array of plugins if plugins are found
+      returns an empty array when no plugin is 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 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
+
+Guard::Deprecated::Dsl
+  .evaluate_guardfile
+    delegates to Guard::Guardfile::Generator
+    displays a deprecation warning to the user
+
+Guard::Commands::Change
+  with multiple files
+    runs the :run_on_changes action with the given files
+  with a file
+    runs the :run_on_changes action with the given file
+  without a file
+    does not run the :run_on_changes action
+
+Guard::PluginUtil
+  #plugin_class
+    reports an error if the class is not found
+    with an inline Guard class
+      returns the Guard class
+    with a name like VSpec
+      returns the Guard class
+    with a nested Guard class
+      resolves the Guard class from symbol
+      resolves the Guard class from string
+    when set to fail gracefully
+      does not print error messages on fail
+    with a name with dashes
+      returns the Guard class
+    with a name with underscores
+      returns the Guard class
+  #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
+  #initialize
+    accepts a name with guard-
+    accepts a name without guard-
+  .plugin_names
+    ignores guard-compat (PENDING: Temporarily skipped with xdescribe)
+    returns the list of guard gems (PENDING: Temporarily skipped with xdescribe)
+    returns the list of embedded guard gems (PENDING: Temporarily skipped with xdescribe)
+  #add_to_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
+
+Guard::UI::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
+  #logger_config
+    with defaults
+      provides a 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
+
+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::Watcher::Pattern::DeprecatedRegexp
+  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 foo.rb$
+      creates a Matcher with (?-mix:foo.rb$)
+    with .*rb
+      creates a Matcher with (?-mix:.*rb)
+  .deprecated?
+    is expected to be deprecated
+    is expected to be deprecated
+
+Guard::Commands::Reload
+  without scope
+    triggers the :reload action
+  with an invalid scope
+    does not trigger the 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
+
+Guard::UI
+  .options=
+    sets the logger options
+  .debug
+    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
+  .action_with_scopes
+    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
+    with a plugins scope
+      shows the plugin scoped action
+    with a groups scope
+      shows the group scoped action
+  .error
+    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
+  .deprecation
+    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 :only option
+          allows logging matching messages
+          prevents logging other messages
+        with the :except option
+          allows logging other messages
+          prevents logging matching messages
+    with GUARD_GEM_SILENCE_DEPRECATIONS set to 1
+      silences deprecations
+  .logger
+    with no logger set yet
+      sets the logger device
+      returns the logger instance
+  .warning
+    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
+        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 is marked as needing clearing
+          clears the output only once
+          clears the output
+          when the command fails
+            shows a warning
+        when the screen has just been cleared
+          does not clear
+          when forced
+            clears the outputs if forced
+  .info
+    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
+  .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
+
+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 string
+        does not add duplicate groups when name is a symbol
+  #all
+    with existing groups
+      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 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 no arguments
+        returns all groups
+      with a string argument
+        returns an array of groups if plugins are found
+    with only default groups
+      initializes the groups
+
+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 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
 
 Guard::Jobs::Sleep
-  #foreground
-    sleeps
-    returns :stopped when put to background
   #background
     wakes up main thread
+  #foreground
+    returns :stopped when put to background
+    sleeps
 
-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
+Guard::Deprecated::Guard
+  .locate_guard
+    displays a deprecation warning to the user
+    delegates to Guard::PluginUtil
+  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 not set
+          provides an alternative implementation
+        when set
+          provides an alternative implementation
+  .groups
+    provides a similar implementation
+    show deprecation warning
+  .scope=
+    show deprecation warning
+    provides a similar implementation
+  .listener=
+    show deprecation warning
+    provides and alternative implementation
+  .plugin
+    provides a similar implementation
+    show deprecation warning
+  .group
+    show deprecation warning
+    provides a similar implementation
+  evaluator
+    show deprecation warning
+  .lock
+    show deprecation warning
+  .add_guard
+    displays a deprecation warning to the user
+    delegates to Guard.plugins
+  .scope
+    provides a similar implementation
+    show deprecation warning
+  .add_group
+    adds a group
+    show deprecation warning
+  reset_evaluator
+    show deprecation warning
+  .plugins
+    provides a similar implementation
+    show deprecation warning
+  .running
+    show deprecation warning
+  evaluate_guardfile
+    evaluates the guardfile
+    show deprecation warning
+  .guards
+    delegates to Plugins
+    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
+  .guard_gem_names
+    displays a deprecation warning to the user
+    delegates to Guard::PluginUtil
+  .add_plugin
+    adds a plugin
+    show deprecation warning
+
+Guard::Guardfile::Evaluator
+  .guardfile_include?
+    when plugin is present
+      returns true
+    when plugin is not present
+      returns false
+  #inline?
+    when contents is provided
+      is expected to be inline
+    when no content is provided
+      is expected not to be inline
+    when guardfile_contents is provided
+      is expected to be inline
+  .evaluate
+    selection of the Guardfile data contents
+      with a valid :contents option
+        with inline content and other Guardfiles available
+          gives ultimate precedence to inline content
+    error cases
+      with a problem reading a Guardfile
+/build/ruby-guard-2.18.0/spec/lib/guard/guardfile/evaluator_spec.rb:73:in `block (6 levels) in <top (required)>': Permission denied - permission error (Errno::EACCES)
+	from /build/ruby-guard-2.18.0/spec/spec_helper.rb:91:in `block in stub_file'
+	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:761:in `block in call'
+	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:760:in `map'
+	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:760:in `call'
+	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:621:in `invoke_incrementing_actual_calls_by'
+	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:474:in `invoke'
+	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/proxy.rb:208:in `message_received'
+	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/method_double.rb:91:in `proxy_method_invoked'
+	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/verifying_proxy.rb:161:in `proxy_method_invoked'
+	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/method_double.rb:67:in `block (2 levels) in define_proxy_method'
+	from /build/ruby-guard-2.18.0/lib/guard/guardfile/evaluator.rb:202:in `_read'
+	from /build/ruby-guard-2.18.0/lib/guard/guardfile/evaluator.rb:189:in `block in _use_default!'
+	from /build/ruby-guard-2.18.0/lib/guard/guardfile/evaluator.rb:187:in `each'
+	from /build/ruby-guard-2.18.0/lib/guard/guardfile/evaluator.rb:187:in `_use_default!'
+	from /build/ruby-guard-2.18.0/lib/guard/guardfile/evaluator.rb:90:in `evaluate'
+	from /build/ruby-guard-2.18.0/spec/lib/guard/guardfile/evaluator_spec.rb:79:in `block (6 levels) in <top (required)>'
+	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/matchers/built_in/raise_error.rb:59:in `matches?'
+	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/handler.rb:51:in `block in handle_matcher'
+	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/handler.rb:27:in `with_matcher'
+	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/handler.rb:48:in `handle_matcher'
+	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/expectation_target.rb:65:in `to'
+	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/expectation_target.rb:139:in `to'
+	from /build/ruby-guard-2.18.0/spec/lib/guard/guardfile/evaluator_spec.rb:79:in `block (5 levels) in <top (required)>'
+	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:263:in `instance_exec'
+	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:263:in `block in run'
+	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:511:in `block in with_around_and_singleton_context_hooks'
+	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:468:in `block in with_around_example_hooks'
+	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/hooks.rb:486:in `block in run'
+	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/hooks.rb:624:in `run_around_example_hooks_for'
+	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/hooks.rb:486:in `run'
+	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:468:in `with_around_example_hooks'
+	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:511:in `with_around_and_singleton_context_hooks'
+	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:259:in `run'
+	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb:646:in `block in run_examples'
+	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb:642:in `map'
+	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb:642:in `run_examples'
+	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb:607:in `run'
+	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb:608:in `block in run'
+	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb:608:in `map'
+	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb:608:in `run'
+	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb:608:in `block in run'
+	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb:608:in `map'
+	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb:608:in `run'
+	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb:608:in `block in run'
+	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb:608:in `map'
+	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb:608:in `run'
+	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'
+	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:121:in `map'
+	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'
+	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/configuration.rb:2070:in `with_suite_hooks'
+	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:116:in `block in run_specs'
+	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/reporter.rb:74:in `report'
+	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:115:in `run_specs'
+	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:89:in `run'
+	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:71:in `run'
+	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:45:in `invoke'
+	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/exe/rspec:4:in `<main>'
+        displays an error message and exits
+      when provided :contents is nil
+        does not raise error and skip it
+      with no Guardfile at all
+        displays an error message and exits
+      with empty Guardfile content
+        displays an error message about no plugins
+      with an invalid Guardfile
+        displays an error message and raises original exception
+      with a non-existing Guardfile given
+        raises error
+      with Guardfile as guardfile.rb
+        evalutates guardfile.rb
+
+Guard::UI::Logger::Config
+  #level=
+    with a valid value
+      stores the level
+  defaults
+    flushes device by default
 
 Guard::Cli::Environments::Valid
   #initialize_guardfile
     with no bare option
-      returns an exit code
       creates a Guardfile
       initializes each passed template
       evaluates created or existing guardfile
+      returns an exit code
       initializes templates of all installed Guards
-      when passed an unknown guard name
-        returns an exit code
       when passed a guard name
         initializes the template of the passed Guard
         when the Guardfile is empty
           adds the template
           works without without errors
+      when passed an unknown guard name
+        returns an exit code
     with bare option
-      Only creates the Guardfile without initializing any Guard template
       returns an exit code
+      Only creates the Guardfile without initializing any Guard template
   #start_guard
     return value
       matches return value of Guard.start
     with a valid bundler setup
+      starts guard
       start guard with options
       returns exit code
-      starts guard
-      when a Guard::Guardfile::Evaluator::NoCustomGuardfile error occurs
-/usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:188:in `block in and_raise': Guard::Guardfile::Evaluator::NoCustomGuardfile error! (Guard::Guardfile::Evaluator::NoCustomGuardfile)
+      when a Guard::Dsl::Error error occurs
+/usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:188:in `block in and_raise': Guard::Dsl::Error error! (Guard::Dsl::Error)
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:761:in `block in call'
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:760:in `map'
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:760:in `call'
@@ -1073,7 +1810,14 @@
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/verifying_proxy.rb:161:in `proxy_method_invoked'
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/method_double.rb:67:in `block (2 levels) in define_proxy_method'
 	from /build/ruby-guard-2.18.0/lib/guard/cli/environments/valid.rb:16:in `start_guard'
-	from /build/ruby-guard-2.18.0/spec/lib/guard/cli/environments/valid_spec.rb:68:in `block (6 levels) in <top (required)>'
+	from /build/ruby-guard-2.18.0/spec/lib/guard/cli/environments/valid_spec.rb:62:in `block (7 levels) in <top (required)>'
+	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/matchers/built_in/raise_error.rb:59:in `matches?'
+	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/handler.rb:51:in `block in handle_matcher'
+	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/handler.rb:27:in `with_matcher'
+	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/handler.rb:48:in `handle_matcher'
+	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/expectation_target.rb:65:in `to'
+	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/expectation_target.rb:139:in `to'
+	from /build/ruby-guard-2.18.0/spec/lib/guard/cli/environments/valid_spec.rb:62:in `block (6 levels) in <top (required)>'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:263:in `instance_exec'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:263:in `block in run'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:511:in `block in with_around_and_singleton_context_hooks'
@@ -1108,8 +1852,8 @@
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:71:in `run'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:45:in `invoke'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/exe/rspec:4:in `<main>'
-        shows error message
-/usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:188:in `block in and_raise': Guard::Guardfile::Evaluator::NoCustomGuardfile error! (Guard::Guardfile::Evaluator::NoCustomGuardfile)
+        aborts
+/usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:188:in `block in and_raise': Guard::Dsl::Error error! (Guard::Dsl::Error)
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:761:in `block in call'
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:760:in `map'
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:760:in `call'
@@ -1121,14 +1865,7 @@
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/verifying_proxy.rb:161:in `proxy_method_invoked'
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/method_double.rb:67:in `block (2 levels) in define_proxy_method'
 	from /build/ruby-guard-2.18.0/lib/guard/cli/environments/valid.rb:16:in `start_guard'
-	from /build/ruby-guard-2.18.0/spec/lib/guard/cli/environments/valid_spec.rb:62:in `block (7 levels) in <top (required)>'
-	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/matchers/built_in/raise_error.rb:59:in `matches?'
-	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/handler.rb:51:in `block in handle_matcher'
-	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/handler.rb:27:in `with_matcher'
-	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/handler.rb:48:in `handle_matcher'
-	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/expectation_target.rb:65:in `to'
-	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/expectation_target.rb:139:in `to'
-	from /build/ruby-guard-2.18.0/spec/lib/guard/cli/environments/valid_spec.rb:62:in `block (6 levels) in <top (required)>'
+	from /build/ruby-guard-2.18.0/spec/lib/guard/cli/environments/valid_spec.rb:68:in `block (6 levels) in <top (required)>'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:263:in `instance_exec'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:263:in `block in run'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:511:in `block in with_around_and_singleton_context_hooks'
@@ -1163,9 +1900,9 @@
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:71:in `run'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:45:in `invoke'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/exe/rspec:4:in `<main>'
-        aborts
-      when a Guard::Guardfile::Evaluator::NoPluginsError error occurs
-/usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:188:in `block in and_raise': Guard::Guardfile::Evaluator::NoPluginsError error! (Guard::Guardfile::Evaluator::NoPluginsError)
+        shows error message
+      when a Guard::Guardfile::Evaluator::NoCustomGuardfile error occurs
+/usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:188:in `block in and_raise': Guard::Guardfile::Evaluator::NoCustomGuardfile error! (Guard::Guardfile::Evaluator::NoCustomGuardfile)
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:761:in `block in call'
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:760:in `map'
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:760:in `call'
@@ -1177,7 +1914,14 @@
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/verifying_proxy.rb:161:in `proxy_method_invoked'
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/method_double.rb:67:in `block (2 levels) in define_proxy_method'
 	from /build/ruby-guard-2.18.0/lib/guard/cli/environments/valid.rb:16:in `start_guard'
-	from /build/ruby-guard-2.18.0/spec/lib/guard/cli/environments/valid_spec.rb:68:in `block (6 levels) in <top (required)>'
+	from /build/ruby-guard-2.18.0/spec/lib/guard/cli/environments/valid_spec.rb:62:in `block (7 levels) in <top (required)>'
+	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/matchers/built_in/raise_error.rb:59:in `matches?'
+	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/handler.rb:51:in `block in handle_matcher'
+	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/handler.rb:27:in `with_matcher'
+	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/handler.rb:48:in `handle_matcher'
+	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/expectation_target.rb:65:in `to'
+	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/expectation_target.rb:139:in `to'
+	from /build/ruby-guard-2.18.0/spec/lib/guard/cli/environments/valid_spec.rb:62:in `block (6 levels) in <top (required)>'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:263:in `instance_exec'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:263:in `block in run'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:511:in `block in with_around_and_singleton_context_hooks'
@@ -1212,8 +1956,8 @@
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:71:in `run'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:45:in `invoke'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/exe/rspec:4:in `<main>'
-        shows error message
-/usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:188:in `block in and_raise': Guard::Guardfile::Evaluator::NoPluginsError error! (Guard::Guardfile::Evaluator::NoPluginsError)
+        aborts
+/usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:188:in `block in and_raise': Guard::Guardfile::Evaluator::NoCustomGuardfile error! (Guard::Guardfile::Evaluator::NoCustomGuardfile)
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:761:in `block in call'
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:760:in `map'
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:760:in `call'
@@ -1225,14 +1969,7 @@
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/verifying_proxy.rb:161:in `proxy_method_invoked'
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/method_double.rb:67:in `block (2 levels) in define_proxy_method'
 	from /build/ruby-guard-2.18.0/lib/guard/cli/environments/valid.rb:16:in `start_guard'
-	from /build/ruby-guard-2.18.0/spec/lib/guard/cli/environments/valid_spec.rb:62:in `block (7 levels) in <top (required)>'
-	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/matchers/built_in/raise_error.rb:59:in `matches?'
-	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/handler.rb:51:in `block in handle_matcher'
-	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/handler.rb:27:in `with_matcher'
-	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/handler.rb:48:in `handle_matcher'
-	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/expectation_target.rb:65:in `to'
-	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/expectation_target.rb:139:in `to'
-	from /build/ruby-guard-2.18.0/spec/lib/guard/cli/environments/valid_spec.rb:62:in `block (6 levels) in <top (required)>'
+	from /build/ruby-guard-2.18.0/spec/lib/guard/cli/environments/valid_spec.rb:68:in `block (6 levels) in <top (required)>'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:263:in `instance_exec'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:263:in `block in run'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:511:in `block in with_around_and_singleton_context_hooks'
@@ -1267,9 +2004,9 @@
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:71:in `run'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:45:in `invoke'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/exe/rspec:4:in `<main>'
-        aborts
-      when a Guard::Guardfile::Evaluator::NoGuardfileError error occurs
-/usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:188:in `block in and_raise': Guard::Guardfile::Evaluator::NoGuardfileError error! (Guard::Guardfile::Evaluator::NoGuardfileError)
+        shows error message
+      when a Guard::Guardfile::Evaluator::NoPluginsError error occurs
+/usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:188:in `block in and_raise': Guard::Guardfile::Evaluator::NoPluginsError error! (Guard::Guardfile::Evaluator::NoPluginsError)
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:761:in `block in call'
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:760:in `map'
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:760:in `call'
@@ -1317,7 +2054,7 @@
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:45:in `invoke'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/exe/rspec:4:in `<main>'
         shows error message
-/usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:188:in `block in and_raise': Guard::Guardfile::Evaluator::NoGuardfileError error! (Guard::Guardfile::Evaluator::NoGuardfileError)
+/usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:188:in `block in and_raise': Guard::Guardfile::Evaluator::NoPluginsError error! (Guard::Guardfile::Evaluator::NoPluginsError)
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:761:in `block in call'
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:760:in `map'
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:760:in `call'
@@ -1372,8 +2109,8 @@
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:45:in `invoke'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/exe/rspec:4:in `<main>'
         aborts
-      when a Guard::Dsl::Error error occurs
-/usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:188:in `block in and_raise': Guard::Dsl::Error error! (Guard::Dsl::Error)
+      when a Guard::Guardfile::Evaluator::NoGuardfileError error occurs
+/usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:188:in `block in and_raise': Guard::Guardfile::Evaluator::NoGuardfileError error! (Guard::Guardfile::Evaluator::NoGuardfileError)
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:761:in `block in call'
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:760:in `map'
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:760:in `call'
@@ -1421,7 +2158,7 @@
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:45:in `invoke'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/exe/rspec:4:in `<main>'
         shows error message
-/usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:188:in `block in and_raise': Guard::Dsl::Error error! (Guard::Dsl::Error)
+/usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:188:in `block in and_raise': Guard::Guardfile::Evaluator::NoGuardfileError error! (Guard::Guardfile::Evaluator::NoGuardfileError)
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:761:in `block in call'
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:760:in `map'
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:760:in `call'
@@ -1476,1255 +2213,539 @@
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:45:in `invoke'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/exe/rspec:4:in `<main>'
         aborts
-    with no_bundler_warning option
-      starts guard
-      does not verify bundler presence
     without no_bundler_warning option
       verifies bundler presence
       without a valid bundler setup
         does not start guard
+    with no_bundler_warning option
+      starts guard
+      does not verify bundler presence
 
-GuardReloader
-  when running with bundler
-    sets up bundler
-  when not running with bundler
-    when running with rubygems_gemdeps
-      sets up rubygems
-    when not running with rubygems_gemdeps
-      when running as binstub
-        when the relative Gemfile exists
-          sets the Gemfile
-          sets up bundler
-        when the relative Gemfile does not exist
-          does not setup bundler
-          does not setup rubygems
-          shows no warning
-      when not run as binstub
-        when no Gemfile exists
-          shows no warning
-        when Gemfile exists
-          shows a warning
-
-Guard::Internals::Plugins
-  #remove
-    removes given plugin
-  #all
-    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
-    find plugins matching a regexp
-      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
-    find a plugin by as string
-      returns an array of plugins if plugins are found
-
-Guard::UI
-  .clear
-    with UI set up and ready
-      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
-  .action_with_scopes
-    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
-    with a plugins scope
-      shows the plugin scoped action
-    with a groups scope
-      shows the group scoped action
-  .warning
-    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
-        allows logging matching messages
-        prevents logging other messages
-  .info
-    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
-  .debug
-    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
-        allows logging matching messages
-        prevents logging other messages
-  .options=
-    sets the logger options
-  .logger
-    with no logger set yet
-      returns the logger instance
-      sets the logger device
-  .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
-  .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
-  .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
-        allows logging matching messages
-        prevents logging other messages
-
-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
-  with a valid Guard group scope
-    triggers the :reload action with the given scope
-  without scope
-    triggers the :reload action
-
-Guard::Watcher::Pattern::PathnamePath
+Guard::Watcher::Pattern::SimplePath
   #match result
-    when constructed with an unclean Pathname
+    when constructed with filename string
       when matched file is an unclean Pathname
         when filename matches
-          is expected to eq [#<Pathname:foo.rb>]
+          is expected to eq ["foo.rb"]
         when filename does not match
           is expected to be nil
       when matched file is a string
         when filename does not match
           is expected to be nil
         when filename matches
-          is expected to eq [#<Pathname:foo.rb>]
+          is expected to eq ["foo.rb"]
+
+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::Plugin
+  #hook
+    passes the hooks name
+    notifies the hooks
+    accepts extra arguments
+  #initialize
+    assigns the defined watchers
+    assigns the defined options
+    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
+  .add_callback
+    can add multiple callbacks
+    can add a run_on_modifications callback
+  with a plugin instance
+    #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
+    #title
+      outputs the plugin title
+  .notify
+    runs callbacks only for the guard given
+    sends :call to the given Guard class's start_begin callback
+    sends :call to the given Guard class's start_begin callback
+    runs only the given callbacks
+
+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::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 groups scope
         displays the group scope title in the prompt
+      Guard is paused
+        displays 'pause'
       with a plugins scope
         displays the group scope title in the prompt
       Guard is not paused
         displays 'guard'
-    Guard is using Pry < 0.13
-      displays 'guard'
-      does not call Pry::Prompt.new
+  #foreground
+
    prevents the Pry thread from being killed too quickly
+
    waits for Pry thread to finish
+
    return :stopped when brought into background
   #background
 
    kills the Pry thread
   #_setup
-    Guard is using Pry < 0.13
-      calls Pry.config.history.file=
     Guard is using Pry >= 0.13
       calls Pry.config.history_file=
-  #foreground
-
    prevents the Pry thread from being killed too quickly
-
    return :stopped when brought into background
-
    waits for Pry thread to finish
-
-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::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 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 only default groups
-      initializes the groups
+    Guard is using Pry < 0.13
+      calls Pry.config.history.file=
 
-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
+Guard::Watcher::Pattern::Matcher
+  #==
+    returns true for equal matchers
+    returns false for unequal matchers
+  #match
+    when constructed with valid matcher object
+      when matched against a String
+        passes a Pathname to the matcher
+        returns the match result
+      when matched against a Pathname
+        returns the match result
+        passes the Pathname to the matcher
+  integration
+    #match result
+      when constructed with valid regexp
+        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 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 filename does not match
-          is expected to be nil
 
-Guard::Commands::Scope
-  without scope
-    does not call :scope= and shows usage
-  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
+Guard::Internals::Debugging
+  #stop
+    when already started
+      untraces Kernel.system
+      untraces Kernel.`
+      untraces Open3.popen3
+      sets logger level to info
+    when not started
+      does not set logger level
+  #start
+    traces Kernel.spawn
+    traces Open3.popen3
+    traces Kernel.system
+    traces Kernel.`
+    when already started
+      does not set log level
+    when not started
+      sets logger to debug
+      makes threads abort on exceptions
 
-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 .*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)
+Guard::DslDescriber
+  .show
+    shows the Guards and their options
+  #list
+    lists the available Guards declared as strings or symbols
+  .notifiers
+    properly connects and disconnects
+    shows the notifiers and their options
 
-Guard
-  ._relative_pathname
-    with file in parent directory
-      is expected to eq #<Pathname:../foo>
-    with file on another drive (e.g. Windows)
-      is expected to eq #<Pathname:d:/project/foo>
-    with file within project
-      is expected to eq #<Pathname:spec/models/foo_spec.rb>
-    with file in project directory
-      is expected to eq #<Pathname:foo>
-  .setup
-    displays an error message when no guard are defined in Guardfile
-    initializes the interactor
-    initializes the listener
-    returns itself for chaining
-    connects to the notifier
-    evaluates the Guardfile
-    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
-    UI
-      when clearing is configured
-        is expected to have received reset_and_clear(*(any args)) 1 time
-    with the group option
-      passes options to session
-    trapping signals
-      sets up USR2 trap for unpausing
-      sets up INT trap for cancelling or quitting interactor
-      sets up USR1 trap for pausing
-    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
-  #relevant_changes?
-    example at ./spec/lib/guard_spec.rb:247 (PENDING: Not yet implemented)
+Guard::Commands::Notification
+  toggles the Guard notifier
 
-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::Cli::Environments::Bundler
+  #verify
+    without an existing Gemfile
+      does not show the Bundler warning
+    with an existing Gemfile
+      with Bundler
+        does not show the Bundler warning
+      without Bundler
+        without Rubygems Gemfile handling
+          shows the Bundler warning
+        with Rubygems Gemfile autodetection or custom Gemfile
+          does not show the Bundler warning
 
 Guard::Config
-  is expected to respond to #strict?
   is expected to respond to #silence_deprecations?
+  is expected to respond to #strict?
   .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::Commands::All
-  with a valid Guard group scope
-    runs the :run_all action with the given scope
-  with an invalid scope
-    does not run the action
-  with a valid Guard plugin scope
-    runs the :run_all action with the given scope
-  without scope
-    runs the :run_all action
-
-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 a name match via a symbol
-        returns the value by name
-      when asked for the first item
-        returns the full original value
+Guard::Interactor
+  .options & .options=
+    returns {} by default
+    options set to { foo: :bar }
+      returns { foo: :bar }
+  job selection
+    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
+    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
+    #background
+      wakes up from sleep
+    #handle_interrupt
+      interrupts sleep
+    #foreground
+      sleeps
+  when enabled
+    #foreground
+      starts Pry
+    #background
+      hides Pry
+    #handle_interrupt
+      interrupts Pry
+  .enabled & .enabled=
+    returns true by default
+    interactor not enabled
+      returns false
 
 Guard::Watcher
   .match_files
-    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
     with a watcher action without parameter
       for a watcher that matches information objects
+        returns a single file specified within the action
+        combines the results of different actions
         returns nothing if the action returns empty string
+        returns the evaluated addition argument in an array
         returns nothing if the action response is empty string
         returns multiple files specified within the action
-        returns a single file specified within the action
-        returns the evaluated addition argument in an array
-        combines the results of different actions
       for a watcher that matches file strings
-        combines files from results of different actions
-        returns nothing if the action returns nothing
-        returns multiple files specified within the action
         returns a single file specified within the action
         returns nothing if the action response is empty
+        returns nothing if the action returns nothing
+        returns multiple files specified within the action
+        combines files from results of different actions
         when action returns non-string or array of non-strings
           returns nothing
+    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 an exception that is raised
+      displays the error and backtrace
     with a watcher action that takes a parameter
       for a watcher that matches information objects
-        returns nothing if the action response is empty string
         returns a hash specified within the action
         returns a substituted single file specified within the action
+        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
       for a watcher that matches file strings
-        combines results of different actions
-        returns nothing if action returns non-string or non-string array
         returns multiple files specified within the action
-        returns nothing if the action response is empty
+        combines results of different actions
         returns nothing if the action returns nothing
+        returns nothing if the action response is empty
+        returns nothing if action returns non-string or non-string array
         returns a substituted single file specified within the action
-    with an exception that is raised
-      displays the error and backtrace
-    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
-  #==
-    returns false for unequal watchers
-    returns true for equal watchers
+    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
+  #initialize
+    with no arguments
+      raises an error
+    with a pattern parameter
+      creates a matcher
   #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 a pattern parameter
-      creates a matcher
-    with no arguments
-      raises an error
+        when matching is not successful
+          returns nil
+  #action
+    sets the action to nothing by default
+    sets the action to the supplied block
+  #==
+    returns false for unequal watchers
+    returns true for equal watchers
   integration
     #match
       with a named regexp pattern
         with a watcher that matches a file
-          provides the match by name
           is expected to eq "bar"
-  #action
-    sets the action to the supplied block
-    sets the action to nothing by default
-
-Guard::Interactor
-  when enabled
-    #handle_interrupt
-      interrupts Pry
-    #background
-      hides Pry
-    #foreground
-      starts Pry
-  when disabled
-    #background
-      wakes up from sleep
-    #handle_interrupt
-      interrupts sleep
-    #foreground
-      sleeps
-  .options & .options=
-    returns {} by default
-    options set to { foo: :bar }
-      returns { foo: :bar }
-  job selection
-    when enabled from the DSL
-      when enabled from the commandline
-        is expected to be enabled
-        uses only pry
-      when disabled from the commandline
-        is expected to be enabled
-        uses only sleeper
-    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
-  .enabled & .enabled=
-    returns true by default
-    interactor not enabled
-      returns false
-
-Guard::Commands::Show
-  tells Guard to output DSL description
-
-Guard::UI::Logger::Config
-  #level=
-    with a valid value
-      stores the level
-  defaults
-    flushes device by default
-
-Guard::Deprecated::Watcher
-  .match_guardfile?
-    displays a deprecation warning to the user
-    matches against current guardfile
-
-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 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 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 true for equal matchers
-    returns false for unequal matchers
-
-Guard::Group
-  #to_s
-    is expected to eq "#<Guard::Group @name=foo @options={}>"
-  #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}
-  #title
-    is expected to eq "Foo"
-
-Guard::Dsl
-  #clear
-    with clear :on
-      enabled clearing the screen after every task
-    with clear :off
-      disables clearing the screen after every task
-  #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
-  #guard
-    with symbol for name
-      loads a guard specified as a symbol from the DSL
-    with groups
-      adds plugin with group info
-    with name as symbol in parens
-      adds the plugin
-    with single-quoted name
-      loads a guard specified as a quoted string from the DSL
-    with options
-      passes options to plugin
-    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
-  #scope
-    with any parameters
-      sets the guardfile's default scope
-  #callback
-    with
-      creates callbacks for the guard
-    without a guard block
-      fails
-  #ignore
-    with multiple ignore calls
-      adds all ignored regexps to the listener
-    with ignore regexps
-      adds ignored regexps to the listener
-  #notification
-    with multiple notifications
-      adds multiple notifiers
-    when notification
-      adds a notification to the notifier
-  #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
-  #filter alias method
-    is expected to eq #<UnboundMethod: Guard::Dsl#ignore(*regexps) /build/ruby-guard-2.18.0/lib/guard/dsl.rb:267>
-  #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
-  #filter! alias method
-    is expected to eq #<UnboundMethod: Guard::Dsl#ignore!(*regexps) /build/ruby-guard-2.18.0/lib/guard/dsl.rb:282>
-  #interactor
-    with interactor options
-      passes the options to the interactor
-    with interactor :off
-      disables the interactions with :off
-  #group
-    with a valid guardfile
-      evaluates all groups
-    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
-  #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
-        shows a warning
-        removes the options
-    options
-      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 array of symbols and string
-        is expected to have received options=({:except=>/rspec|cucumber|jasmine/i}) 1 time
-      with a logger only filter from a symbol
-        is expected to have received options=({:only=>/cucumber/i}) 1 time
-      with logger except filter from a string
-        is expected to have received options=({:except=>/jasmine/i}) 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 a logger time format
-        is expected to have received options=({:time_format=>"%Y"}) 1 time
-
-Guard::DslReader
-  #scope signature
-    matches base signature
-  #guard signature
-    matches base signature
-  #initialize signature
-    matches base signature
-  plugin_names
-    returns encountered names
-  #clearing signature
-    matches base signature
-  #directories signature
-    matches base signature
-  #ignore signature
-    matches base signature
-  #callback signature
-    matches base signature
-  #group signature
-    matches base signature
-  #logger signature
-    matches base signature
-  guard
-    when it is a Symbol
-      reports the name as a String
-      works without errors
-    when it is a String
-      works without errors
-      reports the name as a String
-  #notification signature
-    matches base signature
-  #ignore! signature
-    matches base signature
-  #interactor signature
-    matches base signature
-  #watch signature
-    matches base signature
-  notification
-    handles arguments without errors
-
-Guard::DslDescriber
-  .show
-    shows the Guards and their options
-  #list
-    lists the available Guards declared as strings or symbols
-  .notifiers
-    shows the notifiers and their options
-    properly connects and disconnects
-
-Guard::Deprecated::Dsl
-  .evaluate_guardfile
-    displays a deprecation warning to the user
-    delegates to Guard::Guardfile::Generator
-
-Guard::Internals::Traps
-  .handle
-    with an unsupported signal name
-      does not set a handler
-    with a supported signal name
-      sets up a handler
-
-Guard::Cli::Environments::Bundler
-  #verify
-    with an existing Gemfile
-      without Bundler
-        without Rubygems Gemfile handling
-          shows the Bundler warning
-        with Rubygems Gemfile autodetection or custom Gemfile
-          does not show the Bundler warning
-      with Bundler
-        does not show the Bundler warning
-    without an existing Gemfile
-      does not show the Bundler warning
-
-Guard::Deprecated::Guard
-  .get_guard_class
-    delegates to Guard::PluginUtil
-    displays a deprecation warning to the user
-    :fail_gracefully
-      pass it to get_guard_class
-  .add_guard
-    delegates to Guard.plugins
-    displays a deprecation warning to the user
-  .group
-    provides a similar implementation
-    show deprecation warning
-  .add_plugin
-    show deprecation warning
-    adds a plugin
-  evaluator
-    show deprecation warning
-  .lock
-    show deprecation warning
-  .scope=
-    provides a similar implementation
-    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
-  .guards
-    displays a deprecation warning to the user
-    delegates to Plugins
-  reset_evaluator
-    show deprecation warning
-  .running
-    show deprecation warning
-  .add_group
-    show deprecation warning
-    adds a group
-  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 false
-        sets the clearing option accordingly
-      when being set to true
-        sets the clearing option accordingly
-  .plugins
-    provides a similar implementation
-    show deprecation warning
-  .plugin
-    show deprecation warning
-    provides a similar implementation
-  evaluate_guardfile
-    show deprecation warning
-    evaluates the guardfile
-  .groups
-    show deprecation warning
-    provides a similar implementation
-  .locate_guard
-    displays a deprecation warning to the user
-    delegates to Guard::PluginUtil
-
-Guard::PluginUtil
-  #initialize_plugin
-    with a plugin inheriting from Guard::Plugin
-      instantiate the plugin using the new API
-  #initialize
-    accepts a name with guard-
-    accepts a name without guard-
-  #plugin_class
-    reports an error if the class is not found
-    with a name with underscores
-      returns the Guard class
-    with a name like VSpec
-      returns the Guard class
-    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
-    when set to fail gracefully
-      does not print error messages on fail
-    with a name with dashes
-      returns the Guard class
-  #plugin_location
-    returns the path of a Guard gem
-  #add_to_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_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)
-
-Guard::Internals::Tracing
-  Module method tracing
-    when not tracing
-      with command arguments
-        when #system
-          does not output anything
-          is expected to eq true
-      with no command arguments
-        when #system
-          is expected to eq true
-          does not output anything
-        when backticks
-          does not output anything
-          is expected to eq ""
-    when tracing
-      with command arguments
-        when #system
-          outputs command arguments
-          is expected to eq true
-      with no command arguments
-        when backticks
-          outputs command
-          is expected to eq ""
-        when #system
-          is expected to eq true
-          outputs command
-
-Guard::Options
-  .initialize
-    has indifferent access
-    merges the sensible defaults to the given options
-    can be passed defaults
-    handles nil options
+          provides the match by name
 
-Guard::Internals::Session
-  .convert_scope
-    returns a plugin scope
-    returns a group scope
-    returns multiple plugin scopes
-    returns a plugin and group scope
-    returns multiple group scopes
-    returns the unkown scopes
-  #guardfile_notification=
-    when unset
-      is expected to eq {:notifiers=>{}, :notify=>true}
-    when set multiple times from guardfile
-      merges results
-    when set from guardfile
-      is expected to eq {:notifiers=>{:foo=>{:bar=>:baz}}, :notify=>true}
-  #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/]
-  #guardfile_ignore_bang=
-    when set from guardfile
-      is expected to eq [/foo/]
-    when unset
-      is expected to eq []
-  #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
-    when set from guardfile
-      when set to :on
-        is expected to be clearing
-      when set to :off
-        is expected not to be clearing
-  #guardfile_scope
-    with a groups scope
-      sets the groups
-    with a group scope
-      sets the groups
-    with a plugins scope
-      sets the plugins
-    with a plugin scope
-      sets the plugins
-  #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/ruby-guard-2.18.0", {:force_polling=>true}]
-      with latency option
-        is expected to eq [:to, "/build/ruby-guard-2.18.0", {:latency=>1.5}]
-    with the plugin option
-      initializes the plugin scope
-    with the group option
-      initializes the group scope
+Guard::Watcher::Pattern::PathnamePath
+  #match result
+    when constructed with an unclean Pathname
+      when matched file is an unclean Pathname
+        when filename does not match
+          is expected to be nil
+        when filename matches
+          is expected to eq [#<Pathname:foo.rb>]
+      when matched file is a string
+        when filename matches
+          is expected to eq [#<Pathname:foo.rb>]
+        when filename does not match
+          is expected to be nil
 
 Guard::Runner
   #run_on_changes
     always calls UI.clearable
-    when clearable
-      clear UI
-    with no changes
-      does not run any task
-    with matching removed paths
-      executes the :run_on_removals task
     with non-matching removed paths
       does not call tasks
-    with modified files but modified paths is empty
-      does not call run anything
     with modified paths
       executes the :run_first_task_found task
+    with no changes
+      does not run any task
+    with added files but added paths is empty
+      does not call run anything
     with added paths
       executes the :run_on_additions task
-    with added files but added paths is empty
+    with modified files but modified paths is empty
       does not call run anything
-  #_supervise
-    executes the task on the passed guard
-    with a task that raises an exception
-      calls the default begin hook but not the default end hook
-      returns the exception
-      removes the Guard
-      display an error to the user
-    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 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
-        returns the result of the task
-        does not remove the Guard
+    with matching removed paths
+      executes the :run_on_removals task
+    when clearable
+      clear UI
   #run
     executes supervised task on all registered plugins implementing it
     marks an action as unit of work
     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
+    with no scope
+      executes the supervised task using current scope
   .stopping_symbol_for
-    for a group without :halt_on_fail
-      returns :task_has_failed
     for a group with :halt_on_fail
       returns :no_catch
-
-Guard::Guardfile::Evaluator
-  .guardfile_include?
-    when plugin is not present
-      returns false
-    when plugin is present
-      returns true
-  .evaluate
-    selection of the Guardfile data contents
-      with a valid :contents option
-        with inline content and other Guardfiles available
-          gives ultimate precedence to inline content
-    error cases
-      with no Guardfile at all
-        displays an error message and exits
-      with Guardfile as guardfile.rb
-        evalutates guardfile.rb
-      when provided :contents is nil
-        does not raise error and skip it
-      with an invalid Guardfile
-        displays an error message and raises original exception
-      with empty Guardfile content
-        displays an error message about no plugins
-      with a problem reading a Guardfile
-/build/ruby-guard-2.18.0/spec/lib/guard/guardfile/evaluator_spec.rb:73:in `block (6 levels) in <top (required)>': Permission denied - permission error (Errno::EACCES)
-	from /build/ruby-guard-2.18.0/spec/spec_helper.rb:91:in `block in stub_file'
-	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:761:in `block in call'
-	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:760:in `map'
-	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:760:in `call'
-	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:621:in `invoke_incrementing_actual_calls_by'
-	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:474:in `invoke'
-	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/proxy.rb:208:in `message_received'
-	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/method_double.rb:91:in `proxy_method_invoked'
-	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/verifying_proxy.rb:161:in `proxy_method_invoked'
-	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/method_double.rb:67:in `block (2 levels) in define_proxy_method'
-	from /build/ruby-guard-2.18.0/lib/guard/guardfile/evaluator.rb:202:in `_read'
-	from /build/ruby-guard-2.18.0/lib/guard/guardfile/evaluator.rb:189:in `block in _use_default!'
-	from /build/ruby-guard-2.18.0/lib/guard/guardfile/evaluator.rb:187:in `each'
-	from /build/ruby-guard-2.18.0/lib/guard/guardfile/evaluator.rb:187:in `_use_default!'
-	from /build/ruby-guard-2.18.0/lib/guard/guardfile/evaluator.rb:90:in `evaluate'
-	from /build/ruby-guard-2.18.0/spec/lib/guard/guardfile/evaluator_spec.rb:79:in `block (6 levels) in <top (required)>'
-	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/matchers/built_in/raise_error.rb:59:in `matches?'
-	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/handler.rb:51:in `block in handle_matcher'
-	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/handler.rb:27:in `with_matcher'
-	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/handler.rb:48:in `handle_matcher'
-	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/expectation_target.rb:65:in `to'
-	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/expectation_target.rb:139:in `to'
-	from /build/ruby-guard-2.18.0/spec/lib/guard/guardfile/evaluator_spec.rb:79:in `block (5 levels) in <top (required)>'
-	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:263:in `instance_exec'
-	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:263:in `block in run'
-	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:511:in `block in with_around_and_singleton_context_hooks'
-	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:468:in `block in with_around_example_hooks'
-	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/hooks.rb:486:in `block in run'
-	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/hooks.rb:624:in `run_around_example_hooks_for'
-	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/hooks.rb:486:in `run'
-	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:468:in `with_around_example_hooks'
-	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:511:in `with_around_and_singleton_context_hooks'
-	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:259:in `run'
-	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb:646:in `block in run_examples'
-	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb:642:in `map'
-	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb:642:in `run_examples'
-	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb:607:in `run'
-	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb:608:in `block in run'
-	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb:608:in `map'
-	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb:608:in `run'
-	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb:608:in `block in run'
-	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb:608:in `map'
-	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb:608:in `run'
-	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb:608:in `block in run'
-	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb:608:in `map'
-	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb:608:in `run'
-	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'
-	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:121:in `map'
-	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'
-	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/configuration.rb:2070:in `with_suite_hooks'
-	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:116:in `block in run_specs'
-	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/reporter.rb:74:in `report'
-	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:115:in `run_specs'
-	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:89:in `run'
-	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:71:in `run'
-	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:45:in `invoke'
-	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/exe/rspec:4:in `<main>'
-        displays an error message and exits
-      with a non-existing Guardfile given
-        raises error
-  #inline?
-    when guardfile_contents is provided
-      is expected to be inline
-    when no content is provided
-      is expected not to be inline
-    when contents is provided
-      is expected to be inline
-
-Guard::Commander
-  .run_all
-    with a given scope
-      runs all with the scope
-    with an empty scope
-      runs all
-  .start
-    tell the runner to run the :start task
-    calls Guard setup
-    displays an info message
-    start the listener
-    when setup raises an error
-      calls Commander#stop
-    when listener.start raises an error
-      calls Commander#stop
-    when finished
-      stops everything
-  .pause
-    when unpaused
-      with :toggle
-        pauses
-        shows a message
-      with :unpaused
-        does nothing
-      with invalid parameter
-        raises an ArgumentError
-      with :paused
-        pauses
-        shows a message
-      with nil
-        pauses
-        shows a message
-    when already paused
-      with :unpaused
-        shows a message
-        unpauses
-      with nil
-        unpauses
-        shows a message
-      with :paused
-        does nothing
-      with :toggle
-        shows a message
-        unpauses
-      with invalid parameter
-        raises an ArgumentError
-  .show
-    shows list of plugins
-  .stop
-    tell the runner to run the :stop task
-    turns the notifier off
-    turns off the interactor
-    stops the listener
-  .reload
-    reloads Guard
-    clears the screen
-
-Guard::Commands::Pause
-  tells Guard to pause
+    for a group without :halt_on_fail
+      returns :task_has_failed
+  #_supervise
+    executes the task on the passed guard
+    with a task that raises an exception
+      removes the Guard
+      returns the exception
+      display an error to the user
+      calls the default begin hook but not the default end hook
+    with a task that succeeds
+      with arguments
+        returns the result of the task
+        does not remove the Guard
+      without any arguments
+        passes the result of the supervised method to the :end hook
+        returns the result of the task
+        does not remove the Guard
+        calls :begin and :end hooks
+    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
 
 Guard::Notifier
-  toggle_notification
-    with available notifiers
-      when currently on
-        suspends notifications
-      when currently off
-        resumes notifications
   .notify
-    with multiple parameters
-      notifies
     with a runtime error
       shows an error
     with no options
       notifies
-
-Guard::Deprecated::Guardfile
-  .create_guardfile
-    delegates to Guard::Guardfile::Generator
-    displays a deprecation warning to the user
-  .initialize_template
-    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
-
-Guard::Internals::Debugging
-  #stop
-    when already started
-      sets logger level to info
-      untraces Open3.popen3
-      untraces Kernel.system
-      untraces Kernel.`
-    when not started
-      does not set logger level
-  #start
-    traces Kernel.spawn
-    traces Kernel.system
-    traces Kernel.`
-    traces Open3.popen3
-    when already started
-      does not set log level
-    when not started
-      sets logger to debug
-      makes threads abort on exceptions
+    with multiple parameters
+      notifies
+  toggle_notification
+    with available notifiers
+      when currently off
+        resumes notifications
+      when currently on
+        suspends notifications
 
 Guard::Internals::Scope
+  #titles
+    example at ./spec/lib/guard/internals/scope_spec.rb:93 (PENDING: Not yet implemented)
   #to_hash
-    :group
+    :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
-      when set from interactor
-        uses interactor scope
-    :plugin
+    :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 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::Commands::Notification
-  toggles the Guard notifier
+Guard
+  .setup
+    connects to the notifier
+    initializes the interactor
+    initializes the listener
+    returns itself for chaining
+    displays an error message when no guard are defined in Guardfile
+    evaluates the Guardfile
+    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!([/bar/]) 1 time
+        is expected to have received ignore([/foo/]) 1 time
+    UI
+      when clearing is configured
+        is expected to have received reset_and_clear(*(any args)) 1 time
+    with the plugin option
+      passes options to session
+    trapping signals
+      sets up INT trap for cancelling or quitting interactor
+      sets up USR1 trap for pausing
+      sets up USR2 trap for unpausing
+    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
+  #relevant_changes?
+    example at ./spec/lib/guard_spec.rb:247 (PENDING: Not yet implemented)
+  ._relative_pathname
+    with file within project
+      is expected to eq #<Pathname:spec/models/foo_spec.rb>
+    with file in project directory
+      is expected to eq #<Pathname:foo>
+    with file in parent directory
+      is expected to eq #<Pathname:../foo>
+    with file on another drive (e.g. Windows)
+      is expected to eq #<Pathname:d:/project/foo>
 
-Guard::Guardfile::Generator
-  has a valid Guardfile template
-  #create_guardfile
-    with an existing Guardfile
-      does not display information
-      does not copy the Guardfile template or notify the user
-      aborts
-      displays an error message
-    without an existing Guardfile
-      copies the Guardfile template and notifies the user
-      does not display any kind of error or abort
-  #initialize_template
-    with an installed Guard implementation
-      initializes the Guard
-    when the passed guard can't be found
-      notifies the user about the problem
-    with a user defined template
-      copies the Guardfile template and initializes the Guard
-  #initialize_all_templates
-    calls Guard.initialize_template on all installed plugins
+Guard::Commands::Show
+  tells Guard to output DSL description
 
-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 method
-        returns $stderr
-      when accessed as a string
-        returns $stderr
-      when accessed as a symbol
-        returns $stderr
+Guard::Options
+  .initialize
+    merges the sensible defaults to the given options
+    has indifferent access
+    handles nil options
+    can be passed defaults
+
+Guard::Commands::Scope
+  with an invalid scope
+    does not change the scope and shows unknown scopes
+  without scope
+    does not call :scope= and shows usage
+  with a valid Guard plugin scope
+    runs the :scope= action with the given scope
+  with a valid Guard group scope
+    sets up the scope with the given scope
+
+Guard::Watcher::Pattern
+  .create
+    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 Pathname is given
+      is expected to be a kind of Guard::Watcher::Pattern::PathnamePath
+    when a custom matcher
+      is expected to be a kind of Guard::Watcher::Pattern::Matcher
+
+Guard::Deprecated::Guardfile
+  .initialize_all_templates
+    delegates to Guard::Guardfile::Generator
+    displays a deprecation warning to the user
+  .create_guardfile
+    delegates to Guard::Guardfile::Generator
+    displays a deprecation warning to the user
+  .initialize_template
+    displays a deprecation warning to the user
+    delegates to Guard::Guardfile::Generator
+
+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::Pause
+  tells Guard to pause
 
 Guard::CLI
   #version
     shows the current version
-  #list
-    calls the evaluation
-    outputs the Guard plugins list
   #init
-    delegates to Guard::Environment.start
-    passes plugin names
     passes options
+    delegates to Guard::Environment.start
     exits with given exit code
+    passes plugin names
   #notifiers
     calls the evaluation
     outputs the notifiers list
-  #show
-    outputs the Guard::DslDescriber.list result
+  #list
+    outputs the Guard plugins list
     calls the evaluation
   #start
-    passes options
     exits with given exit code
     delegates to Guard::Environment.start
+    passes options
+  #show
+    outputs the Guard::DslDescriber.list result
+    calls the evaluation
 
 Guard::Cli::Environments::EvaluateOnly
   #evaluate
     calls Guard.init
+    evaluates the guardfile
     passes options to evaluator
     initializes Guard with options
-    evaluates the guardfile
-    when a Guard::Guardfile::Evaluator::NoCustomGuardfile error occurs
-/usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:188:in `block in and_raise': Guard::Guardfile::Evaluator::NoCustomGuardfile error! (Guard::Guardfile::Evaluator::NoCustomGuardfile)
+    when a Guard::Guardfile::Evaluator::NoGuardfileError error occurs
+/usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:188:in `block in and_raise': Guard::Guardfile::Evaluator::NoGuardfileError error! (Guard::Guardfile::Evaluator::NoGuardfileError)
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:761:in `block in call'
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:760:in `map'
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:760:in `call'
@@ -2776,7 +2797,7 @@
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:45:in `invoke'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/exe/rspec:4:in `<main>'
       aborts
-/usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:188:in `block in and_raise': Guard::Guardfile::Evaluator::NoCustomGuardfile error! (Guard::Guardfile::Evaluator::NoCustomGuardfile)
+/usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:188:in `block in and_raise': Guard::Guardfile::Evaluator::NoGuardfileError error! (Guard::Guardfile::Evaluator::NoGuardfileError)
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:761:in `block in call'
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:760:in `map'
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:760:in `call'
@@ -2821,8 +2842,8 @@
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:45:in `invoke'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/exe/rspec:4:in `<main>'
       shows error message
-    when a Guard::Guardfile::Evaluator::NoPluginsError error occurs
-/usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:188:in `block in and_raise': Guard::Guardfile::Evaluator::NoPluginsError error! (Guard::Guardfile::Evaluator::NoPluginsError)
+    when a Guard::Guardfile::Evaluator::NoCustomGuardfile error occurs
+/usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:188:in `block in and_raise': Guard::Guardfile::Evaluator::NoCustomGuardfile error! (Guard::Guardfile::Evaluator::NoCustomGuardfile)
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:761:in `block in call'
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:760:in `map'
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:760:in `call'
@@ -2834,7 +2855,14 @@
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/verifying_proxy.rb:161:in `proxy_method_invoked'
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/method_double.rb:67:in `block (2 levels) in define_proxy_method'
 	from /build/ruby-guard-2.18.0/lib/guard/cli/environments/evaluate_only.rb:21:in `evaluate'
-	from /build/ruby-guard-2.18.0/spec/lib/guard/cli/environments/evaluate_only_spec.rb:68:in `block (5 levels) in <top (required)>'
+	from /build/ruby-guard-2.18.0/spec/lib/guard/cli/environments/evaluate_only_spec.rb:62:in `block (6 levels) in <top (required)>'
+	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/matchers/built_in/raise_error.rb:59:in `matches?'
+	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/handler.rb:51:in `block in handle_matcher'
+	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/handler.rb:27:in `with_matcher'
+	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/handler.rb:48:in `handle_matcher'
+	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/expectation_target.rb:65:in `to'
+	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/expectation_target.rb:139:in `to'
+	from /build/ruby-guard-2.18.0/spec/lib/guard/cli/environments/evaluate_only_spec.rb:62:in `block (5 levels) in <top (required)>'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:263:in `instance_exec'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:263:in `block in run'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:511:in `block in with_around_and_singleton_context_hooks'
@@ -2866,8 +2894,8 @@
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:71:in `run'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:45:in `invoke'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/exe/rspec:4:in `<main>'
-      shows error message
-/usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:188:in `block in and_raise': Guard::Guardfile::Evaluator::NoPluginsError error! (Guard::Guardfile::Evaluator::NoPluginsError)
+      aborts
+/usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:188:in `block in and_raise': Guard::Guardfile::Evaluator::NoCustomGuardfile error! (Guard::Guardfile::Evaluator::NoCustomGuardfile)
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:761:in `block in call'
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:760:in `map'
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:760:in `call'
@@ -2879,14 +2907,7 @@
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/verifying_proxy.rb:161:in `proxy_method_invoked'
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/method_double.rb:67:in `block (2 levels) in define_proxy_method'
 	from /build/ruby-guard-2.18.0/lib/guard/cli/environments/evaluate_only.rb:21:in `evaluate'
-	from /build/ruby-guard-2.18.0/spec/lib/guard/cli/environments/evaluate_only_spec.rb:62:in `block (6 levels) in <top (required)>'
-	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/matchers/built_in/raise_error.rb:59:in `matches?'
-	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/handler.rb:51:in `block in handle_matcher'
-	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/handler.rb:27:in `with_matcher'
-	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/handler.rb:48:in `handle_matcher'
-	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/expectation_target.rb:65:in `to'
-	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/expectation_target.rb:139:in `to'
-	from /build/ruby-guard-2.18.0/spec/lib/guard/cli/environments/evaluate_only_spec.rb:62:in `block (5 levels) in <top (required)>'
+	from /build/ruby-guard-2.18.0/spec/lib/guard/cli/environments/evaluate_only_spec.rb:68:in `block (5 levels) in <top (required)>'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:263:in `instance_exec'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:263:in `block in run'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:511:in `block in with_around_and_singleton_context_hooks'
@@ -2918,7 +2939,7 @@
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:71:in `run'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:45:in `invoke'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/exe/rspec:4:in `<main>'
-      aborts
+      shows error message
     when a Guard::Dsl::Error error occurs
 /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:188:in `block in and_raise': Guard::Dsl::Error error! (Guard::Dsl::Error)
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:761:in `block in call'
@@ -2932,7 +2953,14 @@
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/verifying_proxy.rb:161:in `proxy_method_invoked'
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/method_double.rb:67:in `block (2 levels) in define_proxy_method'
 	from /build/ruby-guard-2.18.0/lib/guard/cli/environments/evaluate_only.rb:21:in `evaluate'
-	from /build/ruby-guard-2.18.0/spec/lib/guard/cli/environments/evaluate_only_spec.rb:68:in `block (5 levels) in <top (required)>'
+	from /build/ruby-guard-2.18.0/spec/lib/guard/cli/environments/evaluate_only_spec.rb:62:in `block (6 levels) in <top (required)>'
+	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/matchers/built_in/raise_error.rb:59:in `matches?'
+	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/handler.rb:51:in `block in handle_matcher'
+	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/handler.rb:27:in `with_matcher'
+	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/handler.rb:48:in `handle_matcher'
+	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/expectation_target.rb:65:in `to'
+	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/expectation_target.rb:139:in `to'
+	from /build/ruby-guard-2.18.0/spec/lib/guard/cli/environments/evaluate_only_spec.rb:62:in `block (5 levels) in <top (required)>'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:263:in `instance_exec'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:263:in `block in run'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:511:in `block in with_around_and_singleton_context_hooks'
@@ -2964,7 +2992,7 @@
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:71:in `run'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:45:in `invoke'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/exe/rspec:4:in `<main>'
-      shows error message
+      aborts
 /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:188:in `block in and_raise': Guard::Dsl::Error error! (Guard::Dsl::Error)
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:761:in `block in call'
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:760:in `map'
@@ -2977,14 +3005,7 @@
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/verifying_proxy.rb:161:in `proxy_method_invoked'
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/method_double.rb:67:in `block (2 levels) in define_proxy_method'
 	from /build/ruby-guard-2.18.0/lib/guard/cli/environments/evaluate_only.rb:21:in `evaluate'
-	from /build/ruby-guard-2.18.0/spec/lib/guard/cli/environments/evaluate_only_spec.rb:62:in `block (6 levels) in <top (required)>'
-	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/matchers/built_in/raise_error.rb:59:in `matches?'
-	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/handler.rb:51:in `block in handle_matcher'
-	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/handler.rb:27:in `with_matcher'
-	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/handler.rb:48:in `handle_matcher'
-	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/expectation_target.rb:65:in `to'
-	from /usr/share/rubygems-integration/all/gems/rspec-expectations-3.12.1/lib/rspec/expectations/expectation_target.rb:139:in `to'
-	from /build/ruby-guard-2.18.0/spec/lib/guard/cli/environments/evaluate_only_spec.rb:62:in `block (5 levels) in <top (required)>'
+	from /build/ruby-guard-2.18.0/spec/lib/guard/cli/environments/evaluate_only_spec.rb:68:in `block (5 levels) in <top (required)>'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:263:in `instance_exec'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:263:in `block in run'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:511:in `block in with_around_and_singleton_context_hooks'
@@ -3016,9 +3037,9 @@
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:71:in `run'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:45:in `invoke'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/exe/rspec:4:in `<main>'
-      aborts
-    when a Guard::Guardfile::Evaluator::NoGuardfileError error occurs
-/usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:188:in `block in and_raise': Guard::Guardfile::Evaluator::NoGuardfileError error! (Guard::Guardfile::Evaluator::NoGuardfileError)
+      shows error message
+    when a Guard::Guardfile::Evaluator::NoPluginsError error occurs
+/usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:188:in `block in and_raise': Guard::Guardfile::Evaluator::NoPluginsError error! (Guard::Guardfile::Evaluator::NoPluginsError)
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:761:in `block in call'
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:760:in `map'
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:760:in `call'
@@ -3070,7 +3091,7 @@
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:45:in `invoke'
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/exe/rspec:4:in `<main>'
       aborts
-/usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:188:in `block in and_raise': Guard::Guardfile::Evaluator::NoGuardfileError error! (Guard::Guardfile::Evaluator::NoGuardfileError)
+/usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:188:in `block in and_raise': Guard::Guardfile::Evaluator::NoPluginsError error! (Guard::Guardfile::Evaluator::NoPluginsError)
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:761:in `block in call'
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:760:in `map'
 	from /usr/share/rubygems-integration/all/gems/rspec-mocks-3.12.1/lib/rspec/mocks/message_expectation.rb:760:in `call'
@@ -3116,80 +3137,100 @@
 	from /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/exe/rspec:4:in `<main>'
       shows error message
 
-Guard::Commands::Change
-  without a file
-    does not run the :run_on_changes action
-  with a file
-    runs the :run_on_changes action with the given file
-  with multiple files
-    runs the :run_on_changes action with the given files
+Guard::Internals::Traps
+  .handle
+    with a supported signal name
+      sets up a handler
+    with an unsupported signal name
+      does not set a handler
 
-Guard::Plugin
-  #hook
-    accepts extra arguments
-    passes the hooks name
-    notifies the hooks
-  with a plugin instance
-    #title
-      outputs the plugin title
-    .non_namespaced_classname
-      remove the Guard:: namespace
-    .template
-      reads the default template
-    #to_s
-      output the short plugin name
-    .non_namespaced_name
-      remove the Guard:: namespace and downcase
-    #name
-      outputs the short plugin name
-  #initialize
-    assigns the defined watchers
-    assigns the defined options
-    with a callback
-      adds the callback
-    without a group in the options
-      assigns a default group
-    with a group in the options
-      assigns the given group
-  .add_callback
-    can add a run_on_modifications callback
-    can add multiple callbacks
-  .notify
-    runs only the given callbacks
-    runs callbacks only for the guard given
-    sends :call to the given Guard class's start_begin callback
-    sends :call to the given Guard class's start_begin callback
+Guard::Commander
+  .pause
+    when unpaused
+      with nil
+        shows a message
+        pauses
+      with :unpaused
+        does nothing
+      with :toggle
+        pauses
+        shows a message
+      with invalid parameter
+        raises an ArgumentError
+      with :paused
+        shows a message
+        pauses
+    when already paused
+      with :unpaused
+        shows a message
+        unpauses
+      with invalid parameter
+        raises an ArgumentError
+      with :toggle
+        unpauses
+        shows a message
+      with :paused
+        does nothing
+      with nil
+        shows a message
+        unpauses
+  .show
+    shows list of plugins
+  .start
+    calls Guard setup
+    tell the runner to run the :start task
+    start the listener
+    displays an info message
+    when listener.start raises an error
+      calls Commander#stop
+    when finished
+      stops everything
+    when setup raises an error
+      calls Commander#stop
+  .reload
+    clears the screen
+    reloads Guard
+  .run_all
+    with a given scope
+      runs all with the scope
+    with an empty scope
+      runs all
+  .stop
+    turns the notifier off
+    tell the runner to run the :stop task
+    stops the listener
+    turns off the interactor
 
 Pending: (Failures listed here are expected and do not affect your suite's status)
 
-  1) Guard#relevant_changes? 
-     # Not yet implemented
-     # ./spec/lib/guard_spec.rb:247
-
-  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
-
-  3) Guard::PluginUtil.plugin_names ignores guard-compat
+  1) Guard::PluginUtil.plugin_names ignores guard-compat
      # Temporarily skipped with xdescribe
      # ./spec/lib/guard/plugin_util_spec.rb:50
 
-  4) Guard::PluginUtil.plugin_names returns the list of embedded guard gems
+  2) Guard::PluginUtil.plugin_names returns the list of guard gems
      # Temporarily skipped with xdescribe
-     # ./spec/lib/guard/plugin_util_spec.rb:46
+     # ./spec/lib/guard/plugin_util_spec.rb:42
 
-  5) 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
 
-  6) Guard::Internals::Scope#titles 
+  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
+
+  5) Guard::Internals::Scope#titles 
      # Not yet implemented
      # ./spec/lib/guard/internals/scope_spec.rb:93
 
-Finished in 50.67 seconds (files took 1.92 seconds to load)
+  6) Guard#relevant_changes? 
+     # Not yet implemented
+     # ./spec/lib/guard_spec.rb:247
+
+Finished in 44.96 seconds (files took 1.75 seconds to load)
 627 examples, 0 failures, 6 pending
 
-Randomized with seed 43404
+Randomized with seed 60869
 
 
 ┌──────────────────────────────────────────────────────────────────────────────┐
@@ -3223,12 +3264,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/8386/tmp/hooks/B01_cleanup starting
+I: user script /srv/workspace/pbuilder/8386/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/8256 and its subdirectories
-I: Current time: Wed May 29 21:32:50 -12 2024
-I: pbuilder-time-stamp: 1717061570
+I: removing directory /srv/workspace/pbuilder/8386 and its subdirectories
+I: Current time: Fri Apr 28 17:12:14 +14 2023
+I: pbuilder-time-stamp: 1682651534