kicker 2.3.1 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,6 @@
1
+ rvm:
2
+ - 1.9.3
3
+ - 1.9.2
4
+ - 1.8.7
5
+
6
+ script: "rake"
data/Gemfile ADDED
@@ -0,0 +1,11 @@
1
+ source "http://rubygems.org"
2
+
3
+ gem 'rake'
4
+
5
+ group :development do
6
+ gem 'mocha'
7
+ gem 'test-spec'
8
+ gem 'activesupport'
9
+ gem 'rb-fsevent'
10
+ gem 'jeweler'
11
+ end
@@ -0,0 +1,34 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ activesupport (3.2.1)
5
+ i18n (~> 0.6)
6
+ multi_json (~> 1.0)
7
+ git (1.2.5)
8
+ i18n (0.6.0)
9
+ jeweler (1.8.3)
10
+ bundler (~> 1.0)
11
+ git (>= 1.2.5)
12
+ rake
13
+ rdoc
14
+ json (1.6.5)
15
+ metaclass (0.0.1)
16
+ mocha (0.10.3)
17
+ metaclass (~> 0.0.1)
18
+ multi_json (1.0.4)
19
+ rake (0.9.2.2)
20
+ rb-fsevent (0.9.0)
21
+ rdoc (3.12)
22
+ json (~> 1.4)
23
+ test-spec (0.10.0)
24
+
25
+ PLATFORMS
26
+ ruby
27
+
28
+ DEPENDENCIES
29
+ activesupport
30
+ jeweler
31
+ mocha
32
+ rake
33
+ rb-fsevent
34
+ test-spec
@@ -16,12 +16,12 @@ feel offended; live with it.</i>
16
16
  == The short version
17
17
 
18
18
  Usage: ./bin/kicker [options] [paths to watch]
19
-
20
- Available recipes: active_record, ignore, jstest, rails, ruby.
21
-
19
+
20
+ Available recipes: ignore, jstest, rails, ruby.
21
+
22
22
  -s, --silent Keep output to a minimum.
23
- --[no-]growl Whether or not to use Growl. Default is to use growl.
24
- --growl-command [COMMAND] The command to execute when the Growl succeeded message is clicked.
23
+ -q, --quiet Quiet output. Don't print timestamps when logging.
24
+ -c, --clear Clear console before each run.
25
25
  -l, --latency [FLOAT] The time to collect file change events before acting on them. Defaults to 1 second.
26
26
  -r, --recipe [NAME] A named recipe to load.
27
27
  -e, --execute [COMMAND] The command to execute.
data/Rakefile CHANGED
@@ -17,7 +17,7 @@ begin
17
17
  gem.add_dependency 'rb-fsevent'
18
18
  end
19
19
  rescue LoadError
20
- puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
20
+ puts "Jeweler not available. Install it with: sudo gem install jeweler -s http://gems.github.com"
21
21
  end
22
22
 
23
23
  Rake::TestTask.new do |t|
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.3.1
1
+ 2.4.0
@@ -1,108 +1,105 @@
1
1
  # Generated by jeweler
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{kicker}
8
- s.version = "2.3.1"
8
+ s.version = "2.4.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Eloy Duran"]
12
- s.date = %q{2011-05-27}
12
+ s.date = %q{2012-02-03}
13
13
  s.default_executable = %q{kicker}
14
14
  s.email = %q{eloy.de.enige@gmail.com}
15
15
  s.executables = ["kicker"]
16
16
  s.extra_rdoc_files = [
17
17
  "LICENSE",
18
- "README.rdoc"
18
+ "README.rdoc"
19
19
  ]
20
20
  s.files = [
21
- ".gitignore",
22
- ".kick",
23
- "LICENSE",
24
- "README.rdoc",
25
- "Rakefile",
26
- "TODO.rdoc",
27
- "VERSION",
28
- "bin/kicker",
29
- "html/images/kikker.jpg",
30
- "kicker.gemspec",
31
- "lib/kicker.rb",
32
- "lib/kicker/callback_chain.rb",
33
- "lib/kicker/core_ext.rb",
34
- "lib/kicker/fsevents.rb",
35
- "lib/kicker/growl.rb",
36
- "lib/kicker/log_status_helper.rb",
37
- "lib/kicker/options.rb",
38
- "lib/kicker/recipes.rb",
39
- "lib/kicker/recipes/could_not_handle_file.rb",
40
- "lib/kicker/recipes/dot_kick.rb",
41
- "lib/kicker/recipes/execute_cli_command.rb",
42
- "lib/kicker/recipes/ignore.rb",
43
- "lib/kicker/recipes/jstest.rb",
44
- "lib/kicker/recipes/rails.rb",
45
- "lib/kicker/recipes/ruby.rb",
46
- "lib/kicker/utils.rb",
47
- "test/callback_chain_test.rb",
48
- "test/core_ext_test.rb",
49
- "test/filesystem_change_test.rb",
50
- "test/fixtures/a_file_thats_reloaded.rb",
51
- "test/fsevents_test.rb",
52
- "test/growl_test.rb",
53
- "test/initialization_test.rb",
54
- "test/log_status_helper_test.rb",
55
- "test/options_test.rb",
56
- "test/recipes/could_not_handle_file_test.rb",
57
- "test/recipes/dot_kick_test.rb",
58
- "test/recipes/execute_cli_command_test.rb",
59
- "test/recipes/ignore_test.rb",
60
- "test/recipes/jstest_test.rb",
61
- "test/recipes/rails_test.rb",
62
- "test/recipes/ruby_test.rb",
63
- "test/recipes_test.rb",
64
- "test/test_helper.rb",
65
- "test/utils_test.rb",
66
- "vendor/growlnotifier/growl.rb",
67
- "vendor/growlnotifier/growl_helpers.rb"
21
+ ".kick",
22
+ ".travis.yml",
23
+ "Gemfile",
24
+ "Gemfile.lock",
25
+ "LICENSE",
26
+ "README.rdoc",
27
+ "Rakefile",
28
+ "TODO.rdoc",
29
+ "VERSION",
30
+ "bin/kicker",
31
+ "html/images/kikker.jpg",
32
+ "kicker.gemspec",
33
+ "lib/kicker.rb",
34
+ "lib/kicker/callback_chain.rb",
35
+ "lib/kicker/core_ext.rb",
36
+ "lib/kicker/fsevents.rb",
37
+ "lib/kicker/growl.rb",
38
+ "lib/kicker/log_status_helper.rb",
39
+ "lib/kicker/options.rb",
40
+ "lib/kicker/recipes.rb",
41
+ "lib/kicker/recipes/could_not_handle_file.rb",
42
+ "lib/kicker/recipes/dot_kick.rb",
43
+ "lib/kicker/recipes/execute_cli_command.rb",
44
+ "lib/kicker/recipes/ignore.rb",
45
+ "lib/kicker/recipes/jstest.rb",
46
+ "lib/kicker/recipes/rails.rb",
47
+ "lib/kicker/recipes/ruby.rb",
48
+ "lib/kicker/utils.rb",
49
+ "test/callback_chain_test.rb",
50
+ "test/core_ext_test.rb",
51
+ "test/filesystem_change_test.rb",
52
+ "test/fixtures/a_file_thats_reloaded.rb",
53
+ "test/fsevents_test.rb",
54
+ "test/growl_test.rb",
55
+ "test/initialization_test.rb",
56
+ "test/log_status_helper_test.rb",
57
+ "test/options_test.rb",
58
+ "test/recipes/could_not_handle_file_test.rb",
59
+ "test/recipes/dot_kick_test.rb",
60
+ "test/recipes/execute_cli_command_test.rb",
61
+ "test/recipes/ignore_test.rb",
62
+ "test/recipes/jstest_test.rb",
63
+ "test/recipes/rails_test.rb",
64
+ "test/recipes/ruby_test.rb",
65
+ "test/recipes_test.rb",
66
+ "test/test_helper.rb",
67
+ "test/utils_test.rb",
68
+ "vendor/growlnotifier/growl.rb",
69
+ "vendor/growlnotifier/growl_helpers.rb"
68
70
  ]
