danger-eslint 0.1.1 → 0.1.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1180844b62ed462c63d0d4499d2a966323935fe9
4
- data.tar.gz: d4d0cf2f19d4253c10155f37b0c45c33bc295745
3
+ metadata.gz: f75306f444e29ba6a23da7b7249efe6d1ac455aa
4
+ data.tar.gz: 1ff629f993c4a7ca1c5debbe9c4224173edffc78
5
5
  SHA512:
6
- metadata.gz: b9da0dacc407c6399097ca0dbb508ac212f69367436d88ec0a9fb2eb4135188d497b4d81d9eb7d01517efa82cb482e2f684ca47fe60c29a34473ee48ba85e890
7
- data.tar.gz: a81811c2be884c329c940361d322ca2dd57176f12ac20348e00d0ad1c689b7a66d419d2201d24d6cd31f3bf3da2d48cb3d25a95568a8f32caa91d1d0f53bfab7
6
+ metadata.gz: 4a6e78d3e64ddaa1b360af3b8dc0664cbebffc19f1f67b601171b3042ece4260e3ffdc620ab4af50a94bc05eee5dc2293f57ced6a3e65a1f944ba6b4dbab17bb
7
+ data.tar.gz: 25f1d6d34311c3bec5ee6d1a075278f903ee1bc8422eb15962e720c80704aa593faadd0266ff8480c03c79954bd2343317c2ecba75a4aab0bb763120b7644be7
data/.rubocop.yml ADDED
@@ -0,0 +1,17 @@
1
+
2
+ Metrics/BlockLength:
3
+ Exclude:
4
+ - "**/*_spec.rb"
5
+
6
+ Metrics/LineLength:
7
+ Max: 120
8
+ Exclude:
9
+ - "**/*_spec.rb"
10
+
11
+ Metrics/ModuleLength:
12
+ Exclude:
13
+ - "**/*_spec.rb"
14
+
15
+ Metrics/AbcSize:
16
+ Enabled: true
17
+ Max: 25
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- danger-eslint (0.1.0)
4
+ danger-eslint (0.1.1)
5
5
  danger-plugin-api (~> 1.0)
6
6
 
7
7
  GEM
@@ -19,7 +19,7 @@ GEM
19
19
  colored2 (3.1.2)
20
20
  cork (0.3.0)
21
21
  colored2 (~> 3.1)
22
- danger (5.3.0)
22
+ danger (5.3.1)
23
23
  claide (~> 1.0)
24
24
  claide-plugins (>= 0.9.2)
25
25
  colored2 (~> 3.1)
@@ -132,4 +132,4 @@ DEPENDENCIES
132
132
  yard (~> 0.8)
133
133
 
134
134
  BUNDLED WITH
