Merge branch 'master' into hook
Conflicts: lib/guard.rb lib/guard/dsl.rb spec/guard/dsl_spec.rb spec/guard_spec.rb
This commit is contained in:
commit
652c3d8661
@ -86,13 +86,13 @@ module Guard
|
||||
listener.start
|
||||
end
|
||||
|
||||
def add_guard(name, watchers = [], callbacks = [], options = {}, group = nil)
|
||||
def add_guard(name, watchers = [], callbacks = [], options = {})
|
||||
if name.to_sym == :ego
|
||||
UI.deprecation("Guard::Ego is now part of Guard. You can remove it from your Guardfile.")
|
||||
else
|
||||
guard_class = get_guard_class(name)
|
||||
callbacks.each { |callback| ::Guard::Hook.add_callback(callback[:listener], guard_class, callback[:events]) }
|
||||
@guards << guard_class.new(watchers, options, group)
|
||||
@guards << guard_class.new(watchers, options)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -119,11 +119,12 @@ module Guard
|
||||
@watchers = []
|
||||
@callbacks = []
|
||||
watch_and_callback_definition.call if watch_and_callback_definition
|
||||
::Guard.add_guard(name.to_s.downcase.to_sym, @watchers, @callbacks, options, @current_group || :default)
|
||||
options.update(:group => (@current_group || :default))
|
||||
::Guard.add_guard(name.to_s.downcase.to_sym, @watchers, @callbacks, options)
|
||||
end
|
||||
|
||||
def watch(pattern, &action)
|
||||
@watchers << { :pattern => pattern, :action => action }
|
||||
@watchers << ::Guard::Watcher.new(pattern, action)
|
||||
end
|
||||
|
||||
def callback(*args, &listener)
|
||||
|
@ -4,9 +4,9 @@ module Guard
|
||||
|
||||
attr_accessor :watchers, :options, :group
|
||||
|
||||
def initialize(watchers = [], options = {}, group = nil)
|
||||
def initialize(watchers = [], options = {})
|
||||
@group = options.delete(:group) || :default
|
||||
@watchers, @options = watchers, options
|
||||
@group ||= :default
|
||||
end
|
||||
|
||||
# Guardfile template needed inside guard gem
|
||||
|
@ -204,41 +204,41 @@ describe Guard::Dsl do
|
||||
|
||||
describe "#group" do
|
||||
it "evaluates only the specified string group" do
|
||||
::Guard.should_receive(:add_guard).with(:pow, [], [], {}, :default)
|
||||
::Guard.should_receive(:add_guard).with(:test, [], [], {}, :w)
|
||||
::Guard.should_receive(:add_guard).with(:pow, [], [], { :group => :default })
|
||||
::Guard.should_receive(:add_guard).with(:test, [], [], { :group => :w })
|
||||
|
||||
subject.evaluate_guardfile(:guardfile_contents => valid_guardfile_string, :group => ['w'])
|
||||
end
|
||||
|
||||
it "evaluates only the specified symbol group" do
|
||||
::Guard.should_receive(:add_guard).with(:pow, [], [], {}, :default)
|
||||
::Guard.should_receive(:add_guard).with(:test, [], [], {}, :w)
|
||||
::Guard.should_receive(:add_guard).with(:pow, [], [], { :group => :default })
|
||||
::Guard.should_receive(:add_guard).with(:test, [], [], { :group => :w })
|
||||
|
||||
subject.evaluate_guardfile(:guardfile_contents => valid_guardfile_string, :group => [:w])
|
||||
end
|
||||
|
||||
it "evaluates only the specified groups" do
|
||||
::Guard.should_receive(:add_guard).with(:pow, [], [], {}, :default)
|
||||
::Guard.should_receive(:add_guard).with(:rspec, [], [], {}, :x)
|
||||
::Guard.should_receive(:add_guard).with(:ronn, [], [], {}, :x)
|
||||
::Guard.should_receive(:add_guard).with(:less, [], [], {}, :y)
|
||||
::Guard.should_receive(:add_guard).with(:pow, [], [], { :group => :default })
|
||||
::Guard.should_receive(:add_guard).with(:rspec, [], [], { :group => :x })
|
||||
::Guard.should_receive(:add_guard).with(:ronn, [], [], { :group => :x })
|
||||
::Guard.should_receive(:add_guard).with(:less, [], [], { :group => :y })
|
||||
|
||||
subject.evaluate_guardfile(:guardfile_contents => valid_guardfile_string, :group => [:x, :y])
|
||||
end
|
||||
|
||||
it "evaluates always guard outside any group (even when a group is given)" do
|
||||
::Guard.should_receive(:add_guard).with(:pow, [], [], {}, :default)
|
||||
::Guard.should_receive(:add_guard).with(:test, [], [], {}, :w)
|
||||
::Guard.should_receive(:add_guard).with(:pow, [], [], { :group => :default })
|
||||
::Guard.should_receive(:add_guard).with(:test, [], [], { :group => :w })
|
||||
|
||||
subject.evaluate_guardfile(:guardfile_contents => valid_guardfile_string, :group => [:w])
|
||||
end
|
||||
|
||||
it "evaluates all groups when no group option is specified" do
|
||||
::Guard.should_receive(:add_guard).with(:pow, [], [], {}, :default)
|
||||
::Guard.should_receive(:add_guard).with(:test, [], [], {}, :w)
|
||||
::Guard.should_receive(:add_guard).with(:rspec, [], [], {}, :x)
|
||||
::Guard.should_receive(:add_guard).with(:ronn, [], [], {}, :x)
|
||||
::Guard.should_receive(:add_guard).with(:less, [], [], {}, :y)
|
||||
::Guard.should_receive(:add_guard).with(:pow, [], [], { :group => :default })
|
||||
::Guard.should_receive(:add_guard).with(:test, [], [], { :group => :w })
|
||||
::Guard.should_receive(:add_guard).with(:rspec, [], [], { :group => :x })
|
||||
::Guard.should_receive(:add_guard).with(:ronn, [], [], { :group => :x })
|
||||
::Guard.should_receive(:add_guard).with(:less, [], [], { :group => :y })
|
||||
|
||||
subject.evaluate_guardfile(:guardfile_contents => valid_guardfile_string)
|
||||
end
|
||||
@ -246,31 +246,31 @@ describe Guard::Dsl do
|
||||
|
||||
describe "#guard" do
|
||||
it "loads a guard specified as a quoted string from the DSL" do
|
||||
::Guard.should_receive(:add_guard).with(:test, [], [], {}, :default)
|
||||
::Guard.should_receive(:add_guard).with(:test, [], [], { :group => :default })
|
||||
|
||||
subject.evaluate_guardfile(:guardfile_contents => "guard 'test'")
|
||||
end
|
||||
|
||||
it "loads a guard specified as a double quoted string from the DSL" do
|
||||
::Guard.should_receive(:add_guard).with(:test, [], [], {}, :default)
|
||||
::Guard.should_receive(:add_guard).with(:test, [], [], { :group => :default })
|
||||
|
||||
subject.evaluate_guardfile(:guardfile_contents => 'guard "test"')
|
||||
end
|
||||
|
||||
it "loads a guard specified as a symbol from the DSL" do
|
||||
::Guard.should_receive(:add_guard).with(:test, [], [], {}, :default)
|
||||
::Guard.should_receive(:add_guard).with(:test, [], [], { :group => :default })
|
||||
|
||||
subject.evaluate_guardfile(:guardfile_contents => "guard :test")
|
||||
end
|
||||
|
||||
it "loads a guard specified as a symbol and called with parens from the DSL" do
|
||||
::Guard.should_receive(:add_guard).with(:test, [], [], {}, :default)
|
||||
::Guard.should_receive(:add_guard).with(:test, [], [], { :group => :default })
|
||||
|
||||
subject.evaluate_guardfile(:guardfile_contents => "guard(:test)")
|
||||
end
|
||||
|
||||
it "receives options when specified, from normal arg" do
|
||||
::Guard.should_receive(:add_guard).with(:test, [], [], { :opt_a => 1, :opt_b => 'fancy' }, :default)
|
||||
::Guard.should_receive(:add_guard).with(:test, [], [], { :opt_a => 1, :opt_b => 'fancy', :group => :default })
|
||||
|
||||
subject.evaluate_guardfile(:guardfile_contents => "guard 'test', :opt_a => 1, :opt_b => 'fancy'")
|
||||
end
|
||||
@ -278,12 +278,12 @@ describe Guard::Dsl do
|
||||
|
||||
describe "#watch" do
|
||||
it "should receive watchers when specified" do
|
||||
::Guard.should_receive(:add_guard).with(:dummy, anything, anything, {}, :default) do |name, watchers, callbacks, options, group|
|
||||
::Guard.should_receive(:add_guard).with(:dummy, anything, anything, { :group => :default }) do |name, watchers, callbacks, options|
|
||||
watchers.size.should == 2
|
||||
watchers[0][:pattern].should == 'a'
|
||||
watchers[0][:action].call.should == proc { 'b' }.call
|
||||
watchers[1][:pattern].should == 'c'
|
||||
watchers[1][:action].should == nil
|
||||
watchers[0].pattern.should == 'a'
|
||||
watchers[0].action.call.should == proc { 'b' }.call
|
||||
watchers[1].pattern.should == 'c'
|
||||
watchers[1].action.should == nil
|
||||
end
|
||||
subject.evaluate_guardfile(:guardfile_contents => "
|
||||
guard :dummy do
|
||||
@ -301,7 +301,7 @@ describe Guard::Dsl do
|
||||
end
|
||||
end
|
||||
|
||||
::Guard.should_receive(:add_guard).with(:dummy, anything, anything, {}, :default) do |name, watchers, callbacks, options, group|
|
||||
::Guard.should_receive(:add_guard).with(:dummy, anything, anything, { :group => :default }) do |name, watchers, callbacks, options|
|
||||
callbacks.should have(2).items
|
||||
callbacks[0][:events].should == :start_end
|
||||
callbacks[0][:listener].call(Guard::Dummy, :start_end, 'foo').should == "Guard::Dummy executed 'start_end' hook with foo!"
|
||||
|
@ -98,7 +98,7 @@ describe Guard do
|
||||
|
||||
context "with no watchers given" do
|
||||
it "gives an empty array of watchers" do
|
||||
@guard_rspec_class.should_receive(:new).with([], {}, nil).and_return(@guard_rspec)
|
||||
@guard_rspec_class.should_receive(:new).with([], {}).and_return(@guard_rspec)
|
||||
|
||||
Guard.add_guard(:rspec, [])
|
||||
end
|
||||
@ -106,7 +106,7 @@ describe Guard do
|
||||
|
||||
context "with watchers given" do
|
||||
it "give the watchers array" do
|
||||
@guard_rspec_class.should_receive(:new).with([:foo], {}, nil).and_return(@guard_rspec)
|
||||
@guard_rspec_class.should_receive(:new).with([:foo], {}).and_return(@guard_rspec)
|
||||
|
||||
Guard.add_guard(:rspec, [:foo])
|
||||
end
|
||||
@ -114,7 +114,7 @@ describe Guard do
|
||||
|
||||
context "with no options given" do
|
||||
it "gives an empty hash of options" do
|
||||
@guard_rspec_class.should_receive(:new).with([], {}, nil).and_return(@guard_rspec)
|
||||
@guard_rspec_class.should_receive(:new).with([], {}).and_return(@guard_rspec)
|
||||
|
||||
Guard.add_guard(:rspec, [], [], {})
|
||||
end
|
||||
@ -122,17 +122,9 @@ describe Guard do
|
||||
|
||||
context "with options given" do
|
||||
it "give the options hash" do
|
||||
@guard_rspec_class.should_receive(:new).with([], { :foo => true }, nil).and_return(@guard_rspec)
|
||||
@guard_rspec_class.should_receive(:new).with([], { :foo => true, :group => :backend }).and_return(@guard_rspec)
|
||||
|
||||
Guard.add_guard(:rspec, [], [], { :foo => true })
|
||||
end
|
||||
end
|
||||
|
||||
context "with the group :backend given" do
|
||||
it "initialize the guard and pass it its group" do
|
||||
@guard_rspec_class.should_receive(:new).with([], {}, :backend).and_return(@guard_rspec)
|
||||
|
||||
Guard.add_guard(:rspec, [], [], {}, :backend)
|
||||
Guard.add_guard(:rspec, [], [], { :foo => true, :group => :backend })
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user