jshintrb 0.0.1
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/.gitignore +5 -0
- data/.gitmodules +3 -0
- data/.travis.yml +22 -0
- data/Gemfile +16 -0
- data/README.md +57 -0
- data/Rakefile +24 -0
- data/jshintrb.gemspec +27 -0
- data/lib/js/jshint.js +4397 -0
- data/lib/jshintrb/lint.rb +58 -0
- data/lib/jshintrb/reporter/default.rb +16 -0
- data/lib/jshintrb/version.rb +3 -0
- data/lib/jshintrb.rb +19 -0
- data/spec/jshintrb_spec.rb +33 -0
- metadata +103 -0
data/.gitignore
ADDED
data/.gitmodules
ADDED
data/.travis.yml
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
rvm:
|
2
|
+
- 1.8.7
|
3
|
+
- 1.9.2
|
4
|
+
- 1.9.3
|
5
|
+
- jruby
|
6
|
+
before_script: "git submodule update --init --recursive"
|
7
|
+
env:
|
8
|
+
- EXECJS_RUNTIME=RubyRacer
|
9
|
+
- EXECJS_RUNTIME=Mustang
|
10
|
+
- EXECJS_RUNTIME=RubyRhino
|
11
|
+
matrix:
|
12
|
+
exclude:
|
13
|
+
- rvm: 1.8.7
|
14
|
+
env: EXECJS_RUNTIME=RubyRhino
|
15
|
+
- rvm: 1.9.2
|
16
|
+
env: EXECJS_RUNTIME=RubyRhino
|
17
|
+
- rvm: 1.9.3
|
18
|
+
env: EXECJS_RUNTIME=RubyRhino
|
19
|
+
- rvm: jruby
|
20
|
+
env: EXECJS_RUNTIME=RubyRacer
|
21
|
+
- rvm: jruby
|
22
|
+
env: EXECJS_RUNTIME=Mustang
|
data/Gemfile
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
source "http://rubygems.org"
|
2
|
+
|
3
|
+
# Specify your gem's dependencies in jshintrb.gemspec
|
4
|
+
gemspec
|
5
|
+
|
6
|
+
# Depend on defined ExecJS runtime
|
7
|
+
execjs_runtimes = {
|
8
|
+
"RubyRacer" => "therubyracer",
|
9
|
+
"RubyRhino" => "therubyrhino",
|
10
|
+
"Mustang" => "mustang"
|
11
|
+
}
|
12
|
+
|
13
|
+
if ENV["EXECJS_RUNTIME"] && execjs_runtimes[ENV["EXECJS_RUNTIME"]]
|
14
|
+
gem execjs_runtimes[ENV["EXECJS_RUNTIME"]], :group => :development
|
15
|
+
end
|
16
|
+
|
data/README.md
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
# jshintrb
|
2
|
+
[](http://travis-ci.org/stereobooster/jshintrb)
|
3
|
+
|
4
|
+
Ruby wrapper for [JSHint](https://github.com/jshint/jshint/). The main difference from [jshint](https://github.com/liquid/jshint_on_rails) it does not depend on Java. Instead, it uses [ExecJS](https://github.com/sstephenson/execjs).
|
5
|
+
|
6
|
+
## Installation
|
7
|
+
|
8
|
+
jshintrb is available as ruby gem.
|
9
|
+
|
10
|
+
$ gem install jshintrb
|
11
|
+
|
12
|
+
Ensure that your environment has a JavaScript interpreter supported by [ExecJS](https://github.com/sstephenson/execjs). Usually, installing therubyracer gem is the best alternative.
|
13
|
+
|
14
|
+
## Usage
|
15
|
+
|
16
|
+
require 'jshintrb'
|
17
|
+
|
18
|
+
Jshintrb.lint(File.read("source.js"))
|
19
|
+
# => array of warnings
|
20
|
+
|
21
|
+
Jshintrb.report(File.read("source.js"))
|
22
|
+
# => string
|
23
|
+
|
24
|
+
When initializing jshintrb, you can pass options
|
25
|
+
|
26
|
+
Uglifier.new(:undef => true).compile(source)
|
27
|
+
|
28
|
+
# Or
|
29
|
+
Uglifier.compile(source, :undef => true)
|
30
|
+
|
31
|
+
Available options and their defaults are
|
32
|
+
|
33
|
+
{
|
34
|
+
:bitwise => true,
|
35
|
+
:curly => true,
|
36
|
+
:eqeqeq => true,
|
37
|
+
:forin => true,
|
38
|
+
:immed => true,
|
39
|
+
:latedef => true,
|
40
|
+
:newcap => true,
|
41
|
+
:noarg => true,
|
42
|
+
:noempty => true,
|
43
|
+
:nonew => true,
|
44
|
+
:plusplus => true,
|
45
|
+
:regexp => true,
|
46
|
+
:undef => true,
|
47
|
+
:strict => true,
|
48
|
+
:trailing => true,
|
49
|
+
:browser => true
|
50
|
+
}
|
51
|
+
|
52
|
+
## TODO
|
53
|
+
|
54
|
+
- add rake task which will accept pattern for files
|
55
|
+
- add color reporter
|
56
|
+
- add more tests
|
57
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
2
|
+
|
3
|
+
[:build, :install, :release].each do |task_name|
|
4
|
+
Rake::Task[task_name].prerequisites << :spec
|
5
|
+
end
|
6
|
+
|
7
|
+
desc "Update git submodules"
|
8
|
+
task :git do
|
9
|
+
sh "git submodule update --init --recursive"
|
10
|
+
cp "vendor/jshint/jshint.js", "lib/js/jshint.js"
|
11
|
+
end
|
12
|
+
|
13
|
+
require "rspec/core/rake_task"
|
14
|
+
|
15
|
+
desc "Run specs"
|
16
|
+
RSpec::Core::RakeTask.new
|
17
|
+
|
18
|
+
task :default => :spec
|
19
|
+
|
20
|
+
#desc "Generate code coverage"
|
21
|
+
# RSpec::Core::RakeTask.new(:coverage) do |t|
|
22
|
+
# t.rcov = true
|
23
|
+
# t.rcov_opts = ["--exclude", "spec"]
|
24
|
+
# end
|
data/jshintrb.gemspec
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "jshintrb/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "jshintrb"
|
7
|
+
s.version = Jshintrb::VERSION
|
8
|
+
s.authors = ["stereobooster"]
|
9
|
+
s.email = ["stereobooster@gmail.com"]
|
10
|
+
s.homepage = "https://github.com/stereobooster/jshintrb"
|
11
|
+
s.summary = %q{Ruby wrapper for JSHint}
|
12
|
+
s.description = %q{Ruby wrapper for JSHint. The main difference from jshint it does not depend on Java. Instead, it uses ExecJS}
|
13
|
+
|
14
|
+
s.rubyforge_project = "jshintrb"
|
15
|
+
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
|
21
|
+
# specify any dependencies here; for example:
|
22
|
+
s.add_development_dependency "rspec"
|
23
|
+
s.add_runtime_dependency "rake"
|
24
|
+
|
25
|
+
s.add_dependency "multi_json"
|
26
|
+
s.add_dependency "execjs"
|
27
|
+
end
|