loris 0.0.12
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -0
- data/README.rdoc +9 -0
- data/Rakefile +41 -0
- data/TODO +21 -0
- data/VERSION +1 -0
- data/bin/loris +15 -0
- data/cucumber.yml +1 -0
- data/examples/self_test/jsl.conf +1 -0
- data/examples/self_test/spec/spec.rhino.js +6 -0
- data/features/javascript_lint.feature +34 -0
- data/features/run.feature +36 -0
- data/features/step_definitons/all.rb +69 -0
- data/features/support/env.rb +145 -0
- data/lib/always_continuer.rb +7 -0
- data/lib/browser_finder.rb +23 -0
- data/lib/file_actioner.rb +16 -0
- data/lib/file_finder.rb +31 -0
- data/lib/filters/ends_with_filter.rb +17 -0
- data/lib/filters/extension_filter.rb +20 -0
- data/lib/filters/file_filter.rb +14 -0
- data/lib/filters/modified_filter.rb +21 -0
- data/lib/icons/error.png +0 -0
- data/lib/icons/failure.png +0 -0
- data/lib/icons/info.png +0 -0
- data/lib/icons/success.png +0 -0
- data/lib/icons/warning.png +0 -0
- data/lib/js-test-driver/JsTestDriver-1.1.jar +0 -0
- data/lib/js-test-driver/plugins/coverage-1.1.jar +0 -0
- data/lib/loris.rb +170 -0
- data/lib/outputs/growl_output.rb +26 -0
- data/lib/outputs/output_collection.rb +23 -0
- data/lib/outputs/shell_output.rb +17 -0
- data/lib/outputs/unix_console_clearing_output.rb +13 -0
- data/lib/outputs/windows_console_clearing_output.rb +13 -0
- data/lib/pinger.rb +23 -0
- data/lib/poller.rb +16 -0
- data/lib/sleep_waiter.rb +11 -0
- data/lib/task_manager.rb +45 -0
- data/lib/tasks/command_line_task.rb +28 -0
- data/lib/tasks/javascript_lint/javascript_lint_parser.rb +45 -0
- data/lib/tasks/javascript_lint/javascript_lint_runner.rb +25 -0
- data/lib/tasks/js_test_driver/js_test_driver_config.rb +22 -0
- data/lib/tasks/js_test_driver/js_test_driver_parser.rb +28 -0
- data/lib/tasks/js_test_driver/js_test_driver_runner.rb +28 -0
- data/lib/tasks/js_test_driver/js_test_driver_server.rb +38 -0
- data/lib/tasks/jspec/jspec_parser.rb +30 -0
- data/lib/tasks/jspec/jspec_runner.rb +25 -0
- data/lib/tasks/list_task.rb +34 -0
- data/lib/tasks/rspec/rspec_parser.rb +25 -0
- data/lib/tasks/rspec/rspec_runner.rb +25 -0
- data/lib/unix_process.rb +7 -0
- data/lib/windows_process.rb +12 -0
- data/loris.gemspec +133 -0
- data/loris.tmproj +232 -0
- data/spec/file_actioner_spec.rb +41 -0
- data/spec/file_finder_spec.rb +73 -0
- data/spec/filters/ends_with_filter_spec.rb +26 -0
- data/spec/filters/file_filter_spec.rb +28 -0
- data/spec/filters/modified_filter_spec.rb +47 -0
- data/spec/growl_output_spec.rb +33 -0
- data/spec/list_task_spec.rb +58 -0
- data/spec/poller_spec.rb +28 -0
- data/spec/shell_output_spec.rb +25 -0
- data/spec/task_manager_spec.rb +64 -0
- data/spec/tasks/javascript_lint/javascript_lint_runner_spec.rb +90 -0
- data/spec/tasks/js_test_driver/js_test_driver_runner_spec.rb +92 -0
- data/spec/tasks/jspec/jspec_parser_spec.rb +28 -0
- data/spec/tasks/jspec/jspec_runner_spec.rb +78 -0
- 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
|
+
|
data/spec/poller_spec.rb
ADDED
@@ -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
|