rubocop-codeur 0.1.18 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a36a82168daf0237948c930aa9ac3c902bc333ea8b4fa4d4c9e8cc60d04a2a42
4
- data.tar.gz: a568017edc3d11768131c1d9abed878f51a9044a4add67a91e7195c671d3e32b
3
+ metadata.gz: c60553e7427774219eb421a3ad856abf774951523a9c72e6d0770990ef9f2d82
4
+ data.tar.gz: e7ce247889bdac1392bba4677ee6c916a3eadc2885afcfeff46c4db5af8f8a7a
5
5
  SHA512:
6
- metadata.gz: ca8758c01b89b4357cf9a71cfae668d85327beeddb016c781fe05169727cf336c1d5460d725c2f78c9c620b6c68ea8c6ef3934ffe0ac4ded7b0aa7a27e2dcc30
7
- data.tar.gz: 2128295de2ce97b22d9cb2fabc447ac8f068ec1a717b1a41f58e9df5706589f87e306c3193e059abba38c89f36041f356de5373b0f8cb10e5d29029f64f7900e
6
+ metadata.gz: 91b702d8c2c116a0542f85daaed265b3b2b8777da1f049462d8e309e8c0633cc7f59054d856c29cd7f2f3460ad2400f59ad90c4d8f8564b2683d90e9afb86e9b
7
+ data.tar.gz: 59f8a6b58226fc72fe8a039116078b546df45d99246a02211ac4700220d40af5a122322774ad484be0c2880ba8dec958487411c091a3885274d9746864124c69
@@ -0,0 +1,34 @@
1
+ name: Quality audit
2
+
3
+ on: [pull_request]
4
+
5
+ jobs:
6
+ rubocop:
7
+ name: rubocop
8
+ runs-on: ubuntu-latest
9
+ steps:
10
+ - name: Check out code
11
+ uses: actions/checkout@v1
12
+ - uses: ruby/setup-ruby@v1
13
+ with:
14
+ ruby-version: 2.7
15
+ bundler-cache: true
16
+ - name: Run Rubocop
17
+ uses: reviewdog/action-rubocop@v1
18
+ with:
19
+ github_token: ${{ secrets.github_token }}
20
+ rubocop_version: gemfile
21
+ reporter: github-pr-check
22
+
23
+ brakeman:
24
+ name: brakeman
25
+ runs-on: ubuntu-latest
26
+ steps:
27
+ - name: Check out code
28
+ uses: actions/checkout@v1
29
+ - name: Run Brakeman
30
+ uses: reviewdog/action-brakeman@v1
31
+ with:
32
+ github_token: ${{ secrets.github_token }}
33
+ brakeman_version: 5.0.4
34
+ reporter: github-pr-check
@@ -0,0 +1,41 @@
1
+ name: Test
2
+
3
+ on: [pull_request]
4
+
5
+ env:
6
+ RAILS_ENV: test
7
+
8
+ jobs:
9
+ test:
10
+
11
+ runs-on: ubuntu-latest
12
+
13
+ strategy:
14
+ matrix:
15
+ ruby: ['2.7', '3.0']
16
+
17
+ steps:
18
+ - uses: actions/checkout@v2
19
+
20
+ - name: Set up Ruby ${{ matrix.ruby }}
21
+ uses: ruby/setup-ruby@v1
22
+ with:
23
+ ruby-version: ${{ matrix.ruby }}
24
+ bundler-cache: true
25
+
26
+ - name: Run tests
27
+ run: bin/rake test
28
+ env:
29
+ COVERAGE: true
30
+
31
+ - name: Simplecov Report
32
+ uses: aki77/simplecov-report-action@v1
33
+ with:
34
+ token: ${{ secrets.GITHUB_TOKEN }}
35
+ failedThreshold: 100
36
+
37
+ - name: Upload coverage
38
+ uses: actions/upload-artifact@v1
39
+ with:
40
+ name: Coverage
41
+ path: coverage
data/.gitignore ADDED
@@ -0,0 +1,10 @@
1
+ .DS_Store
2
+ /spec/
3
+ /.bundle/
4
+ /.yardoc
5
+ /_yardoc/
6
+ /coverage/
7
+ /doc/
8
+ /pkg/
9
+ /spec/reports/
10
+ /tmp/
data/.rubocop.yml ADDED
@@ -0,0 +1,9 @@
1
+ AllCops:
2
+ NewCops: enable
3
+
4
+ Naming/FileName:
5
+ Exclude:
6
+ - lib/rubocop-codeur.rb
7
+
8
+ Gemspec/RequireMFA:
9
+ Enabled: false
data/Gemfile ADDED
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+ git_source(:github) { |repo| "https://github.com/#{repo}.git" }
5
+
6
+ # Specify your gem's dependencies in rubocop-codeur.gemspec
7
+ gemspec
8
+
9
+ gem 'minitest', '~> 5.0'
10
+ gem 'rake', '~> 12.0'
11
+ gem 'rubocop-minitest', '~> 0.17'
12
+ gem 'simplecov', require: false
data/Gemfile.lock ADDED
@@ -0,0 +1,79 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ rubocop-codeur (0.2.0)
5
+ rubocop (~> 1.25)
6
+ rubocop-github (~> 0.17)
7
+ rubocop-minitest (~> 0.10, >= 0.10.2)
8
+ rubocop-performance (~> 1.9, >= 1.9.2)
9
+ rubocop-rails (~> 2.9, >= 2.9.1)
10
+
11
+ GEM
12
+ remote: https://rubygems.org/
13
+ specs:
14
+ activesupport (7.0.1)
15
+ concurrent-ruby (~> 1.0, >= 1.0.2)
16
+ i18n (>= 1.6, < 2)
17
+ minitest (>= 5.1)
18
+ tzinfo (~> 2.0)
19
+ ast (2.4.2)
20
+ concurrent-ruby (1.1.9)
21
+ docile (1.4.0)
22
+ i18n (1.9.0)
23
+ concurrent-ruby (~> 1.0)
24
+ minitest (5.15.0)
25
+ parallel (1.21.0)
26
+ parser (3.1.0.0)
27
+ ast (~> 2.4.1)
28
+ rack (2.2.3)
29
+ rainbow (3.1.1)
30
+ rake (12.3.3)
31
+ regexp_parser (2.2.0)
32
+ rexml (3.2.5)
33
+ rubocop (1.25.0)
34
+ parallel (~> 1.10)
35
+ parser (>= 3.1.0.0)
36
+ rainbow (>= 2.2.2, < 4.0)
37
+ regexp_parser (>= 1.8, < 3.0)
38
+ rexml
39
+ rubocop-ast (>= 1.15.1, < 2.0)
40
+ ruby-progressbar (~> 1.7)
41
+ unicode-display_width (>= 1.4.0, < 3.0)
42
+ rubocop-ast (1.15.1)
43
+ parser (>= 3.0.1.1)
44
+ rubocop-github (0.17.0)
45
+ rubocop
46
+ rubocop-performance
47
+ rubocop-rails
48
+ rubocop-minitest (0.17.0)
49
+ rubocop (>= 0.90, < 2.0)
50
+ rubocop-performance (1.13.2)
51
+ rubocop (>= 1.7.0, < 2.0)
52
+ rubocop-ast (>= 0.4.0)
53
+ rubocop-rails (2.13.2)
54
+ activesupport (>= 4.2.0)
55
+ rack (>= 1.1)
56
+ rubocop (>= 1.7.0, < 2.0)
57
+ ruby-progressbar (1.11.0)
58
+ simplecov (0.21.2)
59
+ docile (~> 1.1)
60
+ simplecov-html (~> 0.11)
61
+ simplecov_json_formatter (~> 0.1)
62
+ simplecov-html (0.12.3)
63
+ simplecov_json_formatter (0.1.3)
64
+ tzinfo (2.0.4)
65
+ concurrent-ruby (~> 1.0)
66
+ unicode-display_width (2.1.0)
67
+
68
+ PLATFORMS
69
+ ruby
70
+
71
+ DEPENDENCIES
72
+ minitest (~> 5.0)
73
+ rake (~> 12.0)
74
+ rubocop-codeur!
75
+ rubocop-minitest (~> 0.17)
76
+ simplecov
77
+
78
+ BUNDLED WITH
79
+ 2.1.4
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright 2021 Codeur SARL
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Rubocop Codeur
1
+ # RuboCop Codeur
2
2
  Shared rubocop config gem for every Ruby projects at Codeur SARL
