erb_lint 0.1.3 → 0.9.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 (51) hide show
  1. checksums.yaml +4 -4
  2. data/exe/erb_lint +10 -0
  3. data/exe/erblint +5 -4
  4. data/lib/erb_lint/all.rb +2 -0
  5. data/lib/erb_lint/cache.rb +88 -0
  6. data/lib/erb_lint/cached_offense.rb +58 -0
  7. data/lib/erb_lint/cli.rb +117 -22
  8. data/lib/erb_lint/corrector.rb +6 -17
  9. data/lib/erb_lint/file_loader.rb +2 -8
  10. data/lib/erb_lint/linter.rb +28 -2
  11. data/lib/erb_lint/linter_registry.rb +11 -1
  12. data/lib/erb_lint/linters/allowed_script_type.rb +8 -7
  13. data/lib/erb_lint/linters/closing_erb_tag_indent.rb +3 -3
  14. data/lib/erb_lint/linters/comment_syntax.rb +52 -0
  15. data/lib/erb_lint/linters/deprecated_classes.rb +2 -2
  16. data/lib/erb_lint/linters/erb_safety.rb +1 -1
  17. data/lib/erb_lint/linters/extra_newline.rb +1 -1
  18. data/lib/erb_lint/linters/final_newline.rb +4 -4
  19. data/lib/erb_lint/linters/hard_coded_string.rb +7 -4
  20. data/lib/erb_lint/linters/no_javascript_tag_helper.rb +6 -4
  21. data/lib/erb_lint/linters/no_unused_disable.rb +47 -0
  22. data/lib/erb_lint/linters/parser_errors.rb +1 -1
  23. data/lib/erb_lint/linters/partial_instance_variable.rb +2 -2
  24. data/lib/erb_lint/linters/require_input_autocomplete.rb +4 -4
  25. data/lib/erb_lint/linters/require_script_nonce.rb +2 -2
  26. data/lib/erb_lint/linters/right_trim.rb +1 -1
  27. data/lib/erb_lint/linters/rubocop.rb +32 -83
  28. data/lib/erb_lint/linters/rubocop_text.rb +2 -1
  29. data/lib/erb_lint/linters/self_closing_tag.rb +22 -5
  30. data/lib/erb_lint/linters/space_around_erb_tag.rb +8 -8
  31. data/lib/erb_lint/linters/space_in_html_tag.rb +7 -7
  32. data/lib/erb_lint/linters/space_indentation.rb +1 -1
  33. data/lib/erb_lint/linters/strict_locals.rb +50 -0
  34. data/lib/erb_lint/linters/trailing_whitespace.rb +1 -1
  35. data/lib/erb_lint/offense.rb +30 -3
  36. data/lib/erb_lint/processed_source.rb +1 -1
  37. data/lib/erb_lint/reporter.rb +3 -2
  38. data/lib/erb_lint/reporters/compact_reporter.rb +3 -2
  39. data/lib/erb_lint/reporters/gitlab_reporter.rb +55 -0
  40. data/lib/erb_lint/reporters/json_reporter.rb +4 -4
  41. data/lib/erb_lint/reporters/junit_reporter.rb +63 -0
  42. data/lib/erb_lint/reporters/multiline_reporter.rb +6 -1
  43. data/lib/erb_lint/runner.rb +36 -3
  44. data/lib/erb_lint/runner_config.rb +2 -1
  45. data/lib/erb_lint/runner_config_resolver.rb +1 -1
  46. data/lib/erb_lint/utils/block_map.rb +4 -4
  47. data/lib/erb_lint/utils/inline_configs.rb +15 -0
  48. data/lib/erb_lint/utils/severity_levels.rb +8 -2
  49. data/lib/erb_lint/version.rb +1 -1
  50. metadata +21 -28
  51. data/lib/erb_lint/utils/offset_corrector.rb +0 -72
@@ -1,72 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ERBLint
4
- module Utils
5
- class OffsetCorrector
6
- def initialize(processed_source, corrector, offset, bound_range)
7
- @processed_source = processed_source
8
- @corrector = corrector
9
- @offset = offset
10
- @bound_range = bound_range
11
- end
12
-
13
- def remove(range)
14
- @corrector.remove(range_with_offset(range))
15
- end
16
-
17
- def insert_before(range, content)
18
- @corrector.insert_before(range_with_offset(range), content)
19
- end
20
-
21
- def insert_after(range, content)
22
- @corrector.insert_after(range_with_offset(range), content)
23
- end
24
-
25
- def replace(range, content)
26
- @corrector.replace(range_with_offset(range), content)
27
- end
28
-
29
- def remove_preceding(range, size)
30
- @corrector.remove_preceding(range_with_offset(range), size)
31
- end
32
-
33
- def remove_leading(range, size)
34
- @corrector.remove_leading(range_with_offset(range), size)
35
- end
36
-
37
- def remove_trailing(range, size)
38
- @corrector.remove_trailing(range_with_offset(range), size)
39
- end
40
-
41
- def range_with_offset(node_or_range)
42
- range = to_range(node_or_range)
43
-
44
- @processed_source.to_source_range(
45
- bound(@offset + range.begin_pos)..bound(@offset + (range.end_pos - 1))
46
- )
47
- end
48
-
49
- def bound(pos)
50
- [
51
- [pos, @bound_range.min].max,
52
- @bound_range.max,
53
- ].min
54
- end
55
-
56
- private
57
-
58
- def to_range(node_or_range)
59
- case node_or_range
60
- when ::RuboCop::AST::Node, ::Parser::Source::Comment
61
- node_or_range.loc.expression
62
- when ::Parser::Source::Range
63
- node_or_range
64
- else
65
- raise TypeError,
66
- "Expected a Parser::Source::Range, Comment or " \
67
- "Rubocop::AST::Node, got #{node_or_range.class}"
68
- end
69
- end
70
- end
71
- end
72
- end