69
71
  s.homepage = %q{http://github.com/alloy/kicker}
70
- s.rdoc_options = ["--charset=UTF-8"]
71
72
  s.require_paths = ["lib", "vendor"]
72
- s.rubygems_version = %q{1.3.7}
73
+ s.rubygems_version = %q{1.6.2}
73
74
  s.summary = %q{A lean, agnostic, flexible file-change watcher, using OS X FSEvents.}
74
- s.test_files = [
75
- "test/callback_chain_test.rb",
76
- "test/core_ext_test.rb",
77
- "test/filesystem_change_test.rb",
78
- "test/fixtures/a_file_thats_reloaded.rb",
79
- "test/fsevents_test.rb",
80
- "test/growl_test.rb",
81
- "test/initialization_test.rb",
82
- "test/log_status_helper_test.rb",
83
- "test/options_test.rb",
84
- "test/recipes/could_not_handle_file_test.rb",
85
- "test/recipes/dot_kick_test.rb",
86
- "test/recipes/execute_cli_command_test.rb",
87
- "test/recipes/ignore_test.rb",
88
- "test/recipes/jstest_test.rb",
89
- "test/recipes/rails_test.rb",
90
- "test/recipes/ruby_test.rb",
91
- "test/recipes_test.rb",
92
- "test/test_helper.rb",
93
- "test/utils_test.rb"
94
- ]
95
75
 
96
76
  if s.respond_to? :specification_version then
97
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
98
77
  s.specification_version = 3
99
78
 
100
79
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
80
+ s.add_runtime_dependency(%q<rake>, [">= 0"])
81
+ s.add_development_dependency(%q<mocha>, [">= 0"])
82
+ s.add_development_dependency(%q<test-spec>, [">= 0"])
83
+ s.add_development_dependency(%q<activesupport>, [">= 0"])
84
+ s.add_development_dependency(%q<rb-fsevent>, [">= 0"])
85
+ s.add_development_dependency(%q<jeweler>, [">= 0"])
101
86
  s.add_runtime_dependency(%q<rb-fsevent>, [">= 0"])
102
87
  else
88
+ s.add_dependency(%q<rake>, [">= 0"])
89
+ s.add_dependency(%q<mocha>, [">= 0"])
90
+ s.add_dependency(%q<test-spec>, [">= 0"])
91
+ s.add_dependency(%q<activesupport>, [">= 0"])
92
+ s.add_dependency(%q<rb-fsevent>, [">= 0"])
93
+ s.add_dependency(%q<jeweler>, [">= 0"])
103
94
  s.add_dependency(%q<rb-fsevent>, [">= 0"])
104
95
  end
105
96
  else
97
+ s.add_dependency(%q<rake>, [">= 0"])
98
+ s.add_dependency(%q<mocha>, [">= 0"])
99
+ s.add_dependency(%q<test-spec>, [">= 0"])
100
+ s.add_dependency(%q<activesupport>, [">= 0"])
101
+ s.add_dependency(%q<rb-fsevent>, [">= 0"])
102
+ s.add_dependency(%q<jeweler>, [">= 0"])
106
103
  s.add_dependency(%q<rb-fsevent>, [">= 0"])
107
104
  end
108
105
  end
@@ -7,6 +7,7 @@ require 'kicker/growl'
7
7
  require 'kicker/log_status_helper'
8
8
  require 'kicker/options'
9
9
  require 'kicker/utils'
10
+ require 'kicker/recipes'
10
11
 
11
12
  class Kicker #:nodoc:
12
13
  def self.run(argv = ARGV)
@@ -115,8 +116,4 @@ class Kicker #:nodoc:
115
116
  end
116
117
  end
117
118
  end
118
- end
119
-
120
- # Load this as last, because it actually loads all recipes, so everything has
121
- # to be defined before that.
122
- require 'kicker/recipes'
119
+ end
@@ -1,9 +1,6 @@
1
1
  RECIPES_DIR = File.expand_path('../recipes', __FILE__)
2
2
  USER_RECIPES_DIR = File.expand_path('~/.kick')
3
3
 
4
- $:.unshift(RECIPES_DIR)
5
- $:.unshift(USER_RECIPES_DIR) if File.exist?(USER_RECIPES_DIR)
6
-
7
4
  module Kernel
8
5
  # If only given a <tt>name</tt>, the specified recipe will be loaded. For
9
6
  # instance, the following, in a <tt>.kick</tt> file, will load the Rails
@@ -29,30 +26,69 @@ end
29
26
  class Kicker
30
27
  module Recipes #:nodoc:
31
28
  class << self
29
+ def reset!
30
+ @recipes = nil
31
+ end
32
+
32
33
  def recipes
33
34
  @recipes ||= {}
34
35
  end
35
36
 
36
- def recipe(name, &block)
37
- name = name.to_sym
38
- if block_given?
39
- recipes[name] = block
40
- else
41
- if recipe = recipes[name]
42
- recipe.call
43
- else
44
- raise LoadError, "Recipe `#{name}' does not exist."
45
- end
37
+ def recipe_filename(name)
38
+ [
39
+ USER_RECIPES_DIR,
40
+ RECIPES_DIR
41
+ ].each do |directory|
42
+ filename = File.join(directory, "#{name}.rb")
43
+ return filename if File.exist?(filename)
46
44
  end
47
45
  end
48
46
 
47
+ def recipe_names
48
+ recipe_files.map { |filename| File.basename(filename, '.rb').to_sym }
49
+ end
50
+
49
51
  def recipe_files
50
52
  Dir.glob(File.join(RECIPES_DIR, '*.rb')) + Dir.glob(File.join(USER_RECIPES_DIR, '*.rb'))
51
53
  end
54
+
55
+ def define_recipe(name, &block)
56
+ recipes[name] = block
57
+ end
58
+
59
+ def load_recipe(name)
60
+ if recipe_names.include?(name)
61
+ load recipe_filename(name)
62
+ else
63
+ raise LoadError, "Can't load recipe `#{name}', it doesn't exist on disk. Loadable recipes are: #{recipe_names[0..-2].join(', ')}, and #{recipe_names[-1]}"
64
+ end
65
+ end
66
+
67
+ def activate_recipe(name)
68
+ unless recipes.has_key?(name)
69
+ load_recipe(name)
70
+ end
71
+ if recipe = recipes[name]
72
+ recipe.call
73
+ else
74
+ raise ArgumentError, "Can't activate the recipe `#{name}' because it hasn't been defined yet."
75
+ end
76
+ end
77
+
78
+ # See Kernel#recipe for more information about the usage.
79
+ def recipe(name, &block)
80
+ name = name.to_sym
81
+ if block_given?
82
+ define_recipe(name, &block)
83
+ else
84
+ activate_recipe(name)
85
+ end
86
+ end
52
87
  end
53
88
 
54
- # We don't want this option to show up at the end
55
- require 'execute_cli_command'
56
- recipe_files.each { |file| require file }
89
+ # Always load all the base recipes
90
+ load_recipe :execute_cli_command
91
+ load_recipe :could_not_handle_file
92
+ load_recipe :dot_kick
57
93
  end
58
94
  end
@@ -1,22 +1,10 @@
1
- # Need to define these modules and require core_ext/module, because AS breaks
2
- # if these aren't defined. Need to fix that in AS...
3
- require 'active_support/core_ext/module'
4
- module ActiveSupport #:nodoc:
5
- module CoreExtensions #:nodoc:
6
- module String #:nodoc:
7
- module Inflections #:nodoc:
8
- end
9
- end
10
- end
11
- end
12
-
13
- require 'ruby'
1
+ recipe :ruby
14
2
 
15
- class Rails < Ruby
3
+ class Kicker::Recipes::Rails < Kicker::Recipes::Ruby
16
4
  class << self
17
5
  # Call these options on the Ruby class which takes the cli options.
18
6
  %w{ test_type runner_bin test_cases_root test_options }.each do |delegate|
19
- define_method(delegate) { Ruby.send(delegate) }
7
+ define_method(delegate) { Kicker::Recipes::Ruby.send(delegate) }
20
8
  end
21
9
 
22
10
  # Maps +type+, for instance `models', to a test directory.
@@ -60,15 +48,15 @@ class Rails < Ruby
60
48
  def tests_for_model(model)
61
49
  if test_type == 'test'
62
50
  %W{
63
- unit/#{model.singularize}
64
- unit/helpers/#{model.pluralize}_helper
65
- functional/#{model.pluralize}_controller
51
+ unit/#{ActiveSupport::Inflector.singularize(model)}
52
+ unit/helpers/#{ActiveSupport::Inflector.pluralize(model)}_helper
53
+ functional/#{ActiveSupport::Inflector.pluralize(model)}_controller
66
54
  }
67
55
  else
68
56
  %W{
69
- models/#{model.singularize}
70
- helpers/#{model.pluralize}_helper
71
- controllers/#{model.pluralize}_controller
57
+ models/#{ActiveSupport::Inflector.singularize(model)}
58
+ helpers/#{ActiveSupport::Inflector.pluralize(model)}_helper
59
+ controllers/#{ActiveSupport::Inflector.pluralize(model)}_controller
72
60
  }
73
61
  end.map { |f| test_file f }
74
62
  end
@@ -78,7 +66,7 @@ class Rails < Ruby
78
66
  case file
79
67
  # Run all functional tests when routes.rb is saved
80
68
  when 'config/routes.rb'
81
- Rails.all_controller_tests
69
+ Kicker::Recipes::Rails.all_controller_tests
82
70
 
83
71
  # Match lib/*
84
72
  when /^(lib\/.+)\.rb$/
@@ -92,7 +80,7 @@ class Rails < Ruby
92
80
  when %r{^app/(\w+)([\w/]*)/([\w\.]+)\.\w+$}
93
81
  type, namespace, file = $1, $2, $3
94
82
 
95
- if dir = Rails.type_to_test_dir(type)
83
+ if dir = Kicker::Recipes::Rails.type_to_test_dir(type)
96
84
  if type == "views"
97
85
  namespace = namespace.split('/')[1..-1]
98
86
  file = "#{namespace.pop}_controller"
@@ -110,9 +98,9 @@ end
110
98
 
111
99
  recipe :rails do
112
100
  require 'rubygems' rescue LoadError
113
- require 'active_support/core_ext/string'
101
+ require 'active_support/inflector'
114
102
 
115
- process Rails
103
+ process Kicker::Recipes::Rails
116
104
 
117
105
  # When changing the schema, prepare the test database.
118
106
  process do |files|
@@ -1,4 +1,4 @@
1
- class Ruby
1
+ class Kicker::Recipes::Ruby
2
2
  class << self
3
3
  # Assigns the type of tests to run. Eg: `test' or `spec'.
4
4
  attr_writer :test_type
@@ -42,6 +42,24 @@ class Ruby
42
42
  @test_options ||= []
43
43
  end
44
44
 
45
+ def reset!
46
+ @test_type = nil
47
+ @runner_bin = nil
48
+ @test_cases_root = nil
49
+ @test_options = nil
50
+ end
51
+
52
+ def runner_command(*parts)
53
+ parts.map do |part|
54
+ case part
55
+ when Array
56
+ part.empty? ? nil : part.join(' ')
57
+ else
58
+ part.to_s
59
+ end
60
+ end.compact.join(' ')
61
+ end
62
+
45
63
  # Runs the given tests, if there are any, with the method defined by
46
64
  # test_type. If test_type is `test' the run_with_test_runner method is
47
65
  # used. The same applies when test_type is `spec'.
@@ -50,7 +68,7 @@ class Ruby
50
68
  end
51
69
 
52
70
  def test_runner_command(tests)
53
- "#{runner_bin} #{test_options.join(' ')} -r #{tests.join(' -r ')} -e ''"
71
+ runner_command(runner_bin, test_options, '-r', tests.join(' -r '), "-e ''")
54
72
  end
55
73
 
56
74
  # Runs the given tests with `ruby' as unit-test tests.
@@ -67,7 +85,7 @@ class Ruby
67
85
  end
68
86
 
69
87
  def spec_runner_command(tests)
70
- "#{runner_bin} #{test_options.join(' ')} #{tests.join(' ')}"
88
+ runner_command(runner_bin, test_options, tests)
71
89
  end
72
90
 
73
91
  # Runs the given tests with `spec' as RSpec tests.
@@ -147,9 +165,9 @@ class Ruby
147
165
  end
148
166
 
149
167
  options.on('-b', '--ruby [PATH]', "Use an alternate Ruby binary for spawned test runners. (Default is `ruby')") do |command|
150
- Ruby.runner_bin = command
168
+ Kicker::Recipes::Ruby.runner_bin = command
151
169
  end
152
170
 
153
171
  recipe :ruby do
154
- process Ruby
172
+ process Kicker::Recipes::Ruby
155
173
  end
@@ -84,6 +84,4 @@ if Kicker::Growl.usable?
84
84
  @growler.failed(status)
85
85
  end
86
86
  end
87
- else
88
- puts "Poo"
89
87
  end
@@ -1,51 +1,65 @@
1
1
  require File.expand_path('../../test_helper', __FILE__)
2
-
3
- before = Kicker.process_chain.dup
4
2
  recipe :rails
5
- RAILS_FILES, RAILS_SCHEMA = (Kicker.process_chain - before).first(2)
6
3
 
7
- describe "The Rails helper module" do
8
- after do
9
- Ruby.test_type = nil
10
- Ruby.test_cases_root = nil
4
+ class Kicker::Recipes::Rails
5
+ class << self
6
+ attr_accessor :tests_ran
7
+ def run_tests(tests)
8
+ self.tests_ran ||= []
9
+ self.tests_ran << tests
10
+ end
11
11
  end
12
-
12
+ end
13
+
14
+ describe "The Rails handler" do
13
15
  it "should return all controller tests when test_type is `test'" do
14
- Dir.expects(:glob).with("test/functional/**/*_test.rb").returns(%w{ test.rb })
15
- Rails.all_controller_tests.should == %w{ test.rb }
16
+ tests = %w{ test.rb }
17
+
18
+ File.use_original_exist = false
19
+ File.existing_files = tests
20
+
21
+ Dir.expects(:glob).with("test/functional/**/*_test.rb").returns(tests)
22
+ Kicker::Recipes::Rails.all_controller_tests.should == tests
16
23
  end
17
24
 
18
25
  it "should return all controller tests when test_type is `spec'" do
19
- Ruby.test_type = 'spec'
20
- Ruby.test_cases_root = nil
26
+ specs = %w{ spec.rb }
21
27
 
22
- Dir.expects(:glob).with("spec/controllers/**/*_spec.rb").returns(%w{ spec.rb })
23
- Rails.all_controller_tests.should == %w{ spec.rb }
28
+ File.use_original_exist = false
29
+ File.existing_files = specs
30
+
31
+ Kicker::Recipes::Ruby.test_type = 'spec'
32
+ Kicker::Recipes::Ruby.test_cases_root = nil
33
+
34
+ Dir.expects(:glob).with("spec/controllers/**/*_spec.rb").returns(specs)
35
+ Kicker::Recipes::Rails.all_controller_tests.should == specs
24
36
  end
25
37
  end
26
38
 
27
- describe "The misc Rails handlers" do
39
+ describe "The Rails schema handler" do
40
+ before do
41
+ # We assume the Rails schema handler is in the chain after the Rails handler
42
+ # because it's defined in the same recipe
43
+ @handler = Kicker.process_chain[Kicker.process_chain.index(Kicker::Recipes::Rails) + 1]
44
+ end
45
+
28
46
  it "should prepare the test database if db/schema.rb is modified" do
29
47
  Kicker::Utils.expects(:execute).with('rake db:test:prepare')
30
- RAILS_SCHEMA.call(%w{ db/schema.rb })
48
+ @handler.call(%w{ db/schema.rb })
31
49
  end
32
50
 
33
51
  it "should not prepare the test database if another file than db/schema.rb is modified" do
34
52
  Kicker::Utils.expects(:execute).never
35
- RAILS_SCHEMA.call(%w{ Rakefile })
53
+ @handler.call(%w{ Rakefile })
36
54
  end
37
55
  end
38
56
 
39
57
  module SharedRailsHandlerHelper
40
- def should_match(files, tests)
58
+ def should_match(files, tests, existing_files=nil)
59
+ File.use_original_exist = false
60
+ File.existing_files = existing_files || tests
41
61
  @files += files
42
-
43
- tests.each do |test|
44
- File.stubs(:exist?).with(test).returns(true)
45
- end
46
-
47
- Rails.expects(:run_tests).with(tests)
48
- RAILS_FILES.call(@files)
62
+ Kicker::Recipes::Rails.call(@files)
49
63
  @files.should == %w{ Rakefile }
50
64
  end
51
65
  end
@@ -54,11 +68,14 @@ describe "An instance of the Rails handler, with test type `test'" do
54
68
  include SharedRailsHandlerHelper
55
69
 
56
70
  before do
57
- Ruby.test_type = 'test'
58
- File.stubs(:exist?).with('spec').returns(false)
71
+ Kicker::Recipes::Ruby.reset!
59
72
  @files = %w{ Rakefile }
60
73
  end
61
74
 
75
+ after do
76
+ File.use_original_exist = true
77
+ end
78
+
62
79
  it "should map model files to test/unit" do
63
80
  should_match %w{ app/models/member.rb app/models/article.rb },
64
81
  %w{ test/unit/member_test.rb test/unit/article_test.rb }
@@ -86,7 +103,7 @@ describe "An instance of the Rails handler, with test type `test'" do
86
103
 
87
104
  it "should run all functional tests when config/routes.rb is saved" do
88
105
  tests = %w{ test/functional/members_controller_test.rb test/functional/admin/articles_controller_test.rb }
89
- Rails.expects(:all_controller_tests).returns(tests)
106
+ Kicker::Recipes::Rails.expects(:all_controller_tests).returns(tests)
90
107
  should_match %w{ config/routes.rb }, tests
91
108
  end
92
109
 
@@ -97,14 +114,14 @@ describe "An instance of the Rails handler, with test type `test'" do
97
114
 
98
115
  it "should map fixtures to their unit, helper and functional tests if they exist" do
99
116
  tests = %w{ test/unit/member_test.rb test/unit/helpers/members_helper_test.rb test/functional/members_controller_test.rb }
100
- File.stubs(:exist?).returns(false)
101
-
102
- expected_tests = []
103
- tests.each do |test|
104
- expected_tests << test
105
- File.stubs(:exist?).with(test).returns(true)
106
- should_match %w{ test/fixtures/members.yml }, expected_tests
107
- end
117
+ should_match %w{ test/fixtures/members.yml }, tests, []
118
+ Kicker::Recipes::Rails.tests_ran.last.should == []
119
+ end
120
+
121
+ it "should map fixtures to their unit, helper and functional tests if they exist" do
122
+ tests = %w{ test/unit/member_test.rb test/unit/helpers/members_helper_test.rb test/functional/members_controller_test.rb }
123
+ should_match %w{ test/fixtures/members.yml }, tests
124
+ Kicker::Recipes::Rails.tests_ran.last.should == tests
108
125
  end
109
126
  end
110
127
 
@@ -112,11 +129,15 @@ describe "An instance of the Rails handler, with test type `spec'" do
112
129
  include SharedRailsHandlerHelper
113
130
 
114
131
  before do
115
- Ruby.test_type = Ruby.runner_bin = Ruby.test_cases_root = nil
116
- File.stubs(:exist?).with('spec').returns(true)
132
+ Kicker::Recipes::Ruby.reset!
133
+ Kicker::Recipes::Ruby.test_type = 'spec'
117
134
  @files = %w{ Rakefile }
118
135
  end
119
136
 
137
+ after do
138
+ File.use_original_exist = true
139
+ end
140
+
120
141
  it "should map model files to spec/models" do
121
142
  should_match %w{ app/models/member.rb app/models/article.rb },
122
143
  %w{ spec/models/member_spec.rb spec/models/article_spec.rb }
@@ -144,7 +165,7 @@ describe "An instance of the Rails handler, with test type `spec'" do
144
165
 
145
166
  it "should run all controller tests when config/routes.rb is saved" do
146
167
  specs = %w{ spec/controllers/members_controller_test.rb spec/controllers/admin/articles_controller_test.rb }
147
- Rails.expects(:all_controller_tests).returns(specs)
168
+ Kicker::Recipes::Rails.expects(:all_controller_tests).returns(specs)
148
169
  should_match %w{ config/routes.rb }, specs
149
170
  end
150
171
 
@@ -159,15 +180,7 @@ describe "An instance of the Rails handler, with test type `spec'" do
159
180
  end
160
181
 
161
182
  it "should map fixtures to their model, helper and controller specs if they exist" do
162
- Ruby.test_type = 'spec'
163
183
  specs = %w{ spec/models/member_spec.rb spec/helpers/members_helper_spec.rb spec/controllers/members_controller_spec.rb }
164
- File.stubs(:exist?).returns(false)
165
-
166
- expected_specs = []
167
- specs.each do |spec|
168
- expected_specs << spec
169
- File.stubs(:exist?).with(spec).returns(true)
170
- should_match %w{ spec/fixtures/members.yml }, expected_specs
171
- end
184
+ should_match %w{ spec/fixtures/members.yml }, specs
172
185
  end
173
186
  end
@@ -1,102 +1,105 @@
1
1
  require File.expand_path('../../test_helper', __FILE__)
2
-
3
- before = Kicker.process_chain.dup
4
2
  recipe :ruby
5
- RUBY_FILES = (Kicker.process_chain - before).first
6
3
 
7
- class Ruby
8
- def self.execute(command, &block)
9
- @block = block
10
- end
11
-
12
- def self.execute_block
13
- @block
4
+ class Kicker::Recipes::Ruby
5
+ class << self
6
+ attr_accessor :executed
7
+ attr_accessor :blocks
8
+ def execute(command, &block)
9
+ self.executed ||= []
10
+ self.blocks ||= []
11
+
12
+ self.executed << command
13
+ self.blocks << block
14
+ end
14
15
  end
15
16
  end
16
17
 
17
18
  describe "The Ruby handler" do
18
19
  before do
19
- Ruby.test_type = nil
20
- Ruby.runner_bin = nil
21
- Ruby.test_options = []
20
+ @handler = Kicker::Recipes::Ruby
21
+ @handler.reset!
22
22
  end
23
23
 
24
24
  after do
25
- Ruby.test_type = 'test'
26
- Ruby.runner_bin = nil
27
- Ruby.test_options = []
25
+ File.use_original_exist = true
28
26
  end
29
27
 
30
- it "should instantiate a Ruby instance" do
31
- handler = mock('Ruby', :handle! => nil, :tests => %w{ test/1_test.rb test/namespace/2_test.rb })
32
- Ruby.expects(:new).with(%w{ test/1_test.rb Rakefile test/namespace/2_test.rb }).returns(handler)
33
- Ruby.expects(:run_tests).with(%w{ test/1_test.rb test/namespace/2_test.rb })
34
- RUBY_FILES.call(%w{ test/1_test.rb Rakefile test/namespace/2_test.rb })
28
+ it "should instantiate a handler instance when called" do
29
+ tests = %w{ test/1_test.rb Rakefile test/namespace/2_test.rb }
30
+ instance = @handler.new(tests)
31
+ @handler.expects(:new).with(tests).returns(instance)
32
+ @handler.call(tests)
35
33
  end
36
34
 
37
35
  it "should discover whether to use `ruby' or `spec' as the test_type" do
38
- File.expects(:exist?).with('spec').returns(false)
39
- Ruby.test_type.should == 'test'
36
+ File.use_original_exist = false
37
+
38
+ File.existing_files = []
39
+ @handler.test_type.should == 'test'
40
40
 
41
- Ruby.test_type = nil
42
- File.expects(:exist?).with('spec').returns(true)
43
- Ruby.test_type.should == 'spec'
41
+ @handler.reset!
42
+
43
+ File.existing_files = ['spec']
44
+ @handler.test_type.should == 'spec'
44
45
  end
45
46
 
46
47
  it "should run the given tests with a test-unit runner" do
47
- Ruby.expects(:execute).with("ruby -r test/1_test.rb -r test/namespace/2_test.rb -e ''")
48
- Ruby.run_tests(%w{ test/1_test.rb test/namespace/2_test.rb })
48
+ @handler.run_tests(%w{ test/1_test.rb test/namespace/2_test.rb })
49
+ @handler.executed.last.should == "ruby -r test/1_test.rb -r test/namespace/2_test.rb -e ''"
49
50
  end
50
51
 
51
52
  it "should run the given tests with a spec runner" do
52
- Ruby.stubs(:test_type).returns('spec')
53
- Ruby.expects(:execute).with("spec spec/1_spec.rb spec/namespace/2_spec.rb")
54
- Ruby.run_tests(%w{ spec/1_spec.rb spec/namespace/2_spec.rb })
53
+ @handler.test_type = 'spec'
54
+ @handler.run_tests(%w{ test/1_test.rb test/namespace/2_test.rb })
55
+ @handler.executed.last.should == "spec test/1_test.rb test/namespace/2_test.rb"
55
56
  end
56
57
 
57
58
  it "should not try to run the tests if none were given" do
58
- Ruby.expects(:execute).never
59
- Ruby.run_tests([])
59
+ @handler.executed = []
60
+ @handler.run_tests([])
61
+ @handler.executed.should.be.empty
60
62
  end
61
63
 
62
64
  it "should be possible to override the bin path" do
63
- Ruby.runner_bin = '/some/other/runner'
64
- Ruby.expects(:execute).with("/some/other/runner -r test/1_test.rb -r test/namespace/2_test.rb -e ''")
65
- Ruby.run_tests(%w{ test/1_test.rb test/namespace/2_test.rb })
65
+ @handler.runner_bin = '/some/other/runner'
66
+ @handler.run_tests(%w{ test/1_test.rb test/namespace/2_test.rb })
67
+ @handler.executed.last.should == "/some/other/runner -r test/1_test.rb -r test/namespace/2_test.rb -e ''"
66
68
  end
67
69
 
68
70
  it "should set the alternative ruby bin path" do
69
71
  Kicker::Options.parse(%w{ -b /opt/ruby-1.9.2/bin/ruby })
70
- Ruby.runner_bin.should == '/opt/ruby-1.9.2/bin/ruby'
72
+ @handler.runner_bin.should == '/opt/ruby-1.9.2/bin/ruby'
73
+
74
+ @handler.reset!
71
75
 
72
- Ruby.runner_bin = nil
73
76
  Kicker::Options.parse(%w{ --ruby /opt/ruby-1.9.2/bin/ruby })
74
- Ruby.runner_bin.should == '/opt/ruby-1.9.2/bin/ruby'
77
+ @handler.runner_bin.should == '/opt/ruby-1.9.2/bin/ruby'
75
78
  end
76
79
 
77
80
  it "should be possible to add runner options when test_type is `test'" do
78
- Ruby.test_type = 'test'
79
- Ruby.test_options << '-I ./other'
80
- Ruby.expects(:execute).with("ruby -I ./other -r test/1_test.rb -e ''")
81
- Ruby.run_tests(%w{ test/1_test.rb })
81
+ @handler.test_type = 'test'
82
+ @handler.test_options << '-I ./other'
83
+ @handler.run_tests(%w{ test/1_test.rb })
84
+ @handler.executed.last.should == "ruby -I ./other -r test/1_test.rb -e ''"
82
85
  end
83
86
 
84
87
  it "should be possible to add runner options when test_type is `spec'" do
85
- Ruby.test_type = 'spec'
86
- Ruby.test_options << '-I ./other'
87
- Ruby.expects(:execute).with("spec -I ./other spec/1_spec.rb")
88
- Ruby.run_tests(%w{ spec/1_spec.rb })
88
+ @handler.test_type = 'spec'
89
+ @handler.test_options << '-I ./other'
90
+ @handler.run_tests(%w{ spec/1_spec.rb })
91
+ @handler.executed.last.should == "spec -I ./other spec/1_spec.rb"
89
92
  end
90
93
 
91
94
  it "should only show the last line of the output when growling when running test_type is `test'" do
92
- Ruby.run_with_test_runner(%w{ test/1_test.rb test/namespace/2_test.rb })
93
- result = Ruby.execute_block.call(mock('status', :output => "foo\nall pass", :after? => true, :growl? => true))
95
+ @handler.run_with_test_runner(%w{ test/1_test.rb test/namespace/2_test.rb })
96
+ result = @handler.blocks.last.call(mock('status', :output => "foo\nall pass", :after? => true, :growl? => true))
94
97
  result.should == 'all pass'
95
98
  end
96
99
 
97
100
  it "should only show the last line of the output when growling when running test_type is `spec'" do
98
- Ruby.run_with_spec_runner(%w{ spec/1_spec.rb spec/namespace/2_spec.rb })
99
- result = Ruby.execute_block.call(mock('status', :output => "foo\nall pass", :after? => true, :growl? => true))
101
+ @handler.run_with_spec_runner(%w{ spec/1_spec.rb spec/namespace/2_spec.rb })
102
+ result = @handler.blocks.last.call(mock('status', :output => "foo\nall pass", :after? => true, :growl? => true))
100
103
  result.should == 'all pass'
101
104
  end
102
105
  end
@@ -104,36 +107,41 @@ end
104
107
  %w{ test spec }.each do |type|
105
108
  describe "An instance of the Ruby handler, with test type `#{type}'" do
106
109
  before do
107
- Ruby.stubs(:test_type).returns(type)
108
- Ruby.stubs(:test_cases_root).returns(type)
109
- File.stubs(:exist?).with("#{type}/1_#{type}.rb").returns(true)
110
- File.stubs(:exist?).with("#{type}/namespace/2_#{type}.rb").returns(true)
110
+ @handler = Kicker::Recipes::Ruby
111
+ @handler.test_type = type
112
+ @handler.test_cases_root = type
113
+
114
+ File.use_original_exist = false
115
+ File.existing_files = %W(#{type}/1_#{type}.rb #{type}/namespace/2_#{type}.rb)
116
+ end
117
+
118
+ after do
119
+ File.use_original_exist = true
111
120
  end
112
121
 
113
122
  it "should match any test case files" do
114
- files = %W{ Rakefile #{type}/1_#{type}.rb #{type}/namespace/2_#{type}.rb }
115
- handler = Ruby.new(files)
123
+ files = %w(Rakefile) + File.existing_files
124
+ handler = @handler.new(files)
116
125
  handler.handle!
117
126
 
118
- handler.tests.should == %W{ #{type}/1_#{type}.rb #{type}/namespace/2_#{type}.rb }
127
+ handler.tests.should == File.existing_files
119
128
  files.should == %W{ Rakefile }
120
129
  end
121
130
 
122
131
  it "should match files in ./lib" do
123
- files = %W{ Rakefile lib/1.rb lib/namespace/2.rb }
124
- handler = Ruby.new(files)
132
+ files = %w(Rakefile) + File.existing_files
133
+ handler = @handler.new(files)
125
134
  handler.handle!
126
135
 
127
- handler.tests.should == %W{ #{type}/1_#{type}.rb #{type}/namespace/2_#{type}.rb }
136
+ handler.tests.should == File.existing_files
128
137
  files.should == %w{ Rakefile }
129
138
  end
130
139
 
131
140
  it "should match lib tests in the test root as well" do
132
- File.stubs(:exist?).with("#{type}/namespace/2_#{type}.rb").returns(false)
133
- File.stubs(:exist?).with("#{type}/2_#{type}.rb").returns(true)
141
+ File.existing_files = %W(#{type}/1_#{type}.rb #{type}/2_#{type}.rb)
134
142
 
135
143
  files = %W{ Rakefile lib/1.rb lib/namespace/2.rb }
136
- handler = Ruby.new(files)
144
+ handler = @handler.new(files)
137
145
  handler.handle!
138
146
 
139
147
  handler.tests.should == %W{ #{type}/1_#{type}.rb #{type}/2_#{type}.rb }
@@ -141,10 +149,10 @@ end
141
149
  end
142
150
 
143
151
  it "should check if a different test case root" do
144
- Ruby.stubs(:test_cases_root).returns('test/cases')
152
+ @handler.test_cases_root = 'test/cases'
145
153
 
146
154
  files = %W{ Rakefile test/cases/1_#{type}.rb test/cases/namespace/2_#{type}.rb }
147
- handler = Ruby.new(files)
155
+ handler = @handler.new(files)
148
156
  handler.handle!
149
157
 
150
158
  handler.tests.should == %W{ test/cases/1_#{type}.rb test/cases/namespace/2_#{type}.rb }
@@ -4,7 +4,30 @@ module ReloadDotKick; end
4
4
 
5
5
  describe "Kicker::Recipes" do
6
6
  before do
7
- @recipes = Kicker::Recipes
7
+ Kicker::Recipes.reset!
8
+ end
9
+
10
+ it "returns a list of recipes" do
11
+ recipe_files = Kicker::Recipes.recipe_files
12
+ if File.exist?(File.expand_path('~/.kick'))
13
+ Set.new(recipe_files).should == Set.new(Dir.glob('../../lib/kicker/recipes/**/*.rb'))
14
+ else
15
+ Dir.glob('../../lib/kicker/recipes/**/*.rb').each do |filename|
16
+ recipe_files.should.include?(filename)
17
+ end
18
+ end
19
+ end
20
+
21
+ it "returns a list of recipe names" do
22
+ expected = Set.new(%w(could_not_handle_file dot_kick execute_cli_command ignore jstest rails ruby).map { |n| n.to_sym })
23
+ actual = Kicker::Recipes.recipe_names
24
+ if File.exist?(File.expand_path('~/.kick'))
25
+ actual.should == expected
26
+ else
27
+ expected.each do |name|
28
+ actual.should.include?(name)
29
+ end
30
+ end
8
31
  end
9
32
 
10
33
  if File.exist?(File.expand_path('~/.kick'))
@@ -12,13 +35,18 @@ describe "Kicker::Recipes" do
12
35
  $:.should.include File.expand_path('~/.kick')
13
36
  end
14
37
  else
15
- puts "[!] ~/.kick does not exist, skipping an example."
38
+ puts "[!] ~/.kick does not exist, not testing the Kicker directory support."
16
39
  end
17
40
 
18
41
  it "should load a recipe" do
19
- expected_recipe = @recipes.recipes.first
20
- expected_recipe.last.expects(:call)
21
- recipe expected_recipe.first
42
+ name = Kicker::Recipes.recipe_names.last
43
+ recipe name
44
+ end
45
+
46
+ it "does not break when a recipe is loaded twice" do
47
+ name = Kicker::Recipes.recipe_names.last
48
+ recipe name
49
+ recipe name
22
50
  end
23
51
 
24
52
  it "should define a recipe load callback" do
@@ -33,7 +61,7 @@ describe "Kicker::Recipes" do
33
61
  begin
34
62
  recipe :foobar
35
63
  rescue LoadError => e
36
- e.message.should == "Recipe `foobar' does not exist."
64
+ e.message.should.start_with "Can't load recipe `foobar', it doesn't exist on disk."
37
65
  end
38
66
  end
39
67
  end
@@ -1,6 +1,29 @@
1
1
  require 'rubygems'
2
2
  require 'test/spec'
3
3
  require 'mocha'
4
+ require 'set'
4
5
 
5
6
  $:.unshift File.expand_path('../../lib', __FILE__)
6
7
  require 'kicker'
8
+
9
+ class File
10
+ class << self
11
+ attr_accessor :existing_files
12
+ attr_accessor :use_original_exist
13
+
14
+ alias exist_without_stubbing? exist?
15
+ def exist?(file)
16
+ if use_original_exist
17
+ exist_without_stubbing?(file)
18
+ else
19
+ if existing_files
20
+ existing_files.include?(file)
21
+ else
22
+ raise "Please stub the files you want to exist by setting File.existing_files"
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+
29
+ File.use_original_exist = true
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kicker
3
3
  version: !ruby/object:Gem::Version
4
- hash: 1
5
- prerelease: false
4
+ hash: 31
5
+ prerelease:
6
6
  segments:
7
7
  - 2
8
- - 3
9
- - 1
10
- version: 2.3.1
8
+ - 4
9
+ - 0
10
+ version: 2.4.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Eloy Duran
@@ -15,13 +15,82 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-05-27 00:00:00 +02:00
18
+ date: 2012-02-03 00:00:00 +01:00
19
19
  default_executable: kicker
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
+ type: :runtime
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ hash: 3
29
+ segments:
30
+ - 0
31
+ version: "0"
32
+ name: rake
33
+ version_requirements: *id001
34
+ prerelease: false
35
+ - !ruby/object:Gem::Dependency
36
+ type: :development
37
+ requirement: &id002 !ruby/object:Gem::Requirement
38
+ none: false
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ hash: 3
43
+ segments:
44
+ - 0
45
+ version: "0"
46
+ name: mocha
47
+ version_requirements: *id002
48
+ prerelease: false
49
+ - !ruby/object:Gem::Dependency
50
+ type: :development
51
+ requirement: &id003 !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ hash: 3
57
+ segments:
58
+ - 0
59
+ version: "0"
60
+ name: test-spec
61
+ version_requirements: *id003
62
+ prerelease: false
63
+ - !ruby/object:Gem::Dependency
64
+ type: :development
65
+ requirement: &id004 !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ hash: 3
71
+ segments:
72
+ - 0
73
+ version: "0"
74
+ name: activesupport
75
+ version_requirements: *id004
76
+ prerelease: false
77
+ - !ruby/object:Gem::Dependency
78
+ type: :development
79
+ requirement: &id005 !ruby/object:Gem::Requirement
80
+ none: false
81
+ requirements:
82
+ - - ">="
83
+ - !ruby/object:Gem::Version
84
+ hash: 3
85
+ segments:
86
+ - 0
87
+ version: "0"
22
88
  name: rb-fsevent
89
+ version_requirements: *id005
23
90
  prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
91
+ - !ruby/object:Gem::Dependency
92
+ type: :development
93
+ requirement: &id006 !ruby/object:Gem::Requirement
25
94
  none: false
26
95
  requirements:
27
96
  - - ">="
@@ -30,8 +99,23 @@ dependencies:
30
99
  segments:
31
100
  - 0
32
101
  version: "0"
102
+ name: jeweler
103
+ version_requirements: *id006
104
+ prerelease: false
105
+ - !ruby/object:Gem::Dependency
33
106
  type: :runtime
34
- version_requirements: *id001
107
+ requirement: &id007 !ruby/object:Gem::Requirement
108
+ none: false
109
+ requirements:
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ hash: 3
113
+ segments:
114
+ - 0
115
+ version: "0"
116
+ name: rb-fsevent
117
+ version_requirements: *id007
118
+ prerelease: false
35
119
  description:
36
120
  email: eloy.de.enige@gmail.com
37
121
  executables:
@@ -42,8 +126,10 @@ extra_rdoc_files:
42
126
  - LICENSE
43
127
  - README.rdoc
44
128
  files:
45
- - .gitignore
46
129
  - .kick
130
+ - .travis.yml
131
+ - Gemfile
132
+ - Gemfile.lock
47
133
  - LICENSE
48
134
  - README.rdoc
49
135
  - Rakefile
@@ -94,8 +180,8 @@ homepage: http://github.com/alloy/kicker
94
180
  licenses: []
95
181
 
96
182
  post_install_message:
97
- rdoc_options:
98
- - --charset=UTF-8
183
+ rdoc_options: []
184
+
99
185
  require_paths:
100
186
  - lib
101
187
  - vendor
@@ -120,27 +206,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
120
206
  requirements: []
121
207
 
122
208
  rubyforge_project:
123
- rubygems_version: 1.3.7
209
+ rubygems_version: 1.6.2
124
210
  signing_key:
125
211
  specification_version: 3
126
212
  summary: A lean, agnostic, flexible file-change watcher, using OS X FSEvents.
127
- test_files:
128
- - test/callback_chain_test.rb
129
- - test/core_ext_test.rb
130
- - test/filesystem_change_test.rb
131
- - test/fixtures/a_file_thats_reloaded.rb
132
- - test/fsevents_test.rb
133
- - test/growl_test.rb
134
- - test/initialization_test.rb
135
- - test/log_status_helper_test.rb
136
- - test/options_test.rb
137
- - test/recipes/could_not_handle_file_test.rb
138
- - test/recipes/dot_kick_test.rb
139
- - test/recipes/execute_cli_command_test.rb
140
- - test/recipes/ignore_test.rb
141
- - test/recipes/jstest_test.rb
142
- - test/recipes/rails_test.rb
143
- - test/recipes/ruby_test.rb
144
- - test/recipes_test.rb
145
- - test/test_helper.rb
146
- - test/utils_test.rb
213
+ test_files: []
214
+
data/.gitignore DELETED
@@ -1,10 +0,0 @@
1
- *.sw?
2
- .DS_Store
3
- coverage
4
- rdoc
5
- pkg
6
- html/*.html
7
- html/*.rid
8
- html/*.css
9
- html/classes
10
- html/files