3
3
 
4
4
  ## Installation
@@ -25,9 +25,12 @@ Then run:
25
25
  `bundle exec rubocop`
26
26
 
27
27
  You don't need to include rubocop directly in your application's dependencies.
28
- `rubocop-codeur` will include `rubocop`, `rubocop-minitest`, `rubocop-performance` and `rubocop-rails` dependencies.
28
+ `rubocop-codeur` will include `rubocop`, `rubocop-github`, `rubocop-minitest`,
29
+ `rubocop-performance` and `rubocop-rails` dependencies.
29
30
 
30
- It might be necessary to override style rules set in this gem for some projects or to add specific ones. Rule inheritance provided by Rubocop works like the following:
31
+ It might be necessary to override style rules set in this gem for some projects
32
+ or to add specific ones. Rule inheritance provided by RuboCop works like the
33
+ following:
31
34
  `inherit_gem → inherit_from → local rules`
32
35
 
33
36
  For example:
data/Rakefile ADDED
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'bundler/gem_tasks'
4
+ require 'rake/testtask'
5
+
6
+ Rake::TestTask.new(:test) do |t|
7
+ t.libs << 'test'
8
+ t.libs << 'lib'
9
+ t.test_files = FileList['test/**/*_test.rb']
10
+ end
11
+
12
+ task default: :test
13
+
14
+ desc 'Generate a new cop with a template'
15
+ task :new_cop, [:cop] do |_task, args|
16
+ require 'rubocop'
17
+
18
+ cop_name = args.fetch(:cop) do
19
+ warn 'usage: bundle exec rake new_cop[Department/Name]'
20
+ exit!
21
+ end
22
+
23
+ generator = RuboCop::Cop::Generator.new(cop_name)
24
+
25
+ generator.write_source
26
+ generator.write_spec
27
+ generator.inject_require(root_file_path: 'lib/rubocop/cop/codeur_cops.rb')
28
+ generator.inject_config(config_file_path: 'config/default.yml')
29
+
30
+ puts generator.todo
31
+ end
data/bin/console ADDED
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require 'bundler/setup'
5
+ require 'rubocop/codeur'
6
+
7
+ # You can add fixtures and/or initialization code here to make experimenting
8
+ # with your gem easier. You can also use a different console, if you like.
9
+
10
+ # (If you use this, don't forget to add pry to your Gemfile!)
11
+ # require "pry"
12
+ # Pry.start
13
+
14
+ require 'irb'
15
+ IRB.start(__FILE__)
data/bin/rake ADDED
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ #
5
+ # This file was generated by Bundler.
6
+ #
7
+ # The application 'rake' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ require 'pathname'
12
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile',
13
+ Pathname.new(__FILE__).realpath)
14
+
15
+ bundle_binstub = File.expand_path('bundle', __dir__)
16
+
17
+ if File.file?(bundle_binstub)
18
+ if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
19
+ load(bundle_binstub)
20
+ else
21
+ abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
22
+ Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
23
+ end
24
+ end
25
+
26
+ require 'rubygems'
27
+ require 'bundler/setup'
28
+
29
+ load Gem.bin_path('rake', 'rake')
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,13 @@
1
+ Codeur/RailsAppPatterns:
2
+ Description: 'Allows or forbids patterns in app directories'
3
+ Enabled: pending
4
+ VersionAdded: '0.2.0'
5
+ AllowedPatterns: []
6
+ ForbiddenPatterns: []
7
+
8
+ Codeur/RailsAvoidInstanceMethodsInHelpers:
9
+ Description: 'Forbids instance methods in Rails helpers'
10
+ Enabled: pending
11
+ VersionAdded: '0.2.0'
12
+ Include:
13
+ - app/helpers/**/*.rb
data/default.yml CHANGED
@@ -1,8 +1,13 @@
1
1
  require:
