slim_lint 0.21.1 → 0.22.0

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
2
  SHA256:
3
- metadata.gz: ba421a3f089d61c739817da641835d0f1154fda39e56114ddbd8c0bbebf8d3a4
4
- data.tar.gz: 4fee0abaf859c5cb826684ff6aea6146d7b07949faf90f6a7ae3a26839f9c179
3
+ metadata.gz: 7405eb29d09bb96a9c1f50007d6734f69a2abfea213bddbd9cadd15e7ac99651
4
+ data.tar.gz: 1e55ce9b3466a9232a52a8a70ff7d4c8b31584f7bf06805d18c6965887935210
5
5
  SHA512:
6
- metadata.gz: 382eaadb2170a24c75e48163612cb0b4d32f80516f7576c4e152fdbaaa6c77281a4174203c4a10c4f4b402c0812d918f8e73cdbb5205f672ef8f788a7b4b0fe9
7
- data.tar.gz: 463ac3fbf8f3677183440abdf937209b886c5f02e8b4b4bec6405a920297993049aa4d0199f54b57bcc5ccaab03833557a179651beee0bc43802e928564059d9
6
+ metadata.gz: a163d473bb03269ecd4a648c992219e2e26b2bd06948d8bf7b660b54d6eceb9d2c4b675c807676c1aa1122d40a4929d125bdc587b956660dcde0b8b1cc9f3f95
7
+ data.tar.gz: 04405a47e956df8d2be5ea0520e411ddfc3da5f0c2bf498649d0d8268d1fe97cadf96384875975836e72454bc8c0157c5b1da52e631194d5c15fd69bacc89484
data/config/default.yml CHANGED
@@ -51,12 +51,14 @@ linters:
51
51
  - Layout/BlockAlignment
52
52
  - Layout/EmptyLineAfterGuardClause
53
53
  - Layout/EndAlignment
54
+ - Layout/FirstArgumentIndentation
54
55
  - Layout/FirstArrayElementIndentation
55
56
  - Layout/FirstParameterIndentation
56
57
  - Layout/HashAlignment
57
58
  - Layout/IndentationConsistency
58
59
  - Layout/IndentationWidth
59
60
  - Layout/InitialIndentation
61
+ - Layout/LineEndStringConcatenationIndentation
60
62
  - Layout/LineLength
61
63
  - Layout/MultilineArrayBraceLayout
62
64
  - Layout/MultilineAssignmentLayout
@@ -49,6 +49,8 @@ module SlimLint
49
49
  # @param node [#line] node to extract the line number from
50
50
  # @param message [String] error/warning to display to the user
51
51
  def report_lint(node, message)
52
+ return if disabled_for_line?(node.line)
53
+
52
54
  @lints << SlimLint::Lint.new(self, @document.file, node.line, message)
53
55
  end
54
56
 
@@ -60,5 +62,32 @@ module SlimLint
60
62
  @ruby_parser ||= SlimLint::RubyParser.new
61
63
  @ruby_parser.parse(source)
62
64
  end
65
+
66
+ def disabled_for_line?(line)
67
+ disabled_lines.include?(line)
68
+ end
69
+
70
+ def disabled_lines
71
+ @disabled_lines ||= begin
72
+ currently_disabled = false
73
+ @document.source_lines.each_with_index.reduce([]) do |lines, pair|
74
+ line = pair[0]
75
+ line_number = pair[1] + 1
76
+
77
+ if line =~ %r{/ slim-lint:disable #{linter_name}}
78
+ currently_disabled = true
79
+ elsif line =~ %r{/ slim-lint:enable #{linter_name}}
80
+ currently_disabled = false
81
+ elsif currently_disabled
82
+ lines << line_number
83
+ end
84
+ lines
85
+ end
86
+ end
87
+ end
88
+
89
+ def linter_name
90
+ @linter_name ||= self.class.name.split('::').last
91
+ end
63
92
  end
64
93
  end
@@ -2,5 +2,5 @@
2
2
 
3
3
  # Defines the gem version.
4
4
  module SlimLint
5
- VERSION = '0.21.1'
5
+ VERSION = '0.22.0'
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slim_lint
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.21.1
4
+ version: 0.22.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shane da Silva
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-27 00:00:00.000000000 Z
11
+ date: 2021-07-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubocop
@@ -44,6 +44,20 @@ dependencies:
44
44
  - - "<"
45
45
  - !ruby/object:Gem::Version
46
46
  version: '5.0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: pry
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '0.13'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '0.13'
47
61
  - !ruby/object:Gem::Dependency
48
62
  name: rspec
49
63
  requirement: !ruby/object:Gem::Requirement