slim_lint 0.15.1 → 0.16.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +5 -5
  2. data/bin/slim-lint +1 -0
  3. data/config/default.yml +8 -0
  4. data/lib/slim_lint/atom.rb +2 -0
  5. data/lib/slim_lint/capture_map.rb +2 -0
  6. data/lib/slim_lint/cli.rb +12 -10
  7. data/lib/slim_lint/configuration.rb +2 -0
  8. data/lib/slim_lint/configuration_loader.rb +2 -2
  9. data/lib/slim_lint/constants.rb +3 -3
  10. data/lib/slim_lint/engine.rb +2 -0
  11. data/lib/slim_lint/exceptions.rb +2 -0
  12. data/lib/slim_lint/file_finder.rb +3 -1
  13. data/lib/slim_lint/filters/attribute_processor.rb +2 -0
  14. data/lib/slim_lint/filters/control_processor.rb +2 -0
  15. data/lib/slim_lint/filters/inject_line_numbers.rb +2 -0
  16. data/lib/slim_lint/filters/sexp_converter.rb +2 -0
  17. data/lib/slim_lint/filters/splat_processor.rb +2 -0
  18. data/lib/slim_lint/lint.rb +2 -0
  19. data/lib/slim_lint/linter/comment_control_statement.rb +2 -0
  20. data/lib/slim_lint/linter/consecutive_control_statements.rb +2 -0
  21. data/lib/slim_lint/linter/control_statement_spacing.rb +24 -0
  22. data/lib/slim_lint/linter/empty_control_statement.rb +2 -0
  23. data/lib/slim_lint/linter/empty_lines.rb +2 -0
  24. data/lib/slim_lint/linter/file_length.rb +20 -0
  25. data/lib/slim_lint/linter/line_length.rb +1 -1
  26. data/lib/slim_lint/linter/redundant_div.rb +1 -1
  27. data/lib/slim_lint/linter/rubocop.rb +2 -0
  28. data/lib/slim_lint/linter/tab.rb +3 -1
  29. data/lib/slim_lint/linter/tag_case.rb +2 -0
  30. data/lib/slim_lint/linter/trailing_blank_lines.rb +2 -0
  31. data/lib/slim_lint/linter/trailing_whitespace.rb +2 -0
  32. data/lib/slim_lint/linter.rb +2 -0
  33. data/lib/slim_lint/linter_registry.rb +2 -0
  34. data/lib/slim_lint/linter_selector.rb +2 -0
  35. data/lib/slim_lint/logger.rb +2 -0
  36. data/lib/slim_lint/matcher/anything.rb +2 -0
  37. data/lib/slim_lint/matcher/base.rb +2 -0
  38. data/lib/slim_lint/matcher/capture.rb +2 -0
  39. data/lib/slim_lint/matcher/nothing.rb +2 -0
  40. data/lib/slim_lint/options.rb +2 -0
  41. data/lib/slim_lint/rake_task.rb +2 -0
  42. data/lib/slim_lint/report.rb +2 -0
  43. data/lib/slim_lint/reporter/checkstyle_reporter.rb +2 -0
  44. data/lib/slim_lint/reporter/default_reporter.rb +2 -0
  45. data/lib/slim_lint/reporter/json_reporter.rb +2 -0
  46. data/lib/slim_lint/reporter.rb +2 -0
  47. data/lib/slim_lint/ruby_extract_engine.rb +2 -0
  48. data/lib/slim_lint/ruby_extractor.rb +2 -0
  49. data/lib/slim_lint/ruby_parser.rb +2 -0
  50. data/lib/slim_lint/runner.rb +2 -0
  51. data/lib/slim_lint/sexp.rb +3 -1
  52. data/lib/slim_lint/sexp_visitor.rb +2 -0
  53. data/lib/slim_lint/utils.rb +4 -1
  54. data/lib/slim_lint/version.rb +1 -1
  55. data/lib/slim_lint.rb +2 -0
  56. metadata +14 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 42d626c3288229b178231458cd5fc0343cad2d81
4
- data.tar.gz: 911044ecc6d32a6c9a7dd8335fd5c7962726e6e1
2
+ SHA256:
3
+ metadata.gz: 9a0a85688d4fd272c34d5a3f6a6f8e76fc92baa6612ecc6beabe5459b02a0ff1
4
+ data.tar.gz: ba9b1c8a6adc808311d0ae0cdfe67a260f1692ec7c6e0ac2476d19035b18e270
5
5
  SHA512:
6
- metadata.gz: 2c66c59b890f5aa532fbbfd65874944640faddc140c61e310af6a8ba03f192839c1fab199a1260b6dd70108ebedea8bb83c0f53c3313cf4346cc484dcbd2c7cc
7
- data.tar.gz: cd2332a3228a2a0e4f3b78d75c451ec98241d834d48f566c66b5690e75505ec96b606c2d5b432a64f1dcbf53bbd44029e136ccd033eb147d837837ae3f5da35a
6
+ metadata.gz: 72945205219ecb6bdf4ef8947bb84b7def1c4b549ac6e52d8ad3afc338f0061bfa90fe15d3b013dcde25990b0da270df449ef53fc1f6e61cfb76b871367388d3
7
+ data.tar.gz: 74513c279efc7056bdea21519d43ac9074f5599cdd72f6a9132ec71efd88ed64ac2b23684724ea598f8c0db493230ffa44529ccf39e579109701cebb4f8388b2
data/bin/slim-lint CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require 'slim_lint/cli'
4
5
 
data/config/default.yml CHANGED
@@ -11,6 +11,9 @@ linters:
11
11
  CommentControlStatement:
12
12
  enabled: true
13
13
 
14
+ ControlStatementSpacing:
15
+ enabled: true
16
+
14
17
  ConsecutiveControlStatements:
15
18
  enabled: true
16
19
  max_consecutive: 2
@@ -28,6 +31,10 @@ linters:
28
31
  enabled: true
29
32
  max: 80
30
33
 
34
+ FileLength:
35
+ enabled: false
36
+ max: 300
37
+
31
38
  RuboCop:
32
39
  enabled: true
33
40
  # These cops are incredibly noisy since the Ruby we extract from Slim
@@ -58,6 +65,7 @@ linters:
58
65
  - Metrics/BlockNesting
59
66
  - Metrics/LineLength
60
67
  - Naming/FileName
68
+ - Style/EmptyLineAfterGuardClause
61
69
  - Style/FrozenStringLiteralComment
62
70
  - Style/IfUnlessModifier
63
71
  - Style/Next
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SlimLint
2
4
  # Represents an atomic, childless, literal value within an S-expression.
3
5
  #
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SlimLint
2
4
  # Holds the list of captures, providing a convenient interface for accessing
3
5
  # the values and unwrapping them on your behalf.
data/lib/slim_lint/cli.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'slim_lint'
2
4
  require 'slim_lint/options'
3
5
 
@@ -54,23 +56,23 @@ module SlimLint
54
56
 
55
57
  # Outputs a message and returns an appropriate error code for the specified
56
58
  # exception.
57
- def handle_exception(ex)
58
- case ex
59
+ def handle_exception(exception)
60
+ case exception
59
61
  when SlimLint::Exceptions::ConfigurationError
60
- log.error ex.message
62
+ log.error exception.message
61
63
  Sysexits::EX_CONFIG
62
64
  when SlimLint::Exceptions::InvalidCLIOption
63
- log.error ex.message
65
+ log.error exception.message
64
66
  log.log "Run `#{APP_NAME}` --help for usage documentation"
65
67
  Sysexits::EX_USAGE
66
68
  when SlimLint::Exceptions::InvalidFilePath
67
- log.error ex.message
69
+ log.error exception.message
68
70
  Sysexits::EX_NOINPUT
69
71
  when SlimLint::Exceptions::NoLintersError
70
- log.error ex.message
72
+ log.error exception.message
71
73
  Sysexits::EX_NOINPUT
72
74
  else
73
- print_unexpected_exception(ex)
75
+ print_unexpected_exception(exception)
74
76
  Sysexits::EX_SOFTWARE
75
77
  end
76
78
  end
@@ -135,9 +137,9 @@ module SlimLint
135
137
 
136
138
  # Outputs the backtrace of an exception with instructions on how to report
137
139
  # the issue.
138
- def print_unexpected_exception(ex) # rubocop:disable Metrics/AbcSize
139
- log.bold_error ex.message
140
- log.error ex.backtrace.join("\n")
140
+ def print_unexpected_exception(exception) # rubocop:disable Metrics/AbcSize
141
+ log.bold_error exception.message
142
+ log.error exception.backtrace.join("\n")
141
143
  log.warning 'Report this bug at ', false
142
144
  log.info SlimLint::BUG_REPORT_URL