2
+ - rubocop-codeur
2
3
  - rubocop-minitest
3
4
  - rubocop-performance
4
5
  - rubocop-rails
5
6
 
7
+ inherit_gem:
8
+ rubocop-github:
9
+ - config/default.yml
10
+
6
11
  AllCops:
7
12
  Exclude:
8
13
  - 'db/schema.rb'
@@ -20,6 +25,16 @@ AllCops:
20
25
  Rails:
21
26
  Enabled: true
22
27
 
28
+ Codeur/RailsAppPatterns:
29
+ Enabled: true
30
+ ForbiddenPatterns:
31
+ - presenters
32
+ - view_objects
33
+ - modules
34
+
35
+ Codeur/RailsAvoidInstanceMethodsInHelpers:
36
+ Enabled: true
37
+
23
38
  Layout/AccessModifierIndentation:
24
39
  EnforcedStyle: outdent
25
40
  IndentationWidth: 2
@@ -31,18 +46,20 @@ Layout/ClassStructure:
31
46
  Enabled: true
32
47
  AutoCorrect: false
33
48
  ExpectedOrder:
49
+ - devise
34
50
  - module_inclusion
35
51
  - constants
36
52
  - attributes
53
+ - has_ancestry
37
54
  - belongs_to
38
55
  - has_many