135
- 1.15.0
135
+ 1.15.1
data/README.md CHANGED
@@ -1,15 +1,34 @@
1
+ [![Gem](https://img.shields.io/gem/v/danger-eslint.svg)](https://rubygems.org/gems/danger-eslint)
2
+ [![Gem](https://img.shields.io/gem/dt/danger-eslint.svg)](https://rubygems.org/gems/danger-eslint)
3
+ [![Gem](https://img.shields.io/gem/dtv/danger-eslint.svg)](https://rubygems.org/gems/danger-eslint)
4
+ [![Travis branch](https://img.shields.io/travis/leonhartX/danger-eslint/master.svg)](https://travis-ci.org/leonhartX/danger-eslint)
1
5
  # danger-eslint
2
6
 
3
- A description of danger-eslint.
7
+ A [Danger](https://github.com/danger/danger) plugin for [eslint](http://eslint.org/).
4
8
 
5
9
  ## Installation
6
10
 
7
11
  $ gem install danger-eslint
12
+
13
+ `eslint` also needs to be installed(global or local) before you run Danger, Please check the [installation guide](http://eslint.org/docs/user-guide/getting-started)
14
+ `danger-eslint` will first try local `node_module/.bin/eslint` then the global `eslint`.
8
15
 
9
16
  ## Usage
17
+ Run lint without and configuration will do the samething as run `eslint .`
18
+ All lint result will send as individual comment. If your are using Github, the comment will show as a inline comment directly on the violation's position if possiable.
10
19
 
11
- Methods and attributes from this plugin are available in
12
- your `Dangerfile` under the `eslint` namespace.
20
+ eslint.lint
21
+
22
+ Also, you can pass a config file or eslintignore file to danger-eslint with:
23
+
24
+ eslint.config_file = /path/yourconfig
25
+ eslint.ignore_file = /path/yourigonre
26
+ eslint.lint
27
+
28
+ If you want to lint only new/modified files. You can achieve that with setting the `filtering` parameter to `true`.
29
+
30
+ eslint.filtering = true
31
+ eslint.lint
13
32
 
14
33
  ## Development
15
34
 
@@ -8,8 +8,8 @@ Gem::Specification.new do |spec|
8
8
  spec.version = Eslint::VERSION
9
9
  spec.authors = ['leonhartX']
10
10
  spec.email = ['leonhartx.k@gmail.com']
11
- spec.description = %q{A short description of danger-eslint.}
12
- spec.summary = %q{A longer description of danger-eslint.}
11
+ spec.description = %q{A Danger plugin for linting javascript with eslint.}
12
+ spec.summary = %q{A Danger plugin for linting javascript with eslint.}
13
13
  spec.homepage = 'https://github.com/leonhartX/danger-eslint'
14
14
  spec.license = 'MIT'
15
15
 
@@ -28,8 +28,8 @@ Gem::Specification.new do |spec|
28
28
  spec.add_development_dependency 'rspec', '~> 3.4'
29
29
 
30
30
  # Linting code and docs
31
- spec.add_development_dependency "rubocop", "~> 0.41"
32
- spec.add_development_dependency "yard", "~> 0.8"
31
+ spec.add_development_dependency "rubocop", "~> 0.49"
32
+ spec.add_development_dependency "yard", "~> 0.9.11"
33
33
 
34
34
  # Makes testing easy via `bundle exec guard`
35
35
  spec.add_development_dependency 'guard', '~> 2.14'
@@ -1,3 +1,3 @@
1
1
  module Eslint
2
- VERSION = '0.1.1'.freeze
2
+ VERSION = '0.1.2'.freeze
3
3
  end
data/lib/eslint/plugin.rb CHANGED
@@ -2,23 +2,16 @@ require 'mkmf'
2
2
  require 'json'
3
3
 
4
4
  module Danger
5
- # This is your plugin class. Any attributes or methods you expose here will
6
- # be available from within your Dangerfile.
5
+ # Lint javascript files using [eslint](http://eslint.org/).
6
+ # Results are send as inline commen.
7
7
  #
8
- # To be published on the Danger plugins site, you will need to have
9
- # the public interface documented. Danger uses [YARD](http://yardoc.org/)
10
- # for generating documentation from your plugin source, and you can verify
11
- # by running `danger plugins lint` or `bundle exec rake spec`.
8
+ # @example Run eslint with changed files only
12
9
  #
13
- # You should replace these comments with a public description of your library.
14
- #
15
- # @example Ensure people are well warned about merging on Mondays
16
- #
17
- # my_plugin.warn_on_mondays
10
+ # eslint.filtering = true
11
+ # eslint.lint
18
12
  #
19
13
  # @see leonhartX/danger-eslint
20
- # @tags monday, weekends, time, rattata
21
- #
14
+ # @tags lint, javaxctipt
22
15
  class DangerEslint < Plugin
23
16
  # An path to eslint's config file
24
17
  # @return [String]
@@ -40,18 +33,8 @@ module Danger
40
33
  # @return [void]
41
34
  #
42
35
  def lint
43
- bin = eslint_path
44
- raise 'eslint is not installed' unless bin
45
- if filtering
46
- results = ((git.modified_files - git.deleted_files) + git.added_files)
47
- .select { |f| f.end_with? '.js' }
48
- .map { |f| f.gsub("#{Dir.pwd}/", '') }
49
- .map { |f| run_lint(bin, f).first }
50
- else
51
- results = run_lint(bin, '.')
52
- end
53
- results
54
- .reject { |r| r['messages'].length.zero? }
36
+ lint_results
37
+ .reject { |r| r.nil? || r['messages'].length.zero? }
55
38
  .reject { |r| r['messages'].first['message'].include? 'matching ignore pattern' }
56
39
  .map { |r| send_comment r }
57
40
  end
@@ -66,6 +49,19 @@ module Danger
66
49
  File.exist?(local) ? local : find_executable('eslint')
67
50
  end
68
51
 
52
+ # Get lint result regards the filtering option
53
+ #
54
+ # return [Hash]
55
+ def lint_results
56
+ bin = eslint_path
57
+ raise 'eslint is not installed' unless bin
58
+ return run_lint(bin, '.') unless filtering
59
+ ((git.modified_files - git.deleted_files) + git.added_files)
60
+ .select { |f| f.end_with? '.js' }
61
+ .map { |f| f.gsub("#{Dir.pwd}/", '') }
62
+ .map { |f| run_lint(bin, f).first }
63
+ end
64
+
69
65
  # Run eslint aginst a single file.
70
66
  #
71
67
  # @param [String] bin
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: danger-eslint
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - leonhartX
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-19 00:00:00.000000000 Z
11
+ date: 2018-06-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: danger-plugin-api
@@ -72,28 +72,28 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '0.41'
75
+ version: '0.49'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '0.41'
82
+ version: '0.49'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: yard
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0.8'
89
+ version: 0.9.11
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '0.8'
96
+ version: 0.9.11
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: guard
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -150,7 +150,7 @@ dependencies:
150
150
  - - ">="
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
- description: A short description of danger-eslint.
153
+ description: A Danger plugin for linting javascript with eslint.
154
154
  email:
155
155
  - leonhartx.k@gmail.com
156
156
  executables: []
@@ -160,6 +160,7 @@ files:
160
160
  - ".eslintignore"
161
161
  - ".eslintrc.json"
162
162
  - ".gitignore"
163
+ - ".rubocop.yml"
163
164
  - ".travis.yml"
164
165
  - Gemfile
165
166
  - Gemfile.lock
@@ -206,10 +207,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
206
207
  version: '0'
207
208
  requirements: []
208
209
  rubyforge_project:
209
- rubygems_version: 2.6.11
210
+ rubygems_version: 2.5.2
210
211
  signing_key:
211
212
  specification_version: 4
212
- summary: A longer description of danger-eslint.
213
+ summary: A Danger plugin for linting javascript with eslint.
213
214
  test_files:
214
215
  - spec/eslint_spec.rb
215
216
  - spec/fixtures/config/.eslintignore