Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

v2.12.4

Cezary Baginski e2 released this

Bugfixes

  • #749 - fix broken auto-reloading

Downloads

v2.12.3

Cezary Baginski e2 released this · 3 commits to master since this release

Bugfixes

  • quickfix for #748 - fix so spawn() works on Windows

Downloads

v2.12.2

Cezary Baginski e2 released this · 7 commits to master since this release

Bugfixes

  • #743 - fix Gemfile handling
  • #744 - fix broken Ctrl-C handling

Downloads

v2.12.1

Cezary Baginski e2 released this · 16 commits to master since this release

Bugfix

  • #740 - Allow guard to work globally without bundler

Downloads

v2.12.0

Cezary Baginski e2 released this · 19 commits to master since this release

Bugfixes

  • #728 - fixed incompatibility (second parameter to notify() should be optional)

Improvements

  • #735 - Guard reloads automatically after config change

Downloads

v2.11.1

Cezary Baginski e2 released this · 39 commits to master since this release

Bugfixes

  • #715 - allow minitest to work from Rakefile (when guard-minitest is used)

Downloads

v2.11.0

Cezary Baginski e2 released this · 42 commits to master since this release

Bugfixes

  • #710 - regression fixed - clearing :on should work again
  • #714 - fix missing require needed for Guard::Jasmine to work in cli mode
  • #621 - shows full help options for default start Guard command

Maintenance

  • extract notifiers into notiffany gem
  • extract sheller into shellany gem

Downloads

v2.10.5

Cezary Baginski e2 released this · 63 commits to master since this release

Bugfixes

  • #705 - fixed regression: scope() with singular arguments(:group, :plugin) works again

Improvements

  • #703 - split README into respective wiki entries

Downloads

v2.10.4

Cezary Baginski e2 released this · 74 commits to master since this release

Bugfixes

  • #697 - fixed regression where running 'scope' from Interactor crashed (and added missing specs to prevent this)

Downloads

v2.10.3

Cezary Baginski e2 released this · 77 commits to master since this release

Bugfixes

  • #690 - fixed regression - once again allows multiple ignore() statements work
  • don't crash when non-existing groups are specified in scope

Important changes

  • #688 - the internal Reevaluator plugin has been dropped for important reason: enormous maintenance costs, incompability with directories option, lots of unexpected side effects causing obscure bugs (see issue for easy workaround or file a feature request if you absolutely need this feature again)

Related issue: #696

Downloads

v2.10.2

Cezary Baginski e2 released this · 100 commits to master since this release

Bugfixes

  • avoid treating Guard::Compat as a valid plugin, so that guard init can work

Downloads

v2.10.1

Cezary Baginski e2 released this · 106 commits to master since this release

Bugfix

  • #686 - fixed ignore DSL keyword handling (regression since 2.9.2)

Downloads

v2.10.0

Cezary Baginski e2 released this · 112 commits to master since this release

Bugfixes

  • #684 - restored the accidentally refactored-out Guard.options + deprecate it
  • #685 - also includes a workaround to keep Guard.options[:clear] = true working

Improvements

  • new clearing DSL keyword, which works exactly like the -c option (and replaces the ugly hack previously mentioned in the README)
  • properly document the directories method in README (+mention important workarounds)

Downloads

v2.9.2

Cezary Baginski e2 released this · 120 commits to master since this release

Bugfixes

  • #682 - regression - callbacks were broken after refactoring (new specs were added)

Downloads

v2.9.1

Cezary Baginski e2 released this · 123 commits to master since this release

Bugfixes

  • #680 regression - notification didn't work (unless notifiers were set manually - because autodetect was never called)

Downloads

v2.9.0

Cezary Baginski e2 released this · 150 commits to master since this release

Improvements

  • #676 New directories DSL option allows configuring which directories should be watched by Listen (the catch is: Guard has to be restarted if this is changed - reloading currently won't work)

Known issues

  • although Guard is currently being very cautiously refactored, some issues or side-effects might have slipped between the automatic and manual tests - so be sure to report any issue and regressions

Downloads

v2.8.2

Cezary Baginski e2 released this · 193 commits to master since this release

Bugfixes

-#664 - properly call stop() when Guard exits normally

Downloads

v2.8.1