39
56
  - has_one
40
- - accepts_nested_attributes_for
41
- - has_attached_file
57
+ - attachments
42
58
  - public_delegate
59
+ - class_macros
43
60
  - callbacks
44
61
  - state_machine
45
- - ransack_alias
62
+ - aasm
46
63
  - scope
47
64
  - default_scope
48
65
  - validations
@@ -59,20 +76,31 @@ Layout/ClassStructure:
59
76
  - include
60
77
  - prepend
61
78
  - extend
79
+ attachments:
80
+ - has_one_attached
81
+ - has_many_attached
82
+ - has_attached_file
62
83
  attributes:
63
- - acts_as_voter
64
84
  - attr_accessor
65
85
  - attr_reader
66
86
  - attr_writer
67
87
  - attr_readonly
68
- - devise
69
88
  - emojify
70
89
  - enum
71
- - has_ancestry
72
90
  - monetize
73
- - pg_search_scope
74
91
  - serialize
75
92
  - has_secure_token
93
+ - alias_attribute
94
+ - slug
95
+ class_macros:
96
+ - acts_as_voter
97
+ - pg_search_scope
98
+ - counter_culture
99
+ - accepts_nested_attributes_for
100
+ - paginates_per
101
+ - ransack_alias
102
+ - ransacker
103
+ - ratyrate_rater
76
104
  callbacks:
77
105
  - before_validation
78
106
  - after_validation
@@ -94,10 +122,6 @@ Layout/ClassStructure:
94
122
  - validates
95
123
  - validate
96
124
 
97
- Lint/DuplicateMethods:
98
- Exclude:
99
- - 'db/migrate/*'
100
-
101
125
  Layout/FirstArrayElementIndentation:
102
126
  EnforcedStyle: consistent
103
127
 
@@ -121,6 +145,13 @@ Layout/ParameterAlignment:
121
145
  EnforcedStyle: with_fixed_indentation
122
146
  IndentationWidth: 2
123
147
 
148
+ Lint/DuplicateMethods:
149
+ Exclude:
150
+ - 'db/migrate/*'
151
+
152
+ Lint/MissingSuper:
153
+ Enabled: false
154
+
124
155
  Lint/RaiseException:
125
156
  Enabled: true
126
157
 
@@ -247,6 +278,9 @@ Style/NestedTernaryOperator:
247
278
  Style/NumericPredicate:
248
279
  Enabled: false
249
280
 
281
+ Style/StringLiterals:
282
+ EnforcedStyle: single_quotes
283
+
250
284
  Style/SymbolArray:
251
285
  MinSize: 7
