jslint-v8 1.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile.lock +5 -5
- data/README.markdown +50 -0
- data/bin/jslint-v8 +28 -4
- data/lib/jslint-v8.rb +3 -1
- data/lib/jslint-v8/formatter.rb +5 -1
- data/lib/jslint-v8/option_parser.rb +39 -0
- data/lib/jslint-v8/rake_task.rb +15 -1
- data/lib/jslint-v8/runner.rb +95 -13
- data/lib/jslint-v8/version.rb +2 -2
- data/test/test_cli.rb +28 -3
- data/test/test_runner.rb +11 -0
- data/test/test_task.rb +28 -0
- metadata +60 -84
data/Gemfile.lock
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
jslint-v8 (1.
|
4
|
+
jslint-v8 (1.1.0)
|
5
5
|
therubyracer (~> 0.9.4)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: http://rubygems.org/
|
9
9
|
specs:
|
10
|
-
libv8 (3.3.10.
|
11
|
-
rake (0.9.2)
|
12
|
-
test-unit (2.
|
13
|
-
therubyracer (0.9.
|
10
|
+
libv8 (3.3.10.4)
|
11
|
+
rake (0.9.2.2)
|
12
|
+
test-unit (2.4.5)
|
13
|
+
therubyracer (0.9.9)
|
14
14
|
libv8 (~> 3.3.10)
|
15
15
|
|
16
16
|
PLATFORMS
|
data/README.markdown
CHANGED
@@ -1 +1,51 @@
|
|
1
1
|
[](http://travis-ci.org/whoward/jslint-v8)
|
2
|
+
|
3
|
+
# Description
|
4
|
+
|
5
|
+
JSLintV8 is simply a ruby wrapper that helps you run JSLint as an automated
|
6
|
+
code quality standards tool inside your projects. It's geared towards being run
|
7
|
+
in a continuous integration process (CI), such as Jenkins.
|
8
|
+
|
9
|
+
While it is focused on Ruby projects it can just as easily be used for any other
|
10
|
+
language out there so long as you have Ruby installed on your system.
|
11
|
+
|
12
|
+
Like it's name implies we run JSLint on the JavaScript V8 interpreter so, in
|
13
|
+
other words, it runs really really fast.
|
14
|
+
|
15
|
+
# How to use
|
16
|
+
|
17
|
+
1. Make sure you have Ruby and Rubygems installed on your computer (most operating systems except for Windows have this already)
|
18
|
+
|
19
|
+
2. In your console run: ```gem install jslint-v8```
|
20
|
+
|
21
|
+
3. Run the following command ```jslint-v8 path/to/file.js```
|
22
|
+
|
23
|
+
For full details on using the command line interface simply type ```jslint-v8```
|
24
|
+
|
25
|
+
# Rake Task
|
26
|
+
|
27
|
+
In addition to the CLI you can also set up a Rake task to automatically run against
|
28
|
+
a set of files. Inside your Rakefile add the following:
|
29
|
+
|
30
|
+
```ruby
|
31
|
+
require 'rake'
|
32
|
+
require 'jslint-v8'
|
33
|
+
|
34
|
+
namespace :js do
|
35
|
+
JSLintV8::RakeTask.new do |task|
|
36
|
+
task.name = "lint"
|
37
|
+
task.include_pattern = "app/javascripts/**/*.js"
|
38
|
+
task.exclude_pattern = "app/javascripts/{generated,lib}/**/*.js"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
```
|
42
|
+
|
43
|
+
Modify the settings as needed. This code will make a task "js:lint" which will
|
44
|
+
run against all javascript files under ```app/javascripts``` except under
|
45
|
+
```app/javascripts/lib``` and ```app/javascripts/generated```
|
46
|
+
|
47
|
+
# Contributing
|
48
|
+
|
49
|
+
Whatever works, but my preference is for you to fork this repository on github
|
50
|
+
and write your changes on a separate branch. When finished you can send them
|
51
|
+
to me by issuing a pull request.
|
data/bin/jslint-v8
CHANGED
@@ -2,15 +2,39 @@
|
|
2
2
|
require 'rubygems'
|
3
3
|
require File.expand_path("../lib/jslint-v8", File.dirname(__FILE__))
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
5
|
+
def print_usage
|
6
|
+
STDERR.puts JSLintV8::OptionParser.new.help
|
7
|
+
exit(255)
|
8
8
|
end
|
9
9
|
|
10
|
+
# if no parameters are passed then print usage and exit
|
11
|
+
print_usage if ARGV.empty?
|
12
|
+
|
13
|
+
# parse the options out of the command line
|
14
|
+
begin
|
15
|
+
parser = JSLintV8::OptionParser.new
|
16
|
+
parser.parse!
|
17
|
+
rescue SystemExit => e
|
18
|
+
# exit with a failing status code, happens with the -h and -v options
|
19
|
+
exit(255)
|
20
|
+
rescue Exception => e
|
21
|
+
# print out an error message and exit with a failing exit code
|
22
|
+
STDERR.puts "#{$0}: #{e.message} (#{e.class.to_s})"
|
23
|
+
exit(255)
|
24
|
+
end
|
25
|
+
|
26
|
+
# if no parameters are left (nothing beyond options given) then print usage and exit
|
27
|
+
print_usage if ARGV.empty?
|
28
|
+
|
29
|
+
# set up a formatter for standard output
|
10
30
|
formatter = JSLintV8::Formatter.new(STDOUT)
|
11
31
|
|
32
|
+
# set up a runner
|
33
|
+
runner = JSLintV8::Runner.new(ARGV)
|
34
|
+
runner.jslint_options.merge!(parser.options[:lint_options])
|
35
|
+
|
12
36
|
# get a list of all failed files, printing . or * along the way depending on the result
|
13
|
-
lint_result =
|
37
|
+
lint_result = runner.run do |file, errors|
|
14
38
|
formatter.tick(errors)
|
15
39
|
end
|
16
40
|
|
data/lib/jslint-v8.rb
CHANGED
@@ -3,4 +3,6 @@ module JSLintV8 end
|
|
3
3
|
require File.expand_path("jslint-v8/runner", File.dirname(__FILE__))
|
4
4
|
require File.expand_path("jslint-v8/rake_task", File.dirname(__FILE__))
|
5
5
|
require File.expand_path("jslint-v8/lint_error", File.dirname(__FILE__))
|
6
|
-
require File.expand_path("jslint-v8/formatter", File.dirname(__FILE__))
|
6
|
+
require File.expand_path("jslint-v8/formatter", File.dirname(__FILE__))
|
7
|
+
require File.expand_path("jslint-v8/option_parser", File.dirname(__FILE__))
|
8
|
+
require File.expand_path("jslint-v8/version", File.dirname(__FILE__))
|
data/lib/jslint-v8/formatter.rb
CHANGED
@@ -27,7 +27,11 @@ module JSLintV8
|
|
27
27
|
|
28
28
|
out.print "\nFailures:\n\n"
|
29
29
|
|
30
|
-
|
30
|
+
# we iterate the sorted keys to prevent a brittle test and also the output
|
31
|
+
# should be nicer as it will be guaranteed to be alphabetized
|
32
|
+
result.keys.sort.each do |file|
|
33
|
+
errors = result[file]
|
34
|
+
|
31
35
|
out.print "#{file}:\n"
|
32
36
|
errors.each do |error|
|
33
37
|
out.print " line #{error.line_number} character #{error.character} #{error.reason}\n"
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'optparse'
|
2
|
+
|
3
|
+
module JSLintV8
|
4
|
+
class OptionParser < ::OptionParser
|
5
|
+
|
6
|
+
attr_reader :options
|
7
|
+
|
8
|
+
def initialize
|
9
|
+
super
|
10
|
+
|
11
|
+
@options = {}
|
12
|
+
@options[:lint_options] = {}
|
13
|
+
|
14
|
+
self.version = JSLintV8::Version::STRING
|
15
|
+
self.banner = "#{self.banner} <filepattern>..."
|
16
|
+
|
17
|
+
Runner::DefaultOptions.keys.each do |option|
|
18
|
+
default = Runner::DefaultOptions[option] ? "on" : "off"
|
19
|
+
|
20
|
+
long = "--[no-]#{option}"
|
21
|
+
desc = "#{Runner::OptionDescriptions[option]} (default=#{default})"
|
22
|
+
|
23
|
+
on(long, desc) do |value|
|
24
|
+
options[:lint_options][option] = value
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
on("-h", "--help", "Show this message") do
|
29
|
+
STDERR.puts self.help
|
30
|
+
exit(-1)
|
31
|
+
end
|
32
|
+
|
33
|
+
on("-v", "--version", "Show version") do
|
34
|
+
STDERR.puts "#{self.program_name} version #{JSLintV8::Version::STRING}"
|
35
|
+
exit(-1)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
data/lib/jslint-v8/rake_task.rb
CHANGED
@@ -18,6 +18,15 @@ module JSLintV8
|
|
18
18
|
# output stream for this task
|
19
19
|
attr_accessor :output_stream
|
20
20
|
|
21
|
+
# custom lint options for the task
|
22
|
+
attr_accessor :lint_options
|
23
|
+
|
24
|
+
# metaprogrammatically define accessors for each lint option expected
|
25
|
+
Runner::DefaultOptions.keys.each do |key|
|
26
|
+
define_method(key) { lint_options[key] }
|
27
|
+
define_method("#{key}=") {|value| lint_options[key] = value }
|
28
|
+
end
|
29
|
+
|
21
30
|
def initialize
|
22
31
|
# a default name
|
23
32
|
@name = "lint"
|
@@ -34,6 +43,9 @@ module JSLintV8
|
|
34
43
|
# by default use standard output for writing information
|
35
44
|
@output_stream = STDOUT
|
36
45
|
|
46
|
+
# by default provide no overridden lint options
|
47
|
+
@lint_options = {}
|
48
|
+
|
37
49
|
# if a block was given allow the block to call elements on this object
|
38
50
|
yield self if block_given?
|
39
51
|
|
@@ -72,7 +84,9 @@ module JSLintV8
|
|
72
84
|
private
|
73
85
|
|
74
86
|
def runner
|
75
|
-
JSLintV8::Runner.new(files_to_run)
|
87
|
+
runner = JSLintV8::Runner.new(files_to_run)
|
88
|
+
runner.jslint_options.merge!(lint_options)
|
89
|
+
runner
|
76
90
|
end
|
77
91
|
|
78
92
|
end
|
data/lib/jslint-v8/runner.rb
CHANGED
@@ -4,6 +4,100 @@ module JSLintV8
|
|
4
4
|
class Runner
|
5
5
|
JSLintLibraryFilename = File.expand_path("js/jslint.js", File.dirname(__FILE__))
|
6
6
|
|
7
|
+
DefaultOptions = {
|
8
|
+
"asi" => false,
|
9
|
+
"bitwise" => true,
|
10
|
+
"boss" => false,
|
11
|
+
"browser" => false,
|
12
|
+
"couch" => false,
|
13
|
+
"curly" => false,
|
14
|
+
"debug" => false,
|
15
|
+
"devel" => false,
|
16
|
+
"dojo" => false,
|
17
|
+
"eqeqeq" => true,
|
18
|
+
"eqnull" => false,
|
19
|
+
"es5" => false,
|
20
|
+
"evil" => false,
|
21
|
+
"expr" => false,
|
22
|
+
"forin" => false,
|
23
|
+
"globalstrict" => false,
|
24
|
+
"immed" => true,
|
25
|
+
"jquery" => false,
|
26
|
+
"latedef" => false,
|
27
|
+
"laxbreak" => false,
|
28
|
+
"loopfunc" => false,
|
29
|
+
"mootools" => false,
|
30
|
+
"newcap" => true,
|
31
|
+
"noarg" => false,
|
32
|
+
"node" => false,
|
33
|
+
"noempty" => false,
|
34
|
+
"nonew" => false,
|
35
|
+
"nomen" => true,
|
36
|
+
"onevar" => true,
|
37
|
+
"passfail" => false,
|
38
|
+
"plusplus" => true,
|
39
|
+
"prototypejs" => false,
|
40
|
+
"regexdash" => false,
|
41
|
+
"regexp" => true,
|
42
|
+
"rhino" => false,
|
43
|
+
"undef" => true,
|
44
|
+
"scripturl" => false,
|
45
|
+
"shadow" => false,
|
46
|
+
"strict" => false,
|
47
|
+
"sub" => false,
|
48
|
+
"supernew" => false,
|
49
|
+
"trailing" => false,
|
50
|
+
"white" => false,
|
51
|
+
"wsh" => false
|
52
|
+
}.freeze
|
53
|
+
|
54
|
+
OptionDescriptions = {
|
55
|
+
"asi" => "if automatic semicolon insertion should be tolerated",
|
56
|
+
"bitwise" => "if bitwise operators should not be allowed",
|
57
|
+
"boss" => "if advanced usage of assignments should be allowed",
|
58
|
+
"browser" => "if the standard browser globals should be predefined",
|
59
|
+
"couch" => "if CouchDB globals should be predefined",
|
60
|
+
"curly" => "if curly braces around blocks should be required (even in if/for/while)",
|
61
|
+
"debug" => "if debugger statements should be allowed",
|
62
|
+
"devel" => "if logging globals should be predefined (console, alert, etc.)",
|
63
|
+
"dojo" => "if Dojo Toolkit globals should be predefined",
|
64
|
+
"eqeqeq" => "if === should be required",
|
65
|
+
"eqnull" => "if == null comparisons should be tolerated",
|
66
|
+
"es5" => "if ES5 syntax should be allowed",
|
67
|
+
"evil" => "if eval should be allowed",
|
68
|
+
"expr" => "if ExpressionStatement should be allowed as Programs",
|
69
|
+
"forin" => "if for in statements must filter",
|
70
|
+
"globalstrict" => "if global \"use strict\"; should be allowed (also enables 'strict')",
|
71
|
+
"immed" => "if immediate invocations must be wrapped in parens",
|
72
|
+
"jquery" => "if jQuery globals should be predefined",
|
73
|
+
"latedef" => "if the use before definition should not be tolerated",
|
74
|
+
"laxbreak" => "if line breaks should not be checked",
|
75
|
+
"loopfunc" => "if functions should be allowed to be defined within loops",
|
76
|
+
"mootools" => "if MooTools globals should be predefined",
|
77
|
+
"newcap" => "if constructor names must be capitalized",
|
78
|
+
"noarg" => "if arguments.caller and arguments.callee should be disallowed",
|
79
|
+
"node" => "if the Node.js environment globals should be predefined",
|
80
|
+
"noempty" => "if empty blocks should be disallowed",
|
81
|
+
"nonew" => "if using `new` for side-effects should be disallowed",
|
82
|
+
"nomen" => "if names should be checked",
|
83
|
+
"onevar" => "if only one var statement per function should be allowed",
|
84
|
+
"passfail" => "if the scan should stop on first error",
|
85
|
+
"plusplus" => "if increment/decrement should not be allowed",
|
86
|
+
"prototypejs" => "if Prototype and Scriptaculous globals should be predefined",
|
87
|
+
"regexdash" => "if unescaped last dash (-) inside brackets should be tolerated",
|
88
|
+
"regexp" => "if the . should not be allowed in regexp literals",
|
89
|
+
"rhino" => "if the Rhino environment globals should be predefined",
|
90
|
+
"undef" => "if variables should be declared before used",
|
91
|
+
"scripturl" => "if script-targeted URLs should be tolerated",
|
92
|
+
"shadow" => "if variable shadowing should be tolerated",
|
93
|
+
"strict" => "require the \"use strict\"; pragma",
|
94
|
+
"sub" => "if all forms of subscript notation are tolerated",
|
95
|
+
"supernew" => "if `new function () { ... };` and `new Object;` should be tolerated",
|
96
|
+
"trailing" => "if trailing whitespace rules apply",
|
97
|
+
"white" => "if strict whitespace rules apply",
|
98
|
+
"wsh" => "if the Windows Scripting Host environment globals should be predefined",
|
99
|
+
}.freeze
|
100
|
+
|
7
101
|
attr_reader :file_list
|
8
102
|
|
9
103
|
def initialize(files)
|
@@ -63,19 +157,7 @@ module JSLintV8
|
|
63
157
|
end
|
64
158
|
|
65
159
|
def jslint_options
|
66
|
-
|
67
|
-
"bitwise" => true,
|
68
|
-
"eqeqeq" => true,
|
69
|
-
"immed" => true,
|
70
|
-
"newcap" => true,
|
71
|
-
"nomen" => true,
|
72
|
-
"onevar" => true,
|
73
|
-
"plusplus" => true,
|
74
|
-
"regexp" => true,
|
75
|
-
"rhino" => true,
|
76
|
-
"undef" => true,
|
77
|
-
"white" => true
|
78
|
-
}
|
160
|
+
@jslint_options ||= DefaultOptions.dup
|
79
161
|
end
|
80
162
|
|
81
163
|
end
|
data/lib/jslint-v8/version.rb
CHANGED
data/test/test_cli.rb
CHANGED
@@ -9,10 +9,35 @@ class TestCli < Test::Unit::TestCase
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def test_empty_args
|
12
|
-
|
12
|
+
# capture standard error by redirecting it to standard out
|
13
|
+
result = `#{Executable} 2>&1`
|
13
14
|
|
14
|
-
|
15
|
-
assert_equal
|
15
|
+
assert_match /^Usage/, result
|
16
|
+
assert_equal 255, $?.exitstatus
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_version_output
|
20
|
+
# capture standard error by redirecting it to standard out
|
21
|
+
result = `#{Executable} -v 2>&1`
|
22
|
+
|
23
|
+
assert_equal erb_fixture("version-output"), result
|
24
|
+
assert_equal 255, $?.exitstatus
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_help_output
|
28
|
+
# capture standard error by redirecting it to standard out
|
29
|
+
result = `#{Executable} -h foo.js bar.js baz.js 2>&1`
|
30
|
+
|
31
|
+
assert_match /^Usage/, result
|
32
|
+
assert_equal 255, $?.exitstatus
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_only_options_given
|
36
|
+
# capture standard error by redirecting it to standard out
|
37
|
+
result = `#{Executable} --browser --jquery 2>&1`
|
38
|
+
|
39
|
+
assert_match /^Usage/, result
|
40
|
+
assert_equal 255, $?.exitstatus
|
16
41
|
end
|
17
42
|
|
18
43
|
def test_valid
|
data/test/test_runner.rb
CHANGED
@@ -43,6 +43,17 @@ class TestRunner < Test::Unit::TestCase
|
|
43
43
|
assert_equal @runner.runtime.object_id, first.object_id
|
44
44
|
end
|
45
45
|
|
46
|
+
def test_overrideable_options
|
47
|
+
# have same values as default options
|
48
|
+
assert_equal @runner.jslint_options, JSLintV8::Runner::DefaultOptions
|
49
|
+
|
50
|
+
# but not be the options
|
51
|
+
assert_not_equal @runner.jslint_options.object_id, JSLintV8::Runner::DefaultOptions.object_id
|
52
|
+
|
53
|
+
# but be memoized
|
54
|
+
assert_equal @runner.jslint_options.object_id, @runner.jslint_options.object_id
|
55
|
+
end
|
56
|
+
|
46
57
|
def test_jslint_function_proxy
|
47
58
|
assert_not_nil @runner.jslint_function
|
48
59
|
end
|
data/test/test_task.rb
CHANGED
@@ -52,23 +52,38 @@ class TestTask < Test::Unit::TestCase
|
|
52
52
|
assert_equal STDOUT, task.output_stream
|
53
53
|
end
|
54
54
|
|
55
|
+
def test_default_lint_options
|
56
|
+
task = JSLintV8::RakeTask.new
|
57
|
+
|
58
|
+
assert_equal({}, task.lint_options)
|
59
|
+
end
|
60
|
+
|
55
61
|
def test_creation_block
|
56
62
|
tempfile = Tempfile.new("foo")
|
57
63
|
|
58
64
|
task = JSLintV8::RakeTask.new do |task|
|
59
65
|
task.name = "foo"
|
66
|
+
|
60
67
|
task.description = "Points out the bad codezzzz"
|
68
|
+
|
61
69
|
task.include_pattern = "js/**/*.js"
|
62
70
|
task.exclude_pattern = "js/**/*.txt"
|
71
|
+
|
63
72
|
task.output_stream = tempfile
|
73
|
+
|
74
|
+
task.browser = true
|
75
|
+
task.strict = true
|
64
76
|
end
|
65
77
|
|
66
78
|
rake_task = Rake.application.lookup("foo")
|
67
79
|
|
80
|
+
expected_options = {"browser" => true, "strict" => true}
|
81
|
+
|
68
82
|
assert_equal "foo", rake_task.name
|
69
83
|
assert_equal "Points out the bad codezzzz", rake_task.comment
|
70
84
|
assert_equal "js/**/*.js", task.include_pattern
|
71
85
|
assert_equal "js/**/*.txt", task.exclude_pattern
|
86
|
+
assert_equal expected_options, task.lint_options
|
72
87
|
assert_equal tempfile.object_id, task.output_stream.object_id
|
73
88
|
end
|
74
89
|
|
@@ -83,6 +98,19 @@ class TestTask < Test::Unit::TestCase
|
|
83
98
|
assert_equal expected_files, task.files_to_run
|
84
99
|
end
|
85
100
|
|
101
|
+
def test_custom_lint_options
|
102
|
+
task = JSLintV8::RakeTask.new do |task|
|
103
|
+
task.browser = true
|
104
|
+
task.evil = true
|
105
|
+
end
|
106
|
+
|
107
|
+
runner = task.send(:runner)
|
108
|
+
|
109
|
+
assert_equal true, runner.jslint_options["browser"]
|
110
|
+
assert_equal true, runner.jslint_options["evil"]
|
111
|
+
assert_equal false, runner.jslint_options["rhino"]
|
112
|
+
end
|
113
|
+
|
86
114
|
def test_valid_output
|
87
115
|
result = String.new
|
88
116
|
|
metadata
CHANGED
@@ -1,131 +1,107 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: jslint-v8
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.1.0
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 0
|
9
|
-
- 1
|
10
|
-
version: 1.0.1
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- William Howard
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-02-02 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: therubyracer
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &71601450 !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
18
|
+
requirements:
|
26
19
|
- - ~>
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
hash: 51
|
29
|
-
segments:
|
30
|
-
- 0
|
31
|
-
- 9
|
32
|
-
- 4
|
20
|
+
- !ruby/object:Gem::Version
|
33
21
|
version: 0.9.4
|
34
22
|
type: :runtime
|
35
|
-
version_requirements: *id001
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
name: rake
|
38
23
|
prerelease: false
|
39
|
-
|
24
|
+
version_requirements: *71601450
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rake
|
27
|
+
requirement: &71601100 !ruby/object:Gem::Requirement
|
40
28
|
none: false
|
41
|
-
requirements:
|
42
|
-
- -
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
|
45
|
-
segments:
|
46
|
-
- 0
|
47
|
-
version: "0"
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
48
33
|
type: :development
|
49
|
-
version_requirements: *id002
|
50
|
-
- !ruby/object:Gem::Dependency
|
51
|
-
name: test-unit
|
52
34
|
prerelease: false
|
53
|
-
|
35
|
+
version_requirements: *71601100
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: test-unit
|
38
|
+
requirement: &71600860 !ruby/object:Gem::Requirement
|
54
39
|
none: false
|
55
|
-
requirements:
|
56
|
-
- -
|
57
|
-
- !ruby/object:Gem::Version
|
58
|
-
|
59
|
-
segments:
|
60
|
-
- 0
|
61
|
-
version: "0"
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
62
44
|
type: :development
|
63
|
-
|
64
|
-
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *71600860
|
47
|
+
description: Ruby gem wrapper for a jslint cli. Uses the The Ruby Racer library for
|
48
|
+
performance reasons targeted for usage in CI environments and backed up with a full
|
49
|
+
test suite.
|
65
50
|
email: whoward.tke@gmail.com
|
66
|
-
executables:
|
51
|
+
executables:
|
67
52
|
- jslint-v8
|
68
53
|
extensions: []
|
69
|
-
|
70
|
-
extra_rdoc_files:
|
54
|
+
extra_rdoc_files:
|
71
55
|
- README.markdown
|
72
|
-
files:
|
56
|
+
files:
|
73
57
|
- lib/jslint-v8/formatter.rb
|
74
|
-
- lib/jslint-v8/runner.rb
|
75
58
|
- lib/jslint-v8/rake_task.rb
|
76
|
-
- lib/jslint-v8/lint_error.rb
|
77
59
|
- lib/jslint-v8/version.rb
|
60
|
+
- lib/jslint-v8/runner.rb
|
61
|
+
- lib/jslint-v8/option_parser.rb
|
62
|
+
- lib/jslint-v8/lint_error.rb
|
78
63
|
- lib/jslint-v8.rb
|
79
64
|
- lib/jslint-v8/js/jslint.js
|
80
65
|
- Gemfile
|
81
66
|
- Gemfile.lock
|
82
67
|
- bin/jslint-v8
|
83
68
|
- README.markdown
|
84
|
-
- test/test_task.rb
|
85
|
-
- test/test_lint_error.rb
|
86
|
-
- test/helper.rb
|
87
69
|
- test/test_runner.rb
|
88
|
-
- test/suite.rb
|
89
|
-
- test/test_formatter.rb
|
90
70
|
- test/test_cli.rb
|
71
|
+
- test/helper.rb
|
72
|
+
- test/test_formatter.rb
|
73
|
+
- test/test_task.rb
|
74
|
+
- test/suite.rb
|
75
|
+
- test/test_lint_error.rb
|
91
76
|
homepage: http://github.com/whoward/jslint-v8
|
92
77
|
licenses: []
|
93
|
-
|
94
78
|
post_install_message:
|
95
79
|
rdoc_options: []
|
96
|
-
|
97
|
-
require_paths:
|
80
|
+
require_paths:
|
98
81
|
- lib
|
99
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
82
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
100
83
|
none: false
|
101
|
-
requirements:
|
102
|
-
- -
|
103
|
-
- !ruby/object:Gem::Version
|
104
|
-
|
105
|
-
|
106
|
-
- 0
|
107
|
-
version: "0"
|
108
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
84
|
+
requirements:
|
85
|
+
- - ! '>='
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0'
|
88
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
109
89
|
none: false
|
110
|
-
requirements:
|
111
|
-
- -
|
112
|
-
- !ruby/object:Gem::Version
|
113
|
-
|
114
|
-
segments:
|
115
|
-
- 0
|
116
|
-
version: "0"
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
117
94
|
requirements: []
|
118
|
-
|
119
95
|
rubyforge_project:
|
120
|
-
rubygems_version: 1.8.
|
96
|
+
rubygems_version: 1.8.10
|
121
97
|
signing_key:
|
122
98
|
specification_version: 3
|
123
99
|
summary: JSLint CLI and rake tasks via therubyracer (JavaScript V8 gem)
|
124
|
-
test_files:
|
125
|
-
- test/test_task.rb
|
126
|
-
- test/test_lint_error.rb
|
127
|
-
- test/helper.rb
|
100
|
+
test_files:
|
128
101
|
- test/test_runner.rb
|
129
|
-
- test/suite.rb
|
130
|
-
- test/test_formatter.rb
|
131
102
|
- test/test_cli.rb
|
103
|
+
- test/helper.rb
|
104
|
+
- test/test_formatter.rb
|
105
|
+
- test/test_task.rb
|
106
|
+
- test/suite.rb
|
107
|
+
- test/test_lint_error.rb
|