Files

Guard::Commander

Public Instance Methods

pause() click to toggle source

Pause Guard listening to file changes.

# File lib/guard/commander.rb, line 86
def pause
  if listener.paused?
    ::Guard::UI.info 'Un-paused files modification listening', reset: true
    listener.unpause
  else
    ::Guard::UI.info 'Paused files modification listening', reset: true
    listener.pause
  end
end
reload(scopes = {}) click to toggle source

Reload Guardfile and all Guard plugins currently enabled. If no scope is given, then the Guardfile will be re-evaluated, which results in a stop/start, which makes the reload obsolete.

@param [Hash] scopes hash with a Guard plugin or a group scope

# File lib/guard/commander.rb, line 55
def reload(scopes = {})
  setup unless running

  within_preserved_state do
    ::Guard::UI.clear(force: true)
    ::Guard::UI.action_with_scopes('Reload', scopes)

    if scopes.empty?
      evaluator.reevaluate_guardfile
    else
      runner.run(:reload, scopes)
    end
  end
end
run_all(scopes = {}) click to toggle source

Trigger `run_all` on all Guard plugins currently enabled.

@param [Hash] scopes hash with a Guard plugin or a group scope

# File lib/guard/commander.rb, line 74
def run_all(scopes = {})
  setup unless running

  within_preserved_state do
    ::Guard::UI.clear(force: true)
    ::Guard::UI.action_with_scopes('Run all', scopes)
    runner.run(:run_all, scopes)
  end
end
start(options = {}) click to toggle source

Start Guard by evaluating the `Guardfile`, initializing declared Guard plugins and starting the available file change listener. Main method for Guard that is called from the CLI when Guard starts.

  • Setup Guard internals

  • Evaluate the `Guardfile`

  • Configure Notifiers

  • Initialize the declared Guard plugins

  • Start the available file change listener

@option options [Boolean] clear if auto clear the UI should be done @option options [Boolean] notify if system notifications should be shown @option options [Boolean] debug if debug output should be shown @option options [Array<String>] group the list of groups to start @option options [String] watchdir the director to watch @option options [String] guardfile the path to the Guardfile @see CLI#start

# File lib/guard/commander.rb, line 23
def start(options = {})
  setup(options) unless running

  within_preserved_state do
    ::Guard::UI.debug 'Guard starts all plugins'
    runner.run(:start)
    ::Guard::UI.info "Guard is now watching at '#{ @watchdirs.join "', '" }'"
    listener.start
  end
end
stop() click to toggle source

Stop Guard listening to file changes.

# File lib/guard/commander.rb, line 36
def stop
  setup unless running

  within_preserved_state do
    ::Guard::UI.debug 'Guard stops all plugins'
    runner.run(:stop)
    ::Guard::Notifier.turn_off
    ::Guard::UI.info 'Bye bye...', reset: true
    listener.stop
    @running = false
  end
end
within_preserved_state() click to toggle source

Runs a block where the interactor is blocked and execution is synchronized to avoid state inconsistency.

@param [Boolean] restart_interactor whether to restart the interactor or

not

@yield the block to run

# File lib/guard/commander.rb, line 104
def within_preserved_state
  lock.synchronize do
    begin
      interactor.stop if interactor
      @result = yield
    rescue Interrupt
      # Bring back Pry when the block is halted with Ctrl-C
    end

    interactor.start if running
  end

  @result
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.