252
286
 
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ # The original code is from https://github.com/rubocop/rubocop-rspec/blob/master/lib/rubocop/rspec/inject.rb
4
+ # See https://github.com/rubocop/rubocop-rspec/blob/master/MIT-LICENSE.md
5
+ module RuboCop
6
+ module Codeur
7
+ # Because RuboCop doesn't yet support plugins, we have to monkey patch in a
8
+ # bit of our configuration.
9
+ module Inject
10
+ def self.defaults!
11
+ path = CONFIG_DEFAULT.to_s
12
+ hash = ConfigLoader.send(:load_yaml_configuration, path)
13
+ config = Config.new(hash, path).tap(&:make_excludes_absolute)
14
+ puts "configuration from #{path}" if ConfigLoader.debug?
15
+ config = ConfigLoader.merge_with_default(config, path)
16
+ ConfigLoader.instance_variable_set(:@default_configuration, config)
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RuboCop
4
+ module Codeur
5
+ VERSION = '0.2.0'
6
+ end
7
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rubocop/codeur/version'
4
+ require 'yaml'
5
+
6
+ module RuboCop
7
+ # RuboCop Codeur project namespace
8
+ module Codeur
9
+ class Error < StandardError; end
10
+ # Your code goes here...
11
+ PROJECT_ROOT = Pathname.new(__dir__).parent.parent.expand_path.freeze
12
+ CONFIG_DEFAULT = PROJECT_ROOT.join('config', 'default.yml').freeze
13
+ CONFIG = YAML.safe_load(CONFIG_DEFAULT.read).freeze
14
+
15
+ private_constant(:CONFIG_DEFAULT, :PROJECT_ROOT)
16
+ end
17
+ end
@@ -0,0 +1,81 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RuboCop
4
+ module Cop
5
+ module Codeur
6
+ # This cop makes sure that Rails app only uses patterns (app subdirectories)
7
+ # defined in Cop config.
8
+ #
9
+ # @example ForbiddenPatterns: [presenters, view_objects, uploaders, modules]
10
+ # # bad
11
+ # app/presenters/order_presenter.rb
12
+ #
13
+ # # bad
14
+ # app/modules/stuffy.rb
15
+ #
16
+ # # good
17
+ # app/view_components/order_component.rb
18
+ #
19
+ # # good
20
+ # app/models/concerns/stuffy.rb
21
+ #
22
+ # @example AllowedPatterns: [assets, controllers, javascript, jobs, mailers, models, views]
23
+ # # bad
24
+ # app/controller/some_controller.rb
25
+ #
26
+ # # good
27
+ # app/controllers/some_controller.rb
28
+ #
29
+ class RailsAppPatterns < Base
30
+ MSG_FORBIDDEN = '`%<pattern>s` are forbidden.'
31
+ MSG_NOT_ALLOWED = '`%<pattern>s` are not allowed. Allowed patterns are: %<allowed_patterns>s.'
32
+
33
+ def on_new_investigation
34
+ file_path = processed_source.file_path
35
+ return if config.file_to_exclude?(file_path)
36
+
37
+ for_bad_patterns(file_path) { |msg| add_global_offense(msg, severity: :warning) }
38
+ end
39
+
40
+ private
41
+
42
+ def for_bad_patterns(file_path)
43
+ pattern = pattern_from_path(file_path)
44
+ return if pattern.nil?
45
+
46
+ if pattern_forbidden?(pattern)
47
+ msg = format(MSG_FORBIDDEN, pattern: pattern)
48
+ elsif pattern_not_allowed?(pattern)
49
+ msg = format(MSG_NOT_ALLOWED,
50
+ pattern: pattern,
51
+ allowed_patterns: allowed_patterns.map { |p| "`#{p}`" }.join(', '))
52
+ end
53
+
54
+ yield msg if msg
55
+ end
56
+
57
+ def pattern_from_path(path)
58
+ return nil unless path.match(%r{/app/(?<pattern>.+)/.+})
59
+
60
+ Regexp.last_match(:pattern)
61
+ end
62
+
63
+ def pattern_forbidden?(pattern)
64
+ forbidden_patterns.any? && forbidden_patterns.include?(pattern)
65
+ end
66
+
67
+ def pattern_not_allowed?(pattern)
68
+ allowed_patterns.any? && !allowed_patterns.include?(pattern)
69
+ end
70
+
71
+ def allowed_patterns
72
+ cop_config['AllowedPatterns'] || []
73
+ end
74
+
75
+ def forbidden_patterns
76
+ cop_config['ForbiddenPatterns'] || []
77
+ end
78
+ end
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RuboCop
4
+ module Cop
5
+ module Codeur
6
+ # This cop makes sure that Rails helpers only uses class methods in order
7
+ # to be able to use them in the test, views or from anywhere else.
8
+ # ApplicationHelper is excluded from this rule by default.
9
+ #
10
+ # @example
11
+ # # bad
12
+ # module CoolHelper
13
+ # def foobar
14
+ # # ...
15
+ # end
16
+ # end
17
+ #
18
+ # # good
19
+ # module CoolHelper
20
+ # def self.foobar
21
+ # # ...
22
+ # end
23
+ # end
24
+ #
25
+ class RailsAvoidInstanceMethodsInHelpers < Base
26
+ MSG = 'Prefer class methods in helpers.'
27
+
28
+ def on_def(node)
29
+ # NOTE: :sclass node is a "class << self" node
30
+ return if node.parent.sclass_type?
31
+
32
+ add_offense(node)
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'codeur/rails_app_patterns'
4
+ require_relative 'codeur/rails_avoid_instance_methods_in_helpers'
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rubocop'
4
+
5
+ require_relative 'rubocop/codeur'
6
+ require_relative 'rubocop/codeur/version'
7
+ require_relative 'rubocop/codeur/inject'
8
+
9
+ RuboCop::Codeur::Inject.defaults!
10
+
11
+ require_relative 'rubocop/cop/codeur_cops'
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'lib/rubocop/codeur/version'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'rubocop-codeur'
7
+ spec.version = RuboCop::Codeur::VERSION
8
+ spec.authors = ['Codeur']
9
+ spec.email = ['dev@codeur.com']
10
+
11
+ spec.summary = 'Codeur rubocop config gem'
12
+ spec.description = 'Shared rubocop config gem for every Ruby projects at Codeur SARL'
13
+ spec.homepage = 'https://github.com/codeur/rubocop-codeur'
14
+ spec.license = 'MIT'
15
+ spec.required_ruby_version = Gem::Requirement.new('>= 2.6.0')
16
+
17
+ # Specify which files should be added to the gem when it is released.
18
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
19
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
20
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
21
+ end
22
+
23
+ spec.add_dependency 'rubocop', '~> 1.25'
24
+ spec.add_dependency 'rubocop-github', '~> 0.17'
25
+ spec.add_dependency 'rubocop-minitest', '~> 0.10', '>=0.10.2'
26
+ spec.add_dependency 'rubocop-performance', '~> 1.9', '>= 1.9.2'
27
+ spec.add_dependency 'rubocop-rails', '~> 2.9', '>= 2.9.1'
28
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubocop-codeur
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.18
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
- - Dev-team Codeur
7
+ - Codeur
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-10-28 00:00:00.000000000 Z
11
+ date: 2022-01-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubocop
@@ -16,14 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.9.1
19
+ version: '1.25'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 1.9.1
26
+ version: '1.25'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rubocop-github
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.17'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.17'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: rubocop-minitest
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -91,32 +105,48 @@ executables: []
91
105
  extensions: []
