Merge branch 'master' of https://github.com/uk-ar/guard into uk-ar-master

Conflicts:
	CHANGELOG.md
	lib/guard.rb
	lib/guard/cli.rb
This commit is contained in:
Michael Kessler 2011-08-05 14:37:08 +02:00
commit 9175b33da4
3 changed files with 51 additions and 0 deletions

View File

@ -7,6 +7,7 @@
## Improvements ## Improvements
- Pull request [#95](https://github.com/guard/guard/pull/95): Output system commands and options to be executed when in debug mode. ([@uk-ar][] and [@netzpirat][])
- `Guard::Dsl.revaluate_guardfile` has been renamed to `Guard::Dsl.reevaluate_guardfile`. ([@rymai][]) - `Guard::Dsl.revaluate_guardfile` has been renamed to `Guard::Dsl.reevaluate_guardfile`. ([@rymai][])
- New CLI options: ([@nestegg][]) - New CLI options: ([@nestegg][])
- `watchdir`/`-w` to specify the directory in which Guard should watch for changes, - `watchdir`/`-w` to specify the directory in which Guard should watch for changes,
@ -214,6 +215,7 @@
[@thierryhenrio]: https://github.com/thierryhenrio [@thierryhenrio]: https://github.com/thierryhenrio
[@tinogomes]: https://github.com/tinogomes [@tinogomes]: https://github.com/tinogomes
[@tpope]: https://github.com/tpope [@tpope]: https://github.com/tpope
[@uk-ar]: https://github.com/uk-ar
[@veged]: https://github.com/veged [@veged]: https://github.com/veged
[@wereHamster]: https://github.com/wereHamster [@wereHamster]: https://github.com/wereHamster
[@yannlugrin]: https://github.com/yannlugrin [@yannlugrin]: https://github.com/yannlugrin

View File

@ -20,6 +20,8 @@ module Guard
@options[:notify] && ENV["GUARD_NOTIFY"] != 'false' ? Notifier.turn_on : Notifier.turn_off @options[:notify] && ENV["GUARD_NOTIFY"] != 'false' ? Notifier.turn_on : Notifier.turn_off
UI.clear if @options[:clear] UI.clear if @options[:clear]
debug_command_execution if @options[:debug]
self self
end end
@ -117,5 +119,19 @@ module Guard
UI.error "Could not find 'guard-#{name}' gem path." UI.error "Could not find 'guard-#{name}' gem path."
end end
def debug_command_execution
Kernel.send(:alias_method, :original_system, :system)
Kernel.send(:define_method, :system) do |command, *args|
::Guard::UI.debug "Command execution: #{command} #{args.join(' ')}"
original_system command, *args
end
Kernel.send(:alias_method, :original_backtick, :"`")
Kernel.send(:define_method, :"`") do |command|
::Guard::UI.debug "Command execution: #{command}"
original_backtick command
end
end
end end
end end

View File

@ -44,6 +44,11 @@ describe Guard do
::Guard::Notifier.should_receive(:turn_off) ::Guard::Notifier.should_receive(:turn_off)
::Guard.setup(:notify => true) ::Guard.setup(:notify => true)
end end
it "logs command execution if the debug option is true" do
::Guard.should_receive(:debug_command_execution)
::Guard.setup(:debug => true)
end
end end
describe ".start" do describe ".start" do
@ -179,4 +184,32 @@ describe Guard do
end end
end end
describe ".debug_command_execution" do
subject { ::Guard.setup }
before do
@original_system = Kernel.method(:system)
@original_command = Kernel.method(:"`")
end
after do
Kernel.send(:define_method, :system, @original_system.to_proc )
Kernel.send(:define_method, :"`", @original_command.to_proc )
end
it "outputs Kernel.#system method parameters" do
::Guard.setup(:debug => true)
::Guard::UI.should_receive(:debug).with("Command execution: echo test")
system("echo", "test").should be_true
end
it "outputs Kernel.#` method parameters" do
::Guard.setup(:debug => true)
::Guard::UI.should_receive(:debug).twice.with("Command execution: echo test")
`echo test`.should eql "test\n"
%x{echo test}.should eql "test\n"
end
end
end end