143
145
  log.newline
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SlimLint
2
4
  # Stores runtime configuration for the application.
3
5
  #
@@ -7,7 +7,7 @@ module SlimLint
7
7
  # Manages configuration file loading.
8
8
  class ConfigurationLoader
9
9
  DEFAULT_CONFIG_PATH = File.join(SlimLint::HOME, 'config', 'default.yml').freeze
10
- CONFIG_FILE_NAME = '.slim-lint.yml'.freeze
10
+ CONFIG_FILE_NAME = '.slim-lint.yml'
11
11
 
12
12
  class << self
13
13
  # Load configuration file given the current working directory the
@@ -25,7 +25,7 @@ module SlimLint
25
25
 
26
26
  # Loads the built-in default configuration.
27
27
  def default_configuration
28
- @default_config ||= load_from_file(DEFAULT_CONFIG_PATH)
28
+ @default_configuration ||= load_from_file(DEFAULT_CONFIG_PATH)
29
29
  end
30
30
 
31
31
  # Loads a configuration, ensuring it extends the default configuration.
@@ -3,8 +3,8 @@
3
3
  # Global application constants.
4
4
  module SlimLint
5
5
  HOME = File.expand_path(File.join(File.dirname(__FILE__), '..', '..')).freeze
6
- APP_NAME = 'slim-lint'.freeze
6
+ APP_NAME = 'slim-lint'
7
7
 
8
- REPO_URL = 'https://github.com/sds/slim-lint'.freeze
9
- BUG_REPORT_URL = "#{REPO_URL}/issues".freeze
8
+ REPO_URL = 'https://github.com/sds/slim-lint'
9
+ BUG_REPORT_URL = "#{REPO_URL}/issues"
10
10
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SlimLint
2
4
  # Temple engine used to generate a {Sexp} parse tree for use by linters.
3
5
  #
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Collection of exceptions that can be raised by the application.
2
4
  module SlimLint::Exceptions
3
5
  # Raised when a {Configuration} could not be loaded from a file.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'find'
2
4
 
3
5
  module SlimLint
@@ -70,7 +72,7 @@ module SlimLint
70
72
  # @param path [String]
71
73
  # @return [String]
72
74
  def normalize_path(path)
73
- File.expand_path(path.start_with?(".#{File::SEPARATOR}") ? path[2..-1] : path)
75
+ path.start_with?(".#{File::SEPARATOR}") ? path[2..-1] : path
74
76
  end
75
77
 
76
78
  # Whether the given file should be treated as a Slim file.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SlimLint::Filters
2
4
  # A dumbed-down version of {Slim::CodeAttributes} which doesn't introduce any
3
5
  # temporary variables or other cruft.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SlimLint::Filters
2
4
  # A dumbed-down version of {Slim::Controls} which doesn't introduce temporary
3
5
  # variables and other cruft (which in the context of extracting Ruby code,
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SlimLint::Filters
2
4
  # Traverses a Temple S-expression (that has already been converted to
3
5
  # {SlimLint::Sexp} instances) and annotates them with line numbers.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SlimLint::Filters
2
4
  # Converts a Temple S-expression comprised of {Array}s into {SlimLint::Sexp}s.
3
5
  #
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SlimLint::Filters
2
4
  # A dumbed-down version of {Slim::Splat::Filter} which doesn't introduced
3
5
  # temporary variables or other cruft.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SlimLint
2
4
  # Contains information about a problem or issue with a Slim document.
3
5
  class Lint
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SlimLint
2
4
  # Searches for control statements with only comments.
3
5
  class Linter::CommentControlStatement < Linter
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SlimLint
2
4
  # Searches for more than an allowed number of consecutive control code
3
5
  # statements that could be condensed into a :ruby filter.
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SlimLint
4
+ # Checks for missing or superfluous spacing before and after control statements.
5
+ class Linter::ControlStatementSpacing < Linter
6
+ include LinterRegistry
7
+
8
+ MESSAGE = 'Please add a space before and after the `=`'
9
+
10
+ on [:html, :tag, anything, [],
11
+ [:slim, :output, anything, capture(:ruby, anything)]] do |sexp|
12
+
13
+ # Fetch original Slim code that contains an element with a control statement.
14
+ line = document.source_lines[sexp.line() - 1]
15
+
16
+ # Remove any Ruby code, because our regexp below must not match inside Ruby.
17
+ ruby = captures[:ruby]
18
+ line = line.sub(ruby, 'x')
19
+
20
+ next if line =~ /[^ ] ==? [^ ]/
21
+ report_lint(sexp, MESSAGE)
22
+ end
23
+ end
24
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SlimLint
2
4
  # Searches for control statements with no code.
