jshint4r 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -11,6 +11,10 @@ group :development do
11
11
  gem "rspec"
12
12
  gem "bundler"
13
13
  gem "jeweler"
14
- gem "rcov"
14
+ if RUBY_VERSION < '1.9'
15
+ gem "rcov"
16
+ else
17
+ gem 'simplecov'
18
+ end
15
19
  gem 'rdoc'
16
20
  end
data/Rakefile CHANGED
@@ -35,9 +35,13 @@ RSpec::Core::RakeTask.new(:spec) do |spec|
35
35
  spec.pattern = FileList['spec/**/*_spec.rb']
36
36
  end
37
37
 
38
- RSpec::Core::RakeTask.new(:rcov) do |spec|
38
+ RSpec::Core::RakeTask.new('spec:coverage') do |spec|
39
39
  spec.pattern = 'spec/**/*_spec.rb'
40
- spec.rcov = true
40
+ if RUBY_VERSION < '1.9'
41
+ spec.rcov = true
42
+ else
43
+ ENV['COVERAGE'] = 'true'
44
+ end
41
45
  end
42
46
 
43
47
  task :default => :spec
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
data/jshint4r.gemspec ADDED
@@ -0,0 +1,97 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "jshint4r"
8
+ s.version = "0.1.1"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["wtnabe"]
12
+ s.date = "2013-01-20"
13
+ s.description = "jshint runner for ruby"
14
+ s.email = "wtnabe@gmail.com"
15
+ s.executables = ["jshint4r"]
16
+ s.extra_rdoc_files = [
17
+ "LICENSE.txt",
18
+ "README.rdoc"
19
+ ]
20
+ s.files = [
21
+ ".document",
22
+ ".gitmodules",
23
+ ".rspec",
24
+ "Gemfile",
25
+ "LICENSE.txt",
26
+ "README.rdoc",
27
+ "Rakefile",
28
+ "VERSION",
29
+ "bin/jshint4r",
30
+ "jshint4r.gemspec",
31
+ "lib/jshint4r.rb",
32
+ "lib/jshint4r/cli.rb",
33
+ "lib/jshint4r/config.rb",
34
+ "lib/jshint4r/jshint_runner.js",
35
+ "lib/jshint4r/linter.rb",
36
+ "lib/jshint4r/reporter.rb",
37
+ "lib/jshint4r/reporter/compilation.rb",
38
+ "lib/jshint4r/reporter/text.rb",
39
+ "lib/jshint4r/result.rb",
40
+ "lib/jshint4r/source.rb",
41
+ "lib/jshint4r/target.rb",
42
+ "lib/tasks/git-untracked.rake",
43
+ "spec/fixtures/config.yml",
44
+ "spec/fixtures/missing_semicolon.js",
45
+ "spec/fixtures/no_errors.js",
46
+ "spec/jshint4r/config_spec.rb",
47
+ "spec/jshint4r/linter_spec.rb",
48
+ "spec/jshint4r/reporter/compilcation_spec.rb",
49
+ "spec/jshint4r/reporter/text_spec.rb",
50
+ "spec/jshint4r/reporter_spec.rb",
51
+ "spec/jshint4r/result_spec.rb",
52
+ "spec/jshint4r/source_spec.rb",
53
+ "spec/jshint4r/target_spec.rb",
54
+ "spec/jshint4r_spec.rb",
55
+ "spec/spec_helper.rb",
56
+ "spec/support/sample_error.rb",
57
+ "vendor/jshint/CHANGELOG",
58
+ "vendor/jshint/README.markdown",
59
+ "vendor/jshint/jshint.js"
60
+ ]
61
+ s.homepage = "http://github.com/wtnabe/jshint4r"
62
+ s.licenses = ["MIT"]
63
+ s.require_paths = ["lib"]
64
+ s.rubygems_version = "1.8.15"
65
+ s.summary = "jshint4r"
66
+
67
+ if s.respond_to? :specification_version then
68
+ s.specification_version = 3
69
+
70
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
71
+ s.add_runtime_dependency(%q<execjs>, [">= 0"])
72
+ s.add_runtime_dependency(%q<rake>, [">= 0"])
73
+ s.add_development_dependency(%q<rspec>, [">= 0"])
74
+ s.add_development_dependency(%q<bundler>, [">= 0"])
75
+ s.add_development_dependency(%q<jeweler>, [">= 0"])
76
+ s.add_development_dependency(%q<rcov>, [">= 0"])
77
+ s.add_development_dependency(%q<rdoc>, [">= 0"])
78
+ else
79
+ s.add_dependency(%q<execjs>, [">= 0"])
80
+ s.add_dependency(%q<rake>, [">= 0"])
81
+ s.add_dependency(%q<rspec>, [">= 0"])
82
+ s.add_dependency(%q<bundler>, [">= 0"])
83
+ s.add_dependency(%q<jeweler>, [">= 0"])
84
+ s.add_dependency(%q<rcov>, [">= 0"])
85
+ s.add_dependency(%q<rdoc>, [">= 0"])
86
+ end
87
+ else
88
+ s.add_dependency(%q<execjs>, [">= 0"])
89
+ s.add_dependency(%q<rake>, [">= 0"])
90
+ s.add_dependency(%q<rspec>, [">= 0"])
91
+ s.add_dependency(%q<bundler>, [">= 0"])
92
+ s.add_dependency(%q<jeweler>, [">= 0"])
93
+ s.add_dependency(%q<rcov>, [">= 0"])
94
+ s.add_dependency(%q<rdoc>, [">= 0"])
95
+ end
96
+ end
97
+
@@ -15,7 +15,28 @@ module JSHint4r
15
15
  # [return] Array or nil
