slim_lint 0.21.1 → 0.22.0

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
  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