3
5
  class Linter::EmptyControlStatement < Linter
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SlimLint
2
4
  # This linter checks for two or more consecutive blank lines
3
5
  # and for the first blank line in file.
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SlimLint
4
+ # Checks for file longer than a maximum number of lines.
5
+ class Linter::FileLength < Linter
6
+ include LinterRegistry
7
+
8
+ MSG = 'File is too long. [%d/%d]'
9
+
10
+ on_start do |_sexp|
11
+ max_length = config['max']
12
+ dummy_node = Struct.new(:line)
13
+
14
+ count = document.source_lines.size
15
+ if count > max_length
16
+ report_lint(dummy_node.new(1), format(MSG, count, max_length))
17
+ end
18
+ end
19
+ end
20
+ end
@@ -5,7 +5,7 @@ module SlimLint
5
5
  class Linter::LineLength < Linter
6
6
  include LinterRegistry
7
7
 
8
- MSG = 'Line is too long. [%d/%d]'.freeze
8
+ MSG = 'Line is too long. [%d/%d]'
9
9
 
10
10
  on_start do |_sexp|
11
11
  max_length = config['max']
@@ -6,7 +6,7 @@ module SlimLint
6
6
  class Linter::RedundantDiv < Linter
7
7
  include LinterRegistry
8
8
 
9
- MESSAGE = '`div` is redundant when %s attribute shortcut is present'.freeze
9
+ MESSAGE = '`div` is redundant when %s attribute shortcut is present'
10
10
 
