loris 0.0.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. data/.gitignore +2 -0
  2. data/README.rdoc +9 -0
  3. data/Rakefile +41 -0
  4. data/TODO +21 -0
  5. data/VERSION +1 -0
  6. data/bin/loris +15 -0
  7. data/cucumber.yml +1 -0
  8. data/examples/self_test/jsl.conf +1 -0
  9. data/examples/self_test/spec/spec.rhino.js +6 -0
  10. data/features/javascript_lint.feature +34 -0
  11. data/features/run.feature +36 -0
  12. data/features/step_definitons/all.rb +69 -0
  13. data/features/support/env.rb +145 -0
  14. data/lib/always_continuer.rb +7 -0
  15. data/lib/browser_finder.rb +23 -0
  16. data/lib/file_actioner.rb +16 -0
  17. data/lib/file_finder.rb +31 -0
  18. data/lib/filters/ends_with_filter.rb +17 -0
  19. data/lib/filters/extension_filter.rb +20 -0
  20. data/lib/filters/file_filter.rb +14 -0
  21. data/lib/filters/modified_filter.rb +21 -0
  22. data/lib/icons/error.png +0 -0
  23. data/lib/icons/failure.png +0 -0
  24. data/lib/icons/info.png +0 -0
  25. data/lib/icons/success.png +0 -0
  26. data/lib/icons/warning.png +0 -0
  27. data/lib/js-test-driver/JsTestDriver-1.1.jar +0 -0
  28. data/lib/js-test-driver/plugins/coverage-1.1.jar +0 -0
  29. data/lib/loris.rb +170 -0
  30. data/lib/outputs/growl_output.rb +26 -0
  31. data/lib/outputs/output_collection.rb +23 -0
  32. data/lib/outputs/shell_output.rb +17 -0
  33. data/lib/outputs/unix_console_clearing_output.rb +13 -0
  34. data/lib/outputs/windows_console_clearing_output.rb +13 -0
  35. data/lib/pinger.rb +23 -0
  36. data/lib/poller.rb +16 -0
  37. data/lib/sleep_waiter.rb +11 -0
  38. data/lib/task_manager.rb +45 -0
  39. data/lib/tasks/command_line_task.rb +28 -0
  40. data/lib/tasks/javascript_lint/javascript_lint_parser.rb +45 -0
  41. data/lib/tasks/javascript_lint/javascript_lint_runner.rb +25 -0
  42. data/lib/tasks/js_test_driver/js_test_driver_config.rb +22 -0
  43. data/lib/tasks/js_test_driver/js_test_driver_parser.rb +28 -0
  44. data/lib/tasks/js_test_driver/js_test_driver_runner.rb +28 -0
  45. data/lib/tasks/js_test_driver/js_test_driver_server.rb +38 -0
  46. data/lib/tasks/jspec/jspec_parser.rb +30 -0
  47. data/lib/tasks/jspec/jspec_runner.rb +25 -0
  48. data/lib/tasks/list_task.rb +34 -0
  49. data/lib/tasks/rspec/rspec_parser.rb +25 -0
  50. data/lib/tasks/rspec/rspec_runner.rb +25 -0
  51. data/lib/unix_process.rb +7 -0
  52. data/lib/windows_process.rb +12 -0
  53. data/loris.gemspec +133 -0
  54. data/loris.tmproj +232 -0
  55. data/spec/file_actioner_spec.rb +41 -0
  56. data/spec/file_finder_spec.rb +73 -0
  57. data/spec/filters/ends_with_filter_spec.rb +26 -0
  58. data/spec/filters/file_filter_spec.rb +28 -0
  59. data/spec/filters/modified_filter_spec.rb +47 -0
  60. data/spec/growl_output_spec.rb +33 -0
  61. data/spec/list_task_spec.rb +58 -0
  62. data/spec/poller_spec.rb +28 -0
  63. data/spec/shell_output_spec.rb +25 -0
  64. data/spec/task_manager_spec.rb +64 -0
  65. data/spec/tasks/javascript_lint/javascript_lint_runner_spec.rb +90 -0
  66. data/spec/tasks/js_test_driver/js_test_driver_runner_spec.rb +92 -0
  67. data/spec/tasks/jspec/jspec_parser_spec.rb +28 -0
  68. data/spec/tasks/jspec/jspec_runner_spec.rb +78 -0
  69. metadata +174 -0
