slim_lint 0.15.1 → 0.16.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.
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