16
16
  #
17
17
  def lint( target )
18
- context.call('JSHINT.run', File.read(target), opts )
18
+ errors = context.call('JSHINT.run', File.read(target), opts )
19
+ if errors
20
+ errors = errors.compact
21
+ errors = allow_unsafe_character(errors) if opts['unsafechar']
22
+ end
23
+
24
+ errors
25
+ end
26
+
27
+ #
28
+ # [param] Array errors
29
+ # [return] Array
30
+ #
31
+ def allow_unsafe_character( errors )
32
+ errors.select { |e|
33
+ case e['reason']
34
+ when /Unsafe character\./, /Too many errors\./
35
+ false
36
+ else
37
+ true
38
+ end
39
+ }
19
40
  end
20
41
  end
21
42
  end
@@ -12,6 +12,7 @@ module JSHint4r
12
12
  #
13
13
  def parse( errors )
14
14
  errors = errors || ''
15
+ raise TypeError unless errors.is_a? String
15
16
  ExecJS.eval( errors )
16
17
  end
17
18
  end
@@ -44,7 +44,7 @@ describe JSHint4r::Result do
44
44
  @errors.parse( "{ abc: def }" )
45
45
  }
46
46
  it {
47
- expect{subject}.should raise_error(ExecJS::ProgramError)
47
+ expect{subject}.to raise_error(ExecJS::ProgramError)
48
48
  }
49
49
  end
50
50
  context "'[]'" do
@@ -60,7 +60,7 @@ describe JSHint4r::Result do
60
60
  @errors.parse( [] )
61
61
  }
62
62
  it {
63
- expect{should}.to raise_error(TypeError)
63
+ expect{subject}.to raise_error(TypeError)
64
64
  }
65
65
  end
66
66
  context 'empty string' do
@@ -92,7 +92,7 @@ describe JSHint4r::Result do
92
92
  @errors.parse( 'var abc' )
93
93
  }
94
94
  it {
95
- expect{should}.to raise_error(ExecJS::ProgramError)
95
+ expect{subject}.to raise_error(ExecJS::RuntimeError)
96
96
  }
97
97
  end
98
98
  end
data/spec/spec_helper.rb CHANGED
@@ -2,6 +2,13 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
2
  $LOAD_PATH.unshift(File.dirname(__FILE__))
3
3
  require 'rspec'
4
4
  require 'jshint4r'
5
+ require 'simplecov' if RUBY_VERSION >= '1.9'
6
+
7
+ if defined? SimpleCov and ENV['COVERAGE']
8
+ SimpleCov.start do
9
+ add_filter '/vendor/'
10
+ end
11
+ end
5
12
 
6
13
  # Requires supporting files with custom matchers and macros, etc,