Cezary Baginski e2 released this · 196 commits to master since this release

Bugfixes

  • fix screen clearing ('-c' option) [Finally!]
  • fix debug mode ('-d' option) to show what's executed (notably: programs run by plugins)

Improvements

  • reimplement command execution tracing (debug mode)
  • Guard now can trace every command executed in other plugins

Development

  • Any module or class method can be traced

Some examples to play around with in your ~/.guard.rb file:

tracer = Guard::Internals::Tracing
ui = Guard::UI

unless $traced
  tracer.trace(Guard, :add_plugin) do |*args|
    ui.warning "* Plugin added: #{args.first.inspect}"
  end

  tracer.trace(Guard::Terminal, :clear) do |*args|
    ui.warning "* Clearing screen in 4 seconds!"
    (1..4).to_a.reverse.each { |i| ui.warning ">> #{i}..."; sleep 1 }
  end

  tracer.trace(Guard, :async_queue_add) do |*args|
    ui.warning "* Event: #{args.inspect}"
  end
  $traced = true
end

Downloads

v2.8.0

Cezary Baginski e2 released this · 202 commits to master since this release

Important notes

This is just a release to deprecate the extremely problematic ::Guard::Guard class, which was deprecated over a year ago (Guard 2.0).

Suggested usage in bundler:

gem 'guard', '~> 2.8'

(Since there are no plans to maintain 2.7).

Compatibility

The deprecated file will be removed in 2.8.1 (or later)!

This does not break semver, because the deprecation was introduced in 1.x:

= 1.8.1 -> deprecated for the first time
= 2.0.0 -> deprecations hidden by default (without --show-deprecations)
= 2.7.3 -> last version without deprecation
= 2.8.0 -> deprecation (this version)
>= 2.8.1 -> (upcoming) will break apps relying on deprecated classes/methods
2.9.x -> (upcoming) - will be compatible with 2.x, but will have features from 3.x
3.x -> (upcoming) - incompatible with 2.x

So, if you can't upgrade yet (even though it should be trivial), you can use:

gem 'guard', '~> 2.7.3'

Upgrade details

Upgrading to Guard 2.0

Downloads

v2.7.3

Cezary Baginski e2 released this · 207 commits to master since this release

Important notes

This version (v2.7.3) is the last one planned before a major deprecation in 2.8.0.

Since Guard 2.7.x will likely no longer be maintained.

So, you are encouraged to switch to 2.8 as soon as it's available:

gem 'guard', '~> 2.8'

Bugfixes

  • #659 regression: prevent 'guard init' from contantly adding existing entries

Development

  • refresh rspec config + update files to prepare for major refactoring

Downloads

v2.7.2

Cezary Baginski e2 released this · 212 commits to master since this release

Bugfixes

  • #655 actually make screen clearing useful instead of clearing the last task's output
  • fix the 'guard list' so it correctly shows which plugins aren't in the Guardfile
  • make the reevaluator plugin "permanent", even on eval errors

Downloads

v2.7.1

Cezary Baginski e2 released this · 224 commits to master since this release

Bugfixes:

  • #655 fix broken screen clearing ('-c' option)
  • #519 fix regression: scope handling quickfixes (needs more work)
  • fix regression: prevent guard list from requiring an existing Guardfile

Improvements:

  • silently deprecate unused accessors like lock & running
  • add basic acceptance tests: show and init (so bugs can be reproduced)
  • use Gem.win_platform? where possible

Development:

  • fix occasionally failing specs
  • enable stable installed guard gem to be used in dev (USE_INSTALLED_GUARD=1)
  • prevent specs from touching filesystem (by stubbing and mocking)
  • lots of refactoring allow for major architecture changes
  • less confusing var names, e.g. "guard"->"plugin", "paths"->"match_result"
  • remove unused fixtures
  • halt on failures when running rspec+cucumber+rubocop

Development (cucumber acceptance tests):

  • add default cucumber.yml
  • add Cucumber specs using in-process Aruba
  • add interactive Cucumber test (using @spawn) for 'start' and correctly firing plugins
  • add and use guard-cucumber

Development (travis/rubocop):

  • ignore JRuby failures on Travis (because of complex acceptance tests)
  • misc fixes for JRuby
  • and rubocop to Rake to avoid forgetting about houndci
  • add rubocop_todo.yml to silence irrelevant issues (e.g. in Rakefile)