11
11
  on [:html, :tag, 'div',
12
12
  [:html, :attrs,
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'slim_lint/ruby_extractor'
2
4
  require 'slim_lint/ruby_extract_engine'
3
5
  require 'rubocop'
@@ -1,9 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SlimLint
2
4
  # Searches for tab indentation
3
5
  class Linter::Tab < Linter
4
6
  include LinterRegistry
5
7
 
6
- MSG = 'Tab detected'.freeze
8
+ MSG = 'Tab detected'
7
9
 
8
10
  on_start do |_sexp|
9
11
  dummy_node = Struct.new(:line)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SlimLint
2
4
  # Searches for tags with uppercase characters.
3
5
  class Linter::TagCase < Linter
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SlimLint
2
4
  # This linter looks for trailing blank lines and a final newline.
3
5
  class Linter::TrailingBlankLines < Linter
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SlimLint
2
4
  # Checks for trailing whitespace.
3
5
  class Linter::TrailingWhitespace < Linter
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SlimLint
2
4
  # Base implementation for all lint checks.
3
5
  #
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SlimLint
2
4
  class NoSuchLinter < StandardError; end
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SlimLint
2
4
  # Chooses the appropriate linters to run given the specified configuration.
3
5
  class LinterSelector
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SlimLint
2
4
  # Encapsulates all communication to an output source.
3
5
  class Logger
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SlimLint::Matcher
2
4
  # Will match anything, acting as a wildcard.
3
5
  class Anything < Base
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SlimLint::Matcher
2
4
  # Represents a Sexp pattern implementing complex matching logic.
3
5
  #
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SlimLint::Matcher
2
4
  # Wraps a matcher, taking on the behavior of the wrapped matcher but storing
3
5
  # the value that matched so it can be referred to later.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SlimLint::Matcher
2
4
  # Does not match anything.
3
5
  #
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'optparse'
2
4
 
3
5
  module SlimLint
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rake'
2
4
  require 'rake/tasklib'
3
5
  require 'slim_lint/constants'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SlimLint
2
4
  # Contains information about all lints detected during a scan.
3
5
  class Report
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rexml/document'
2
4
 
3
5
  module SlimLint
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SlimLint
2
4
  # Outputs lints in a simple format with the filename, line number, and lint
3
5
  # message.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SlimLint
2
4
  # Outputs report as a JSON document.
3
5
  class Reporter::JsonReporter < Reporter
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SlimLint
2
4
  # Abstract lint reporter. Subclass and override {#display_report} to
3
5
  # implement a custom lint reporter.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SlimLint
2
4
  # Generates a {SlimLint::Sexp} suitable for consumption by the
3
5
  # {RubyExtractor}.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SlimLint
2
4
  # Utility class for extracting Ruby script from a Slim template that can then
3
5
  # be linted with a Ruby linter (i.e. is "legal" Ruby).
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rubocop'
2
4
  require 'rubocop/ast/builder'
3
5
  require 'parser/current'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SlimLint
2
4
  # Responsible for running the applicable linters against the desired files.
3
5
  class Runner
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SlimLint
2
4
  # Symbolic expression which represents tree-structured data.
3
5
  #
@@ -78,7 +80,7 @@ module SlimLint
78
80
  # @return [String]
79
81
  def display(depth = 1) # rubocop:disable Metrics/AbcSize
80
82
  indentation = ' ' * 2 * depth
81
- output = '['
83
+ output = '['.dup
82
84
 
83
85
  each_with_index do |nested_sexp, index|
84
86
  output << "\n"
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SlimLint
2
4
  # Provides an interface which when included allows a class to visit nodes in
3
5
  # the Sexp of a Slim document.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SlimLint
2
4
  # Miscellaneus collection of helper functions.
3
5
  module Utils
@@ -13,8 +15,9 @@ module SlimLint
13
15
  # @param file [String]
14
16
  # @return [Boolean]
15
17
  def any_glob_matches?(globs_or_glob, file)
18
+ path = File.expand_path(file)
16
19
  Array(globs_or_glob).any? do |glob|
17
- ::File.fnmatch?(glob, file,
20
+ ::File.fnmatch?(File.expand_path(glob), path,
18
21
  ::File::FNM_PATHNAME | # Wildcards don't match path separators
19
22
  ::File::FNM_DOTMATCH) # `*` wildcard matches dotfiles
20
23
  end
@@ -2,5 +2,5 @@
2
2
 
3
3
  # Defines the gem version.
4
4
  module SlimLint
5
- VERSION = '0.15.1'.freeze
5
+ VERSION = '0.16.0'
6
6
  end
data/lib/slim_lint.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Load all slim-lint modules necessary to parse and lint a file.
2
4
  # Ordering here can be important depending on class references in each module.
3
5
 
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.15.1
4
+ version: 0.16.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: 2017-11-21 00:00:00.000000000 Z
11
+ date: 2018-09-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -48,16 +48,22 @@ dependencies:
48
48
  name: slim
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
- - - "~>"
51
+ - - ">="
52
52
  - !ruby/object:Gem::Version
53
53
  version: '3.0'
54
+ - - "<"
55
+ - !ruby/object:Gem::Version
56
+ version: '5.0'
54
57
  type: :runtime
55
58
  prerelease: false
56
59
  version_requirements: !ruby/object:Gem::Requirement
57
60
  requirements:
58
- - - "~>"
61
+ - - ">="
59
62
  - !ruby/object:Gem::Version
60
63
  version: '3.0'
64
+ - - "<"
65
+ - !ruby/object:Gem::Version
66
+ version: '5.0'
61
67
  - !ruby/object:Gem::Dependency
62
68
  name: sysexits
63
69
  requirement: !ruby/object:Gem::Requirement
@@ -131,8 +137,10 @@ files:
131
137
  - lib/slim_lint/linter.rb
132
138
  - lib/slim_lint/linter/comment_control_statement.rb
133
139
  - lib/slim_lint/linter/consecutive_control_statements.rb
140
+ - lib/slim_lint/linter/control_statement_spacing.rb
134
141
  - lib/slim_lint/linter/empty_control_statement.rb
135
142
  - lib/slim_lint/linter/empty_lines.rb
143
+ - lib/slim_lint/linter/file_length.rb
136
144
  - lib/slim_lint/linter/line_length.rb
137
145
  - lib/slim_lint/linter/redundant_div.rb
138
146
  - lib/slim_lint/linter/rubocop.rb
@@ -174,7 +182,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
174
182
  requirements:
175
183
  - - ">="
176
184
  - !ruby/object:Gem::Version
177
- version: 2.0.0
185
+ version: 2.2.0
178
186
  required_rubygems_version: !ruby/object:Gem::Requirement
179
187
  requirements:
180
188
  - - ">="
@@ -182,7 +190,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
182
190
  version: '0'
183
191
  requirements: []
184
192
  rubyforge_project:
185
- rubygems_version: 2.6.14
193
+ rubygems_version: 2.7.6
186
194
  signing_key:
187
195
  specification_version: 4
188
196
  summary: Slim template linting tool