pronto-eslint_npm 0.9.0 → 0.9.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 12464b7cd6f5adfebd858930b808e497bc9fca02
4
- data.tar.gz: c0a8e5c2ab3347417ce2dbff2b8a582c244425d0
2
+ SHA256:
3
+ metadata.gz: 39cf234d371887280b38a137321b0473b88edcf32d0449f149a9db4ccd4dd713
4
+ data.tar.gz: e422f551e0a8f49378c93c47ee35af0981377bdc18e01dc58821d644b6756e30
5
5
  SHA512:
6
- metadata.gz: 7e27d240bfcadee5be4cd95a309cfe241fd8af3c8626fb672d0f8b1e32840d27c9ba487fc0ea6ae015450d9c036b02a47d82f729e2544b982196b25a96e8ef04
7
- data.tar.gz: bd426a983d918f3c60f3d18dbcd03fcf16e818093f7f9474aff444461abe8e478910060f4e0bf0f006e25226878e97259b063a8c12b7e1a4113d59d3f0508298
6
+ metadata.gz: b268886a3b6021cc2c7b39c12ce398ec9da79ce771a02fb5fd6263968982664723fae8a9aa74ccbc2b5e04c2ba8ad597fefd96f52517d75d11e68a5eda9bf43e
7
+ data.tar.gz: 51c7ee25eb574feb3dfd92a75f897b736bf67c15142ce60576d56d603943ba34561b139479f7e2473113904251396f629c94f75dd05398c5462ff2f4b73af842
data/README.md CHANGED
@@ -3,7 +3,6 @@
3
3
  [![Code Climate](https://codeclimate.com/github/doits/pronto-eslint_npm.svg)](https://codeclimate.com/github/doits/pronto-eslint_npm)
4
4
  [![Build Status](https://travis-ci.org/doits/pronto-eslint_npm.svg?branch=master)](https://travis-ci.org/doits/pronto-eslint_npm)
5
5
  [![Gem Version](https://badge.fury.io/rb/pronto-eslint_npm.svg)](http://badge.fury.io/rb/pronto-eslint_npm)
6
- [![Dependency Status](https://gemnasium.com/doits/pronto-eslint_npm.svg)](https://gemnasium.com/doits/pronto-eslint_npm)
7
6
 
8
7
  Pronto runner for [ESlint](http://eslint.org), pluggable linting utility for JavaScript and JSX. [What is Pronto?](https://github.com/mmozuras/pronto)
9
8
 
@@ -35,6 +34,7 @@ Following options are available:
35
34
  | ----------------- | ---------------------------------------------------------------------------------------- | ----------------------------------- |
36
35
  | eslint_executable | ESLint executable to call. | `eslint` (calls `eslint` in `PATH`) |
37
36
  | files_to_lint | What files to lint. Absolute path of offending file will be matched against this Regexp. | `(\.js|\.es6)$` |
37
+ | cmd_line_opts | Command line options to pass to eslint when running | '' |
38
38
 
39
39
  Example configuration to call custom eslint executable and only lint files ending with `.my_custom_extension`:
40
40
 
@@ -42,4 +42,5 @@ Example configuration to call custom eslint executable and only lint files endin
42
42
  # .pronto_eslint_npm.yml
43
43
  eslint_executable: '/my/custom/node/path/.bin/eslint'
44
44
  files_to_lint: '\.my_custom_extension$'
45
+ cmd_line_opts: '--ext .html,.js,.es6'
45
46
  ```
@@ -1,33 +1,43 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'pronto'
2
4
  require 'shellwords'
3
5
 
4
6
  module Pronto
5
7
  class ESLintNpm < Runner
6
8
  CONFIG_FILE = '.pronto_eslint_npm.yml'.freeze
7
- CONFIG_KEYS = %w(eslint_executable files_to_lint).freeze
9
+ CONFIG_KEYS = %w[eslint_executable files_to_lint cmd_line_opts].freeze
8
10
 
9
- attr_writer :eslint_executable
11
+ attr_writer :eslint_executable, :cmd_line_opts
10
12
 
11
13
  def eslint_executable
12
- @eslint_executable || 'eslint'.freeze
14
+ @eslint_executable || 'eslint'
13
15
  end
14
16
 
15
17
  def files_to_lint
16
18
  @files_to_lint || /(\.js|\.es6)$/
17
19
  end
18
20
 
21
+ def cmd_line_opts
22
+ @cmd_line_opts || ''
23
+ end
24
+
19
25
  def files_to_lint=(regexp)
20
26
  @files_to_lint = regexp.is_a?(Regexp) && regexp || Regexp.new(regexp)
21
27
  end
22
28
 
23
- def read_config
24
- config_file = File.join(repo_path, CONFIG_FILE)
25
- return unless File.exist?(config_file)
26
- config = YAML.load_file(config_file)
29
+ def config_options
30
+ @config_options ||=
31
+ begin
32
+ config_file = File.join(repo_path, CONFIG_FILE)
33
+ File.exist?(config_file) && YAML.load_file(config_file) || {}
34
+ end
35
+ end
27
36
 
28
- CONFIG_KEYS.each do |config_key|
29
- next unless config[config_key]
30
- send("#{config_key}=", config[config_key])
37
+ def read_config
38
+ config_options.each do |key, val|
39
+ next unless CONFIG_KEYS.include?(key.to_s)
40
+ send("#{key}=", val)
31
41
  end
32
42
  end
33
43
 
@@ -46,7 +56,7 @@ module Pronto
46
56
  private
47
57
 
48
58
  def repo_path
49
- @_repo_path ||= @patches.first.repo.path
59
+ @repo_path ||= @patches.first.repo.path
50
60
  end
51
61
 
52
62
  def inspect(patch)
@@ -61,7 +71,7 @@ module Pronto
61
71
  end
62
72
 
63
73
  def new_message(offence, line)
64
- path = line.patch.delta.new_file[:path]
74
+ path = line.patch.delta.new_file[:path]
65
75
  level = :warning
66
76
 
67
77
  Message.new(path, line, level, offence['message'], nil, self.class)
@@ -73,13 +83,14 @@ module Pronto
73
83
 
74
84
  def run_eslint(patch)
75
85
  Dir.chdir(repo_path) do
76
- escaped_file_path = Shellwords.escape(patch.new_file_full_path.to_s)
77
- JSON.parse(
78
- `#{eslint_executable} #{escaped_file_path} -f json`
79
- )
86
+ JSON.parse `#{eslint_command_line(patch.new_file_full_path.to_s)}`
80
87
  end
81
88
  end
82
89
 
90
+ def eslint_command_line(path)
91
+ "#{eslint_executable} #{cmd_line_opts} #{Shellwords.escape(path)} -f json"
92
+ end
93
+
83
94
  def clean_up_eslint_output(output)
84
95
  # 1. Filter out offences without a warning or error
85
96
  # 2. Get the messages for that file
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Pronto
2
4
  module ESLintNpmVersion
3
- VERSION = '0.9.0'.freeze
5
+ VERSION = '0.9.1'.freeze
4
6
  end
5
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pronto-eslint_npm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Markus Doits
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-04-24 00:00:00.000000000 Z
12
+ date: 2018-03-31 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: pronto
@@ -25,6 +25,20 @@ dependencies:
25
25
  - - "~>"
26
26
  - !ruby/object:Gem::Version
27
27
  version: 0.9.1
28
+ - !ruby/object:Gem::Dependency
29
+ name: byebug
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '9'
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '9'
28
42
  - !ruby/object:Gem::Dependency
29
43
  name: rake
30
44
  requirement: !ruby/object:Gem::Requirement
@@ -59,20 +73,6 @@ dependencies:
59
73
  - - "~>"
60
74
  - !ruby/object:Gem::Version
61
75
  version: '3.4'
62
- - !ruby/object:Gem::Dependency
63
- name: byebug
64
- requirement: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '9'
69
- type: :development
70
- prerelease: false
71
- version_requirements: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '9'
76
76
  description:
77
77
  email: markus.doits@gmail.com
78
78
  executables: []
@@ -106,7 +106,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
106
106
  requirements:
107
107
  - eslint (in PATH)
108
108
  rubyforge_project:
109
- rubygems_version: 2.6.11
109
+ rubygems_version: 2.7.6
110
110
  signing_key:
111
111
  specification_version: 4
112
112
  summary: Pronto runner for ESLint, pluggable linting utility for JavaScript and JSX