Downloads

v2.7.0

Rémy Coutable rymai released this · 271 commits to master since this release

Important notes

  • (#634) the -w option now correctly allows monitoring only chosen
    directories - great for large projects (previous behavior is consider a bug)

  • guard handles switching between tasks and interaction very differently now,
    so if by any chance you experience lockups or errors, be sure to report them

  • Guard exposes lots of public methods and accessors for internal use and were
    never meant as a public API - if you have plugins or projects relying on such
    interfaces or behavior which changed (or might), feel free to create issues
    and PRs

  • if you have major feature requests for the next major version of Guard,
    please submit feature requests, since work may begin soon

Bug fixes

  • #614 Fix failing bug when running tasks with scope.
  • #598 Ensure we load Guard::Plugin as soon as possible.
  • #611 Configure the scope according to the CLI options on re-evaluation of Guardfile.
  • #617 Support Tmux 1.6 and older
  • #634 Fix bug where paths were relative to watchdirs instead of current working directory

New features

  • #603 New :first_match option to stop after the first watcher that returns a valid result.

Improvements

  • #595 Guard is now synchronous.
  • #602 Massive internal cleanup.
  • #612 Allow tmux notifier to receive custom types.
  • #613 Update .travis.yml testing against last stable Ruby version (2.1.2).
  • #632 remove deprecated growl_notify notifier
  • #609 Don't warn when using RUBYGEMS_GEMDEPS instead of Bundler
  • #640 guard reevaluation is handle by "internal" plugin
  • deprecate rubygem < 1.8.0

Downloads

v2.6.1

Rémy Coutable rymai released this · 356 commits to master since this release

Bug fixes

  • #583 Fixes tmux notifier when display_on_all_clients is true.
  • #536 Is greatly mitigated by avoiding Pry restarts when unwatched files change
  • #571 Respond to signals using thread (avoiding Lumberjack and Listen lock problems in Ruby 2.0.0)
  • #582 Prevent Interrupt from resulting in plugins being fired
  • Move rspec options to .rspec (since it's overridable with custom .rspec-local)

Downloads

v2.6.0

Rémy Coutable rymai released this · 376 commits to master since this release

@docwhat is in the place!

Bug fixes

  • #539 & #559 Fixes (or not, see #563) #turn_on and #turn_off for tmux notifier.
  • #568 Fix Guardfile re-evaluation.

Improvements

  • #560 Ignore tags file.
  • #561 Add docs Inline docs badge to README.
  • #564 RSpec 3.0 syntax.
  • #565 Prevent user's .guard.rb from breaking tests.
  • #567 Delete specifying RSpec dependency twice. Also move all development dependencies to the Gemfile.

Downloads

v2.5.1

Thibaud Guillaume-Gentil thibaudgg released this · 407 commits to master since this release

Bug fix

  • #557 Set listen_on at false by default.

Downloads

v2.5.0

Thibaud Guillaume-Gentil thibaudgg released this · 409 commits to master since this release

New feature

  • #555 Add support for network events in Listen 2.5.

Downloads

v2.4.0

Rémy Coutable rymai released this · 417 commits to master since this release

Bug fixes

  • #546 Fixed show command.
  • #551, #552 Invalid Guardfile with ignore and multiple parameters.

Improvement

  • #550 Change minimum Ruby version from 1.9.2 to 1.9.3.

Downloads

v2.3.0

Rémy Coutable rymai released this · 441 commits to master since this release

New features

  • #533 New display_on_all_clients option for the TMux notifier to notify all clients connected to a Tmux server.
  • #543 Allow overriding Listener wait_for_delay option from CLI.

Improvements

  • #534 Test for 2.1 compatibility since it's "due soon."
  • #535 Safely handle a condition of no home directory.
  • #537 Upgrade to RSpec 3.0.0.beta1 (edge edge edge!).
  • #538 Update terminal notifier docs.
  • #541 Update wrong example about the --plugin flag in the README.

Downloads

v2.2.5

Rémy Coutable rymai released this · 461 commits to master since this release

Bug fix

  • #531, #532 Fix the hooks/callbacks feature.

Downloads

v2.2.4

Rémy Coutable rymai released this · 471 commits to master since this release

Bug fixes

  • #518 Emacs notifier closes IO object instead of Array object.
  • #521 Fix Guard::Plugin::Hooker.

Downloads

v2.2.3

Rémy Coutable rymai released this · 480 commits to master since this release

Bug fixes

  • #487 Close pipe after running commands in Emacs notifier.
  • #512 Change quiet handling for Tmux <= 1.6.
  • Fix "Run all all" message, "Run all" should be clear enough. (@rymai)
  • #517 Properly sending titles through notify-send.

Downloads

v2.2.2

Rémy Coutable rymai released this · 491 commits to master since this release

Bug fix

  • #509 Fix options changed after pass it to any notifiers.

Downloads

v2.2.1

Rémy Coutable rymai released this · 494 commits to master since this release

Bug fix

  • #500, #506 & #507 Ensure nil image doesn't break notifications.

Downloads

v2.2.0

Michael Kessler netzpirat released this · 496 commits to master since this release

Improvement

  • Ensure tmux client command execution from Guard is always quiet. (@netzpirat)

New feature

  • #502 Set tmux terminal title by enabling the tmux notifier :display_title option.

Downloads

v2.1.1: Version 2.1.1

Rémy Coutable rymai released this · 499 commits to master since this release

Improvements

  • Improve exception debugging by logging backtrace. (@rymai)
  • Add silent option to Guard::Notifier.turn_on. (@thibaudgg)

Downloads

v2.1.0

Rémy Coutable rymai released this · 502 commits to master since this release

Bug fix

  • Fix interactor prompt (missing spaces). (@rymai)

Improvements

  • Change Listen dependency to ~> 2.1. (@rymai)
  • #499 Spelling correction in README.md.

New feature

  • #497 Allow multiple values for the tmux notifier :color_location option.

Downloads

v2.0.5

Rémy Coutable rymai released this · 514 commits to master since this release

Bug fixes

  • #498 Don't pass internal option :silent when calling #notify on a notifier. (@rymai)
  • Fix hook debug message. (@rymai)

Downloads

v2.0.4

Rémy Coutable rymai released this · 517 commits to master since this release

Bug fixes

  • guard/guard-jasmine#150 Ensure Guard::Options is required when needed. (@rymai)
  • #493 Improve notifiers' availability checks.
  • #491 Rock-solidify Guard::Guardfile::Evaluator: ensure that the stored path to the current Guardfile is expanded so that Guard::Watcher.match_guardfile? works as expected.

Improvement

  • guard/guard-jasmine#150 Get rid of the over-engineering of Guard::Options. Guard::Options is now a Thor::CoreExt::HashWithIndifferentAccess that accepts a default hash! (@rymai)

Downloads

v2.0.3

Rémy Coutable rymai released this · 523 commits to master since this release

Bug fix

  • Ensure we call #start on the interactor only when there's one. (@rymai)

Downloads

v2.0.2

Rémy Coutable rymai released this · 525 commits to master since this release

Bug fixes

  • #490 Restore Tmux notifier options; add option to turn off coloring
  • Ensure notifier options are passed to the #notify method. (@rymai)

Downloads

v2.0.1

Rémy Coutable rymai released this · 529 commits to master since this release

Bug fix

  • #489 Ensure Guard can start without requiring Guard::Guard.

Downloads

v2.0.0

Rémy Coutable rymai released this · 532 commits to master since this release

This release includes all changes from the v2.0.0.pre, v2.0.0.pre.2, v2.0.0.pre.3 and v2.0.0.pre.4 releases plus the following improvement:

  • #485 Handle Windows directory naming conventions in tests.

Downloads

v2.0.0.pre.4

Rémy Coutable rymai released this · 535 commits to master since this release

Bug fix

  • #483 & #486 Accommodate differences in Thread class under MRI 1.9.3, MRI 2.0.0 and JRuby.

Improvement

  • New lazy accessor for Guard.interactor (@rymai).

Downloads

v2.0.0.pre.3

Rémy Coutable rymai released this · 542 commits to master since this release

Bug fixes

  • Fix an issue when scopes where used. (@rymai)
  • Ensure Guard.evaluator is always (lazily) initialized. (@rymai)

Downloads

v2.0.0.pre.2

Rémy Coutable rymai released this · 547 commits to master since this release

Bug fix

  • Ensure Guard.groups doesn't fail when Guard has not been setup. (@rymai)

Improvement

  • Guard now uses Listen 2.0.0.beta.2. (@thibaudgg)

Downloads

v1.8.3

Thibaud Guillaume-Gentil thibaudgg released this · 646 commits to master since this release

Change

  • Change Listen dependency to ~> 1.3. (@thibaudgg)

Downloads

v2.0.0.pre

Rémy Coutable rymai released this · 558 commits to master since this release

All commits not related to an issue are by @rymai unless mentioned otherwise.

Bug fixes

  • #472 Clear terminal title notification on exit.
  • #457 Raise an exception when a group is called "all".
  • #471 Only init once per plugin when running guard init.
  • #456 Fix notifu notifier.
  • #435 Fix pressing C-c when interactor thread is not started.

Removals & deprecations

  • Drop support of Ruby 1.8.
  • Remove Guard::Guardfile.duplicate_definitions?.
  • Remove the deprecated watch_all_modifications start option.
  • Remove the deprecated no_vendor start option.
  • Remove the deprecated reset_color UI method.
  • Remove the deprecated match_file? Watcher method.
  • Remove the deprecated ignore_paths DSL method.
  • Remove the deprecation warning for the interactor DSL method.
  • Remove the deprecation warning for when a plugin defines the run_on_change method.
  • Remove the deprecation warning for when a plugin defines the run_on_deletion method.
  • Deprecate Guard.guards(filter) in favor of Guard.plugins(filter).
  • Deprecate Guard.add_guard(name, options = {}) in favor of Guard.add_plugin(name, options = {}).
  • Deprecate Guard.get_guard_class(name, fail_gracefully) in favor of Guard::PluginUtil.new(name).plugin_class(fail_gracefully: fail_gracefully).
  • Deprecate Guard.locate_guard(name) in favor of Guard::PluginUtil.new(name).plugin_location.
  • Deprecate Guard.guard_gem_names in favor of Guard::PluginUtil.plugin_names.
  • Deprecate Guard::Guard in favor of Guard::Plugin.
  • Deprecate Guard::Dsl.evaluate_guardfile(options) in favor of Guard::Guardfile::Evaluator.new(options).evaluate_guardfile.
  • Deprecate Guard::Guardfile.create_guardfile(options) in favor of Guard::Guardfile::Generator.new(options).create_guardfile.
  • Deprecate Guard::Guardfile.initialize_template(plugin_name) in favor of Guard::Guardfile::Generator.new.initialize_template(plugin_name).
  • Deprecate Guard::Guardfile.initialize_all_templates in favor of Guard::Guardfile::Generator.new.initialize_all_templates.

New features & improvements

  • #469 List available notifiers.
  • Refactor Guard::Notifier and the whole notifiers system.
  • Allow to pass symbols or actual Guard plugins / groups for the scope parameter to Guard::Runner#run.
  • Ensure Guard API calls are not order dependent.
  • Ensure Guard has sensible defaults.
  • New #title method for Guard::Group & Guard::Plugin.
  • New Guard::Plugin::Base module common to Guard::Guard (deprecated) & Guard::Plugin.
  • New Guard::PluginUtil that contains useful methods to find and instantiate Guard plugins.
  • New Guard.plugin method to find the first plugin matching a filter.
  • New Guard.group method to find the first group matching a filter.
  • Don't swallow exceptions when evaluating the Guardfile.
  • Rename Guard::Hook to Guard::Plugin::Hooker.
  • Move setup stuff into a new Guard::Setuper module.
  • Move deprecation stuff inside a new Guard::Deprecator class.

Downloads

v1.8.2

Rémy Coutable rymai released this · 646 commits to master since this release

Bug fix

  • #443 Escape notify-send arguments.

Improvements

  • #460, #463 Better Windows support.
  • #450 Allow multiple watch directories.

Downloads

v1.8.1

Rémy Coutable rymai released this · 667 commits to master since this release

Bug fixes

  • #453 Fix a Guard error when calling guard show or guard list and the Guardfile contains methods called directly on the listener.
  • #443 Escape notify-send arguments.

Downloads

Something went wrong with that request. Please try again.