rubocop-trailblazer 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 9baf0c0785abd0b96e2edcce56751ef2a2b124a0a4995d16452b038ad73e4ee4
4
+ data.tar.gz: 80287fb65c32a9924855307d8f8ab59d2829d2308a7edbb3df61bebf97739b3e
5
+ SHA512:
6
+ metadata.gz: a1f0c37d1516461865211e1e870563e2e4066aecb3e736d905a85ac1344c0431daf4729d56ffa2dddac714f5528593b2c3adbaee439f73fba68011b60f0a95c5
7
+ data.tar.gz: 46b9cc5f9cc7add3430f0939eb545f215db8a64c1b497fbc80f697480d6e1dca60bf9eda77c88a51fa70965294eb0d91e62d252ebed6414057749361a267fd03
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RuboCop
4
+ module Cop
5
+ module Minitest
6
+ # Checks for `assert_equal` method calls where the actual
7
+ # argument is a variable and the expected argument is a literal.
8
+ #
9
+ # @example
10
+ # # bad
11
+ # assert_equal 3, my_var
12
+ #
13
+ # # good
14
+ # assert_equal my_var, 3
15
+ class VariableAsActualArgument < LiteralAsActualArgument
16
+ MSG = 'Replace the literal with the second argument.'
17
+
18
+ def on_send(node)
19
+ return unless node.method?(:assert_equal)
20
+
21
+ actual, expected, _message = *node.arguments
22
+ return unless actual&.recursive_basic_literal?
23
+ return if expected.recursive_basic_literal?
24
+
25
+ add_offense(all_arguments_range(node)) do |corrector|
26
+ autocorrect(corrector, node, expected, actual)
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'minitest/variable_as_actual_argument'
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RuboCop
4
+ module Trailblazer
5
+ # Because RuboCop doesn't yet support plugins, we have to monkey patch in a
6
+ # bit of our configuration.
7
+ module Inject
8
+ def self.defaults!
9
+ path = CONFIG_DEFAULT.to_s
10
+ hash = ConfigLoader.send(:load_yaml_configuration, path)
11
+ config = Config.new(hash, path).tap(&:make_excludes_absolute)
12
+ puts "configuration from #{path}" if ConfigLoader.debug?
13
+ config = ConfigLoader.merge_with_default(config, path)
14
+ ConfigLoader.instance_variable_set(:@default_configuration, config)
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RuboCop
4
+ module Trailblazer
5
+ VERSION = '0.1.0'
6
+ end
7
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RuboCop
4
+ module Trailblazer
5
+ PROJECT_ROOT = Pathname.new(__dir__).parent.parent.expand_path.freeze
6
+ CONFIG_DEFAULT = PROJECT_ROOT.join('config', 'default.yml').freeze
7
+ CONFIG = YAML.safe_load(CONFIG_DEFAULT.read).freeze
8
+
9
+ private_constant(:CONFIG_DEFAULT, :PROJECT_ROOT)
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rubocop'
4
+ require 'rubocop-minitest'
5
+
6
+ require_relative 'rubocop/trailblazer'
7
+ require_relative 'rubocop/trailblazer/version'
8
+ require_relative 'rubocop/trailblazer/inject'
9
+
10
+ RuboCop::Trailblazer::Inject.defaults!
11
+
12
+ require_relative 'rubocop/cop/trailblazer_cops'
metadata ADDED
@@ -0,0 +1,93 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rubocop-trailblazer
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Abdelkader Boudih
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2024-01-09 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rubocop
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '1.39'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '2.0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '1.39'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '2.0'
33
+ - !ruby/object:Gem::Dependency
34
+ name: rubocop-minitest
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: 0.3.0
40
+ - - "<"
41
+ - !ruby/object:Gem::Version
42
+ version: '1.0'
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: 0.3.0
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: '1.0'
53
+ description: Trailblazer Style Guide for RuboCop
54
+ email:
55
+ - terminale@gmail.com
56
+ executables: []
57
+ extensions: []
58
+ extra_rdoc_files: []
59
+ files:
60
+ - lib/rubocop-trailblazer.rb
61
+ - lib/rubocop/cop/minitest/variable_as_actual_argument.rb
62
+ - lib/rubocop/cop/trailblazer_cops.rb
63
+ - lib/rubocop/trailblazer.rb
64
+ - lib/rubocop/trailblazer/inject.rb
65
+ - lib/rubocop/trailblazer/version.rb
66
+ homepage: https://github.com/seuros/rubocop-trailblazer
67
+ licenses:
68
+ - MIT
69
+ metadata:
70
+ homepage_uri: https://github.com/seuros/rubocop-trailblazer
71
+ source_code_uri: https://github.com/seuros/rubocop-trailblazer
72
+ changelog_uri: https://github.com/seuros/rubocop-trailblazer/blob/master/CHANGELOG.md
73
+ rubygems_mfa_required: 'true'
74
+ post_install_message:
75
+ rdoc_options: []
76
+ require_paths:
77
+ - lib
78
+ required_ruby_version: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 2.7.0
83
+ required_rubygems_version: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ requirements: []
89
+ rubygems_version: 3.2.33
90
+ signing_key:
91
+ specification_version: 4
92
+ summary: Trailblazer Style Guide for RuboCop
93
+ test_files: []