7
14
  # in ./support/ and its subdirectories.
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jshint4r
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 0
10
- version: 0.1.0
9
+ - 1
10
+ version: 0.1.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - wtnabe
@@ -15,9 +15,10 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-09-05 00:00:00 Z
18
+ date: 2013-01-20 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
+ prerelease: false
21
22
  version_requirements: &id001 !ruby/object:Gem::Requirement
22
23
  none: false
23
24
  requirements:
@@ -27,11 +28,11 @@ dependencies:
27
28
  segments:
28
29
  - 0
29
30
  version: "0"
31
+ requirement: *id001
30
32
  name: execjs
31
- prerelease: false
32
33
  type: :runtime
33
- requirement: *id001
34
34
  - !ruby/object:Gem::Dependency
35
+ prerelease: false
35
36
  version_requirements: &id002 !ruby/object:Gem::Requirement
36
37
  none: false
37
38
  requirements:
@@ -41,11 +42,11 @@ dependencies:
41
42
  segments:
42
43
  - 0
43
44
  version: "0"
45
+ requirement: *id002
44
46
  name: rake
45
- prerelease: false
46
47
  type: :runtime
47
- requirement: *id002
48
48
  - !ruby/object:Gem::Dependency
49
+ prerelease: false
49
50
  version_requirements: &id003 !ruby/object:Gem::Requirement
50
51
  none: false
51
52
  requirements:
@@ -55,11 +56,11 @@ dependencies:
55
56
  segments:
56
57
  - 0
57
58
  version: "0"
59
+ requirement: *id003
58
60
  name: rspec
59
- prerelease: false
60
61
  type: :development
61
- requirement: *id003
62
62
  - !ruby/object:Gem::Dependency
63
+ prerelease: false
63
64
  version_requirements: &id004 !ruby/object:Gem::Requirement
64
65
  none: false
65
66
  requirements:
@@ -69,11 +70,11 @@ dependencies:
69
70
  segments:
70
71
  - 0
71
72
  version: "0"
73
+ requirement: *id004
72
74
  name: bundler
73
- prerelease: false
74
75
  type: :development
75
- requirement: *id004
76
76
  - !ruby/object:Gem::Dependency
77
+ prerelease: false
77
78
  version_requirements: &id005 !ruby/object:Gem::Requirement
78
79
  none: false
79
80
  requirements:
@@ -83,11 +84,11 @@ dependencies:
83
84
  segments:
84
85
  - 0
85
86
  version: "0"
87
+ requirement: *id005
86
88
  name: jeweler
87
- prerelease: false
88
89
  type: :development
89
- requirement: *id005
90
90
  - !ruby/object:Gem::Dependency
91
+ prerelease: false
91
92
  version_requirements: &id006 !ruby/object:Gem::Requirement
92
93
  none: false
93
94
  requirements:
@@ -97,11 +98,11 @@ dependencies:
97
98
  segments:
98
99
  - 0
99
100
  version: "0"
101
+ requirement: *id006
100
102
  name: rcov
101
- prerelease: false
102
103
  type: :development
103
- requirement: *id006
104
104
  - !ruby/object:Gem::Dependency
105
+ prerelease: false
105
106
  version_requirements: &id007 !ruby/object:Gem::Requirement
106
107
  none: false
107
108
  requirements:
@@ -111,10 +112,9 @@ dependencies:
111
112
  segments:
112
113
  - 0
113
114
  version: "0"
115
+ requirement: *id007
114
116
  name: rdoc
115
- prerelease: false
116
117
  type: :development
117
- requirement: *id007
118
118
  description: jshint runner for ruby
119
119
  email: wtnabe@gmail.com
120
120
  executables:
@@ -134,6 +134,7 @@ files:
134
134
  - Rakefile
135
135
  - VERSION
136
136
  - bin/jshint4r
137
+ - jshint4r.gemspec
137
138
  - lib/jshint4r.rb
138
139
  - lib/jshint4r/cli.rb
139
140
  - lib/jshint4r/config.rb
@@ -192,7 +193,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
192
193
  requirements: []
193
194
 
194
195
  rubyforge_project:
195
- rubygems_version: 1.8.8
196
+ rubygems_version: 1.8.15
196
197
  signing_key:
197
198
  specification_version: 3
198
199
  summary: jshint4r