92
106
  extra_rdoc_files: []
93
107
  files:
94
- - MIT-LICENSE
108
+ - ".github/workflows/quality.yml"
109
+ - ".github/workflows/test.yml"
110
+ - ".gitignore"
111
+ - ".rubocop.yml"
112
+ - Gemfile
113
+ - Gemfile.lock
114
+ - LICENSE.txt
95
115
  - README.md
116
+ - Rakefile
117
+ - bin/console
118
+ - bin/rake
119
+ - bin/setup
120
+ - config/default.yml
96
121
  - default.yml
97
- - lib/rubocop_codeur.rb
98
- - lib/rubocop_codeur/version.rb
122
+ - lib/rubocop-codeur.rb
123
+ - lib/rubocop/codeur.rb
124
+ - lib/rubocop/codeur/inject.rb
125
+ - lib/rubocop/codeur/version.rb
126
+ - lib/rubocop/cop/codeur/rails_app_patterns.rb
127
+ - lib/rubocop/cop/codeur/rails_avoid_instance_methods_in_helpers.rb
128
+ - lib/rubocop/cop/codeur_cops.rb
129
+ - rubocop-codeur.gemspec
99
130
  homepage: https://github.com/codeur/rubocop-codeur
100
131
  licenses:
101
132
  - MIT
102
- metadata:
103
- homepage_uri: https://github.com/codeur/rubocop-codeur
133
+ metadata: {}
104
134
  post_install_message:
105
135
  rdoc_options: []
106
136
  require_paths:
107
137
  - lib
108
138
  required_ruby_version: !ruby/object:Gem::Requirement
109
139
  requirements:
110
- - - "~>"
140
+ - - ">="
111
141
  - !ruby/object:Gem::Version
112
- version: '2.6'
142
+ version: 2.6.0
113
143
  required_rubygems_version: !ruby/object:Gem::Requirement
114
144
  requirements:
115
145
  - - ">="
116
146
  - !ruby/object:Gem::Version
117
147
  version: '0'
118
148
  requirements: []
119
- rubygems_version: 3.0.3
149
+ rubygems_version: 3.1.4
120
150
  signing_key:
121
151
  specification_version: 4
122
152
  summary: Codeur rubocop config gem
data/MIT-LICENSE DELETED
@@ -1,20 +0,0 @@
1
- Copyright 2021 Codeur SARL
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining
4
- a copy of this software and associated documentation files (the
5
- "Software"), to deal in the Software without restriction, including
6
- without limitation the rights to use, copy, modify, merge, publish,
7
- distribute, sublicense, and/or sell copies of the Software, and to
8
- permit persons to whom the Software is furnished to do so, subject to
9
- the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be
12
- included in all copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module RubocopCodeur
4
- VERSION = '0.1.18'
5
- end
@@ -1,6 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rubocop_codeur/version'
4
-
5
- module RubocopCodeur
6
- end