@@ -0,0 +1,58 @@
1
+ require 'lib/tasks/list_task.rb'
2
+
3
+ describe ListTask do
4
+
5
+ before do
6
+ @files = {
7
+ :all => ['/path/to.file', '/not/in.filtered'],
8
+ :filtered => ['/path/to.file']
9
+ }
10
+ end
11
+
12
+ it "should output the given paths" do
13
+ oa = ListTask.new
14
+ result = oa.run(@files)
15
+
16
+ result[:detail].should eql "/path/to.file\n"
17
+ end
18
+
19
+ it "should output the given paths using the given format string" do
20
+ format_string = "the file '%s' has been modified!"
21
+
22
+ oa = ListTask.new(format_string)
23
+ result = oa.run(@files)
24
+
25
+ result[:detail].should eql "the file '/path/to.file' has been modified!\n"
26
+ end
27
+
28
+ it "should return a title" do
29
+ oa = ListTask.new
30
+ result = oa.run(@files)
31
+
32
+ result[:title].should eql "List"
33
+ end
34
+
35
+ it "should return success always" do
36
+ oa = ListTask.new
37
+ result = oa.run(@files)
38
+
39
+ result[:state].should eql :success
40
+ end
41
+
42
+ it "should return summary for 1 file" do
43
+ oa = ListTask.new
44
+ result = oa.run(@files)
45
+
46
+ result[:first].should eql @files[:filtered][0]
47
+ end
48
+
49
+ it "should return summary for 3 files" do
50
+ oa = ListTask.new
51
+ result = oa.run({ :filtered => ['first.file','second.file','third.file'] })
52
+
53
+ result[:first].should eql "3 files."
54
+ end
55
+
56
+ end
57
+
58
+
@@ -0,0 +1,28 @@
1
+ require 'lib/poller.rb'
2
+
3
+ describe Poller do
4
+
5
+ before do
6
+ continue = true
7
+ @continuer = mock('continuer')
8
+ @continuer.should_receive(:continue?).any_number_of_times {
9
+ continue
10
+ }
11
+
12
+ @waiter = mock('waiter')
13
+ @waiter.should_receive(:wait).ordered
14
+
15
+ @action = mock('actioner')
16
+ @action.should_receive(:run).ordered {
17
+ continue = false
18
+ }
19
+ end
20
+
21
+ it "should wait and call action while contunuer returns true" do
22
+ p = Poller.new(@waiter, @continuer, @action)
23
+ p.start
24
+ end
25
+
26
+ end
27
+
28
+
@@ -0,0 +1,25 @@
1
+ require 'lib/outputs/shell_output.rb'
2
+
3
+ describe ShellOutput do
4
+
5
+ it "should output title, state, summary, and detail" do
6
+ result = {
7
+ :state => :success,
8
+ :title => 'Example Title',
9
+ :summary => 'Example Summary',
10
+ :detail => 'Detail goes here...'
11
+ }
12
+
13
+ output = mock('Output')
14
+ output.should_receive(:puts).with(:success)
15
+ output.should_receive(:puts).with('Example Title')
16
+ output.should_receive(:puts).with('Example Summary')
17
+ output.should_receive(:puts).with('Detail goes here...')
18
+
19
+ shell_output = ShellOutput.new(output)
20
+ shell_output.add_result(result)
21
+ end
22
+
23
+ end
24
+
25
+
@@ -0,0 +1,64 @@
1
+ require 'lib/task_manager.rb'
2
+
3
+ describe TaskManager do
4
+
5
+ before do
6
+ @files = ['/path/to.file']
7
+ @result = {
8
+ :state => :success,
9
+ :detail =>'task output'
10
+ }
11
+
12
+ @task1 = mock('Task 1')
13
+ @task2 = mock('Task 2')
14
+ @output = mock('Output')
15
+
16
+ end
17
+
18
+ it "should call start_run and then output a run task" do
19
+ @task1.should_receive(:run).with(@files).and_return(@result)
20
+ @output.should_receive(:start_run)
21
+ @output.should_receive(:add_result).with(@result)
22
+
23
+ task_manager = TaskManager.new(@output)
24
+ task_manager.add(@task1)
25
+ task_manager.run(@files)
26
+ end
27
+
28
+ it "should run multiple tasks in order added" do
29
+ @task1.should_receive(:run).ordered.with(@files).and_return(@result)
30
+ @task2.should_receive(:run).ordered.with(@files).and_return(@result)
31
+ @output.should_receive(:start_run)
32
+ @output.should_receive(:add_result).any_number_of_times
33
+
34
+ task_manager = TaskManager.new(@output)
35
+ task_manager.add(@task1)
36
+ task_manager.add(@task2)
37
+ task_manager.run(@files)
38
+ end
39
+
40
+ it "should stop running tasks on error state" do
41
+ @task1.should_receive(:run).ordered.with(@files).and_return({:state => :error})
42
+ @output.should_receive(:start_run)
43
+ @output.should_receive(:add_result).any_number_of_times
44
+
45
+ task_manager = TaskManager.new(@output)
46
+ task_manager.add(@task1)
47
+ task_manager.add(@task2)
48
+ task_manager.run(@files)
49
+ end
50
+
51
+ it "should stop running tasks on failure state" do
52
+ @task1.should_receive(:run).ordered.with(@files).and_return({:state => :failure})
53
+ @output.should_receive(:start_run)
54
+ @output.should_receive(:add_result).any_number_of_times
55
+
56
+ task_manager = TaskManager.new(@output)
57
+ task_manager.add(@task1)
58
+ task_manager.add(@task2)
59
+ task_manager.run(@files)
60
+ end
61
+
62
+ end
63
+
64
+
@@ -0,0 +1,90 @@
1
+ require 'lib/tasks/javascript_lint/javascript_lint_runner.rb'
2
+
3
+ describe JavascriptLintRunner do
4
+
5
+ before do
6
+ @filter = mock('JS Extension Filter')
7
+ end
8
+
9
+ describe "is_configured?" do
10
+
11
+ it "should return true if jsl.conf exists" do
12
+
13
+ dir = '/a/dir/structure'
14
+ all_files = ['/a/dir/structure/jsl.conf']
15
+
16
+ runner = JavascriptLintRunner.new(dir, @filter)
17
+
18
+ runner.is_configured?(all_files).should be_true
19
+
20
+ end
21
+
22
+ it "should return false if jsl.conf does not exists" do
23
+
24
+ dir = '/a/dir/structure'
25
+ all_files = ['/a/dir/structure/other.conf']
26
+
27
+ runner = JavascriptLintRunner.new(dir, @filter)
28
+
29
+ runner.is_configured?(all_files).should be_false
30
+
31
+ end
32
+
33
+ end
34
+
35
+ describe "should_run?" do
36
+
37
+ it "should return true if a file ends with a js extension" do
38
+
39
+ dir = '/a/dir/structure'
40
+ modified_files = ['/a/dir/structure/another_dir/example.js']
41
+ @filter.should_receive(:filter).and_return(true)
42
+
43
+ runner = JavascriptLintRunner.new(dir, @filter)
44
+
45
+ runner.should_run?(modified_files).should be_true
46
+
47
+ end
48
+
49
+ it "should return true if any file ends with a js extension" do
50
+
51
+ dir = '/a/dir/structure'
52
+ modified_files = ['/a/dir/structure/nonjs.file', '/a/dir/structure/another_dir/example.js']
53
+ @filter.should_receive(:filter).ordered.and_return(false)
54
+ @filter.should_receive(:filter).ordered.and_return(true)
55
+
56
+ runner = JavascriptLintRunner.new(dir, @filter)
57
+
58
+ runner.should_run?(modified_files).should be_true
59
+
60
+ end
61
+
62
+ it "should return false if no file ends with a js extension" do
63
+
64
+ dir = '/a/dir/structure'
65
+ modified_files = ['/a/dir/structure/nonjs.file']
66
+ @filter.should_receive(:filter).ordered.and_return(false)
67
+
68
+ runner = JavascriptLintRunner.new(dir, @filter)
69
+
70
+ runner.should_run?(modified_files).should be_false
71
+
72
+ end
73
+
74
+ it "should return true if the jsl.conf file was modified" do
75
+
76
+ dir = '/a/dir/structure'
77
+ modified_files = ['/a/dir/structure/jsl.conf']
78
+ @filter.should_receive(:filter).ordered.and_return(false)
79
+
80
+ runner = JavascriptLintRunner.new(dir, @filter)
81
+
82
+ runner.should_run?(modified_files).should be_true
83
+
84
+ end
85
+
86
+ end
87
+
88
+ end
89
+
90
+
@@ -0,0 +1,92 @@
1
+ require 'lib/tasks/js_test_driver/js_test_driver_runner.rb'
2
+
3
+ describe JsTestDriverRunner do
4
+
5
+ before do
6
+ @jar = '/path/to/jsTestDriver.jar'
7
+ @filter = mock('JS Extension Filter')
8
+ @server = mock('JS Test Driver Server')
9
+ end
10
+
11
+ describe "is_configured?" do
12
+
13
+ it "should return true if jsTestDriver.conf exists" do
14
+
15
+ dir = '/a/dir/structure'
16
+ all_files = ['/a/dir/structure/jsTestDriver.conf']
17
+
18
+ runner = JsTestDriverRunner.new(dir, @jar, @filter, @server)
19
+
20
+ runner.is_configured?(all_files).should be_true
21
+
22
+ end
23
+
24
+ it "should return false if jsl.conf does not exists" do
25
+
26
+ dir = '/a/dir/structure'
27
+ all_files = ['/a/dir/structure/other.conf']
28
+
29
+ runner = JsTestDriverRunner.new(dir, @jar, @filter, @server)
30
+
31
+ runner.is_configured?(all_files).should be_false
32
+
33
+ end
34
+
35
+ end
36
+
37
+ describe "should_run?" do
38
+
39
+ it "should return true if a file ends with a js extension" do
40
+
41
+ dir = '/a/dir/structure'
42
+ modified_files = ['/a/dir/structure/another_dir/example.js']
43
+ @filter.should_receive(:filter).and_return(true)
44
+
45
+ runner = JsTestDriverRunner.new(dir, @jar, @filter, @server)
46
+
47
+ runner.should_run?(modified_files).should be_true
48
+
49
+ end
50
+
51
+ it "should return true if any file ends with a js extension" do
52
+
53
+ dir = '/a/dir/structure'
54
+ modified_files = ['/a/dir/structure/nonjs.file', '/a/dir/structure/another_dir/example.js']
55
+ @filter.should_receive(:filter).ordered.and_return(false)
56
+ @filter.should_receive(:filter).ordered.and_return(true)
57
+
58
+ runner = JsTestDriverRunner.new(dir, @jar, @filter, @server)
59
+
60
+ runner.should_run?(modified_files).should be_true
61
+
62
+ end
63
+
64
+ it "should return false if no file ends with a js extension" do
65
+
66
+ dir = '/a/dir/structure'
67
+ modified_files = ['/a/dir/structure/nonjs.file']
68
+ @filter.should_receive(:filter).ordered.and_return(false)
69
+
70
+ runner = JsTestDriverRunner.new(dir, @jar, @filter, @server)
71
+
72
+ runner.should_run?(modified_files).should be_false
73
+
74
+ end
75
+
76
+ it "should return true if the jsTestDriver.conf file was modified" do
77
+
78
+ dir = '/a/dir/structure'
79
+ modified_files = ['/a/dir/structure/jsTestDriver.conf']
80
+ @filter.should_receive(:filter).ordered.and_return(false)
81
+
82
+ runner = JsTestDriverRunner.new(dir, @jar, @filter, @server)
83
+
84
+ runner.should_run?(modified_files).should be_true
85
+
86
+ end
87
+
88
+ end
89
+
90
+ end
91
+
92
+
@@ -0,0 +1,28 @@
1
+ require 'lib/tasks/jspec/jspec_parser.rb'
2
+
3
+ describe JSpecParser do
4
+
5
+ it "should return error if unable to parse jspec output" do
6
+ jspec_parser = JSpecParser.new
7
+ state, summary, first = jspec_parser.parse_result('A JSpec error message here...')
8
+
9
+ state.should eql :error
10
+ end
11
+
12
+ it "should return success if all tests pass" do
13
+ jspec_parser = JSpecParser.new
14
+ state, summary, first = jspec_parser.parse_result('Passes: 3 Failures: 0')
15
+
16
+ state.should eql :success
17
+ end
18
+
19
+ it "should return failure if any test fails" do
20
+ jspec_parser = JSpecParser.new
21
+ state, summary, first = jspec_parser.parse_result('Passes: 2 Failures: 1')
22
+
23
+ state.should eql :failure
24
+ end
25
+
26
+ end
27
+
28
+
@@ -0,0 +1,78 @@
1
+ require 'lib/tasks/jspec/jspec_runner.rb'
2
+
3
+ describe JSpecRunner do
4
+
5
+ before do
6
+ @filter = mock('JS Extension Filter')
7
+ end
8
+
9
+ describe "is_configured?" do
10
+
11
+ it "should return true if spec/spec.rhino.js exists" do
12
+
13
+ dir = '/a/dir/structure'
14
+ all_files = ['/a/dir/structure/spec/spec.rhino.js']
15
+
16
+ runner = JSpecRunner.new(dir, @filter)
17
+
18
+ runner.is_configured?(all_files).should be_true
19
+
20
+ end
21
+
22
+ it "should return false if spec/spec.rhino.js does not exists" do
23
+
24
+ dir = '/a/dir/structure'
25
+ all_files = ['/a/dir/structure/spec/other_js_spec_file.js']
26
+
27
+ runner = JSpecRunner.new(dir, @filter)
28
+
29
+ runner.is_configured?(all_files).should be_false
30
+
31
+ end
32
+
33
+ end
34
+
35
+ describe "should_run?" do
36
+
37
+ it "should return true if a file ends with a js extension" do
38
+
39
+ dir = '/a/dir/structure'
40
+ modified_files = ['/a/dir/structure/another_dir/example.js']
41
+ @filter.should_receive(:filter).and_return(true)
42
+
43
+ runner = JSpecRunner.new(dir, @filter)
44
+
45
+ runner.should_run?(modified_files).should be_true
46
+
47
+ end
48
+
49
+ it "should return true if any file ends with a js extension" do
50
+
51
+ dir = '/a/dir/structure'
52
+ modified_files = ['/a/dir/structure/nonjs.file', '/a/dir/structure/another_dir/example.js']
53
+ @filter.should_receive(:filter).ordered.and_return(false)
54
+ @filter.should_receive(:filter).ordered.and_return(true)
55
+
56
+ runner = JSpecRunner.new(dir, @filter)
57
+
58
+ runner.should_run?(modified_files).should be_true
59
+
60
+ end
61
+
62
+ it "should return false if no file ends with a js extension" do
63
+
64
+ dir = '/a/dir/structure'
65
+ modified_files = ['/a/dir/structure/nonjs.file']
66
+ @filter.should_receive(:filter).ordered.and_return(false)
67
+
68
+ runner = JSpecRunner.new(dir, @filter)
69
+
70
+ runner.should_run?(modified_files).should be_false
71
+
72
+ end
73
+
74
+ end
75
+
76
+ end
77
+
78
+
metadata ADDED
@@ -0,0 +1,174 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: loris
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.12
5
+ platform: ruby
6
+ authors:
7
+ - Karl O'Keeffe
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-10-02 00:00:00 +01:00
13
+ default_executable: loris
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: visionmedia-bind
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 0.2.6
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: karl-growl
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 1.0.3
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: extensions
37
+ type: :runtime
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 0.6.0
44
+ version:
45
+ - !ruby/object:Gem::Dependency
46
+ name: win32-process
47
+ type: :runtime
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 0.6.1
54
+ version:
55
+ description: Automatically run javascript unit tests
56
+ email: loris@monket.net
57
+ executables:
58
+ - loris
59
+ extensions: []
60
+
61
+ extra_rdoc_files:
62
+ - README.rdoc
63
+ files:
64
+ - .gitignore
65
+ - README.rdoc
66
+ - Rakefile
67
+ - TODO
68
+ - VERSION
69
+ - bin/loris
70
+ - cucumber.yml
71
+ - examples/self_test/jsl.conf
72
+ - examples/self_test/spec/spec.rhino.js
73
+ - features/javascript_lint.feature
74
+ - features/run.feature
75
+ - features/step_definitons/all.rb
76
+ - features/support/env.rb
77
+ - lib/always_continuer.rb
78
+ - lib/browser_finder.rb
79
+ - lib/file_actioner.rb
80
+ - lib/file_finder.rb
81
+ - lib/filters/ends_with_filter.rb
82
+ - lib/filters/extension_filter.rb
83
+ - lib/filters/file_filter.rb
84
+ - lib/filters/modified_filter.rb
85
+ - lib/icons/error.png
86
+ - lib/icons/failure.png
87
+ - lib/icons/info.png
88
+ - lib/icons/success.png
89
+ - lib/icons/warning.png
90
+ - lib/js-test-driver/JsTestDriver-1.1.jar
91
+ - lib/js-test-driver/plugins/coverage-1.1.jar
92
+ - lib/loris.rb
93
+ - lib/outputs/growl_output.rb
94
+ - lib/outputs/output_collection.rb
95
+ - lib/outputs/shell_output.rb
96
+ - lib/outputs/unix_console_clearing_output.rb
97
+ - lib/outputs/windows_console_clearing_output.rb
98
+ - lib/pinger.rb
99
+ - lib/poller.rb
100
+ - lib/sleep_waiter.rb
101
+ - lib/task_manager.rb
102
+ - lib/tasks/command_line_task.rb
103
+ - lib/tasks/javascript_lint/javascript_lint_parser.rb
104
+ - lib/tasks/javascript_lint/javascript_lint_runner.rb
105
+ - lib/tasks/js_test_driver/js_test_driver_config.rb
106
+ - lib/tasks/js_test_driver/js_test_driver_parser.rb
107
+ - lib/tasks/js_test_driver/js_test_driver_runner.rb
108
+ - lib/tasks/js_test_driver/js_test_driver_server.rb
109
+ - lib/tasks/jspec/jspec_parser.rb
110
+ - lib/tasks/jspec/jspec_runner.rb
111
+ - lib/tasks/list_task.rb
112
+ - lib/tasks/rspec/rspec_parser.rb
113
+ - lib/tasks/rspec/rspec_runner.rb
114
+ - lib/unix_process.rb
115
+ - lib/windows_process.rb
116
+ - loris.gemspec
117
+ - loris.tmproj
118
+ - spec/file_actioner_spec.rb
119
+ - spec/file_finder_spec.rb
120
+ - spec/filters/ends_with_filter_spec.rb
121
+ - spec/filters/file_filter_spec.rb
122
+ - spec/filters/modified_filter_spec.rb
123
+ - spec/growl_output_spec.rb
124
+ - spec/list_task_spec.rb
125
+ - spec/poller_spec.rb
126
+ - spec/shell_output_spec.rb
127
+ - spec/task_manager_spec.rb
128
+ - spec/tasks/javascript_lint/javascript_lint_runner_spec.rb
129
+ - spec/tasks/js_test_driver/js_test_driver_runner_spec.rb
130
+ - spec/tasks/jspec/jspec_parser_spec.rb
131
+ - spec/tasks/jspec/jspec_runner_spec.rb
132
+ has_rdoc: true
133
+ homepage: http://github.com/karl/loris
134
+ licenses: []
135
+
136
+ post_install_message:
137
+ rdoc_options:
138
+ - --charset=UTF-8
139
+ require_paths:
140
+ - lib
141
+ required_ruby_version: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: "0"
146
+ version:
147
+ required_rubygems_version: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - ">="
150
+ - !ruby/object:Gem::Version
151
+ version: "0"
152
+ version:
153
+ requirements: []
154
+
155
+ rubyforge_project:
156
+ rubygems_version: 1.3.5
157
+ signing_key:
158
+ specification_version: 3
159
+ summary: Automatically run javascript unit tests
160
+ test_files:
161
+ - spec/file_actioner_spec.rb
162
+ - spec/file_finder_spec.rb
163
+ - spec/filters/ends_with_filter_spec.rb
164
+ - spec/filters/file_filter_spec.rb
165
+ - spec/filters/modified_filter_spec.rb
166
+ - spec/growl_output_spec.rb
167
+ - spec/list_task_spec.rb
168
+ - spec/poller_spec.rb
169
+ - spec/shell_output_spec.rb
170
+ - spec/task_manager_spec.rb
171
+ - spec/tasks/javascript_lint/javascript_lint_runner_spec.rb
172
+ - spec/tasks/js_test_driver/js_test_driver_runner_spec.rb
173
+ - spec/tasks/jspec/jspec_parser_spec.rb
174
+ - spec/tasks/jspec/jspec_runner_spec.rb