From 6644aa39d990b948e7cc4fb28d3fd517568fa8e1 Mon Sep 17 00:00:00 2001 From: jjaffeux Date: Wed, 6 May 2020 17:48:30 +0200 Subject: [PATCH] DEV: Move to rubocop-discourse. --- .gitignore | 1 - ...om-discourse-discourse-master--rubocop-yml | 355 ++++++++++++++++++ .rubocop.yml | 3 +- Gemfile | 1 + Gemfile.lock | 25 +- 5 files changed, 382 insertions(+), 3 deletions(-) create mode 100644 .rubocop-https---raw-githubusercontent-com-discourse-discourse-master--rubocop-yml diff --git a/.gitignore b/.gitignore index c6ae63a..d45a64e 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,3 @@ auto_generated .DS_Store node_modules/ -.rubocop-https---raw-githubusercontent-com-discourse-discourse-master--rubocop-yml diff --git a/.rubocop-https---raw-githubusercontent-com-discourse-discourse-master--rubocop-yml b/.rubocop-https---raw-githubusercontent-com-discourse-discourse-master--rubocop-yml new file mode 100644 index 0000000..f389e68 --- /dev/null +++ b/.rubocop-https---raw-githubusercontent-com-discourse-discourse-master--rubocop-yml @@ -0,0 +1,355 @@ +require: + - rubocop-discourse + - rubocop-rspec + +AllCops: + TargetRubyVersion: 2.6 + DisabledByDefault: true + Exclude: + - "db/schema.rb" + - "bundle/**/*" + - "vendor/**/*" + - "node_modules/**/*" + - "public/**/*" + - "plugins/**/gems/**/*" + +Discourse: + Enabled: true + +Discourse/NoChdir: + Exclude: + - 'spec/**/*' # Specs are run sequentially, so chdir can be used + - 'plugins/*/spec/**/*' + +# Prefer &&/|| over and/or. +Style/AndOr: + Enabled: true + +Style/FrozenStringLiteralComment: + Enabled: true + +# Align `when` with `case`. +Layout/CaseIndentation: + Enabled: true + +# Align comments with method definitions. +Layout/CommentIndentation: + Enabled: true + +# No extra empty lines. +Layout/EmptyLines: + Enabled: true + +# Use Ruby >= 1.9 syntax for hashes. Prefer { a: :b } over { :a => :b }. +Style/HashSyntax: + Enabled: true + +# Two spaces, no tabs (for indentation). +Layout/IndentationWidth: + Enabled: true + +Layout/SpaceAfterColon: + Enabled: true + +Layout/SpaceAfterComma: + Enabled: true + +Layout/SpaceAroundEqualsInParameterDefault: + Enabled: true + +Layout/SpaceAroundKeyword: + Enabled: true + +Layout/SpaceAroundOperators: + Enabled: true + +Layout/SpaceBeforeFirstArg: + Enabled: true + +# Defining a method with parameters needs parentheses. +Style/MethodDefParentheses: + Enabled: true + +# Use `foo {}` not `foo{}`. +Layout/SpaceBeforeBlockBraces: + Enabled: true + +# Use `foo { bar }` not `foo {bar}`. +Layout/SpaceInsideBlockBraces: + Enabled: true + +# Use `{ a: 1 }` not `{a:1}`. +Layout/SpaceInsideHashLiteralBraces: + Enabled: true + +Layout/SpaceInsideParens: + Enabled: true + +# Detect hard tabs, no hard tabs. +Layout/IndentationStyle: + Enabled: true + +# Blank lines should not have any spaces. +Layout/TrailingEmptyLines: + Enabled: true + +# No trailing whitespace. +Layout/TrailingWhitespace: + Enabled: true + +Lint/Debugger: + Enabled: true + +Layout/BlockAlignment: + Enabled: true + +# Align `end` with the matching keyword or starting expression except for +# assignments, where it should be aligned with the LHS. +Layout/EndAlignment: + Enabled: true + EnforcedStyleAlignWith: variable + +# Use my_method(my_arg) not my_method( my_arg ) or my_method my_arg. +Lint/RequireParentheses: + Enabled: true + +Lint/ShadowingOuterLocalVariable: + Enabled: true + +Layout/MultilineMethodCallIndentation: + Enabled: true + EnforcedStyle: indented + +Layout/HashAlignment: + Enabled: true + +Bundler/OrderedGems: + Enabled: false + +Style/SingleLineMethods: + Enabled: true + +Style/Semicolon: + Enabled: true + AllowAsExpressionSeparator: true + +Style/RedundantReturn: + Enabled: true + +Style/GlobalVars: + Enabled: true + Severity: warning + Exclude: + - 'lib/tasks/**/*' + - 'script/**/*' + - 'spec/**/*.rb' + - 'plugins/*/spec/**/*' + +# Specs + +RSpec/AnyInstance: + Enabled: false # To be decided + +RSpec/AroundBlock: + Enabled: true + +RSpec/BeforeAfterAll: + Enabled: false # To be decided + +RSpec/ContextMethod: + Enabled: false # TODO + +RSpec/ContextWording: + Enabled: false # To be decided + +RSpec/DescribeClass: + Enabled: false # To be decided + +RSpec/DescribeMethod: + Enabled: true + +RSpec/DescribeSymbol: + Enabled: false # To be decided + +RSpec/DescribedClass: + Enabled: false # To be decided + +RSpec/DescribedClassModuleWrapping: + Enabled: false # To be decided + +RSpec/EmptyExampleGroup: + Enabled: true + +RSpec/EmptyLineAfterExample: + Enabled: false # TODO + +RSpec/EmptyLineAfterExampleGroup: + Enabled: false # TODO + +RSpec/EmptyLineAfterFinalLet: + Enabled: false # TODO + +RSpec/EmptyLineAfterHook: + Enabled: false # TODO + +RSpec/EmptyLineAfterSubject: + Enabled: false # TODO + +RSpec/ExampleLength: + Enabled: false # To be decided + +RSpec/ExampleWithoutDescription: + Enabled: true + +RSpec/ExampleWording: + Enabled: false # TODO + +RSpec/ExpectActual: + Enabled: true + +RSpec/ExpectChange: + Enabled: false # To be decided + +RSpec/ExpectInHook: + Enabled: false # To be decided + +RSpec/ExpectOutput: + Enabled: true + +RSpec/FilePath: + Enabled: false # To be decided + +RSpec/Focus: + Enabled: true + +RSpec/HookArgument: + Enabled: false # TODO + +RSpec/HooksBeforeExamples: + Enabled: false # TODO + +RSpec/ImplicitBlockExpectation: + Enabled: true + +RSpec/ImplicitExpect: + Enabled: false # To be decided + +RSpec/ImplicitSubject: + Enabled: false # To be decided + +RSpec/InstanceSpy: + Enabled: true + +RSpec/InstanceVariable: + Enabled: false # TODO + +RSpec/InvalidPredicateMatcher: + Enabled: true + +RSpec/ItBehavesLike: + Enabled: true + +RSpec/IteratedExpectation: + Enabled: false # To be decided + +RSpec/LeadingSubject: + Enabled: false # TODO + +RSpec/LeakyConstantDeclaration: + Enabled: false # To be decided + +RSpec/LetBeforeExamples: + Enabled: false # TODO + +RSpec/LetSetup: + Enabled: false # TODO + +RSpec/MessageChain: + Enabled: true + +RSpec/MessageSpies: + Enabled: true + +RSpec/MissingExampleGroupArgument: + Enabled: true + +RSpec/MultipleDescribes: + Enabled: false # TODO + +RSpec/MultipleSubjects: + Enabled: true + +RSpec/NamedSubject: + Enabled: false # To be decided + +RSpec/NestedGroups: + Enabled: false # To be decided + +RSpec/OverwritingSetup: + Enabled: true + +RSpec/ReceiveCounts: + Enabled: true + +RSpec/ReceiveNever: + Enabled: true + +RSpec/RepeatedDescription: + Enabled: false # TODO + +RSpec/RepeatedExample: + Enabled: false # TODO + +RSpec/RepeatedExampleGroupBody: + Enabled: false # TODO + +RSpec/RepeatedExampleGroupDescription: + Enabled: false # TODO + +RSpec/ReturnFromStub: + Enabled: true + +RSpec/ScatteredSetup: + Enabled: false # TODO + +RSpec/SharedContext: + Enabled: true + +RSpec/SharedExamples: + Enabled: true + +RSpec/SingleArgumentMessageChain: + Enabled: true + +RSpec/SubjectStub: + Enabled: true + +RSpec/UnspecifiedException: + Enabled: true + +RSpec/VerifiedDoubles: + Enabled: true + +RSpec/VoidExpect: + Enabled: true + +RSpec/Yield: + Enabled: true + +Capybara/CurrentPathExpectation: + Enabled: true + +Capybara/FeatureMethods: + Enabled: true + +FactoryBot/AttributeDefinedStatically: + Enabled: true + +FactoryBot/CreateList: + Enabled: true + +FactoryBot/FactoryClassName: + Enabled: true + +Rails/HttpStatus: + Enabled: true diff --git a/.rubocop.yml b/.rubocop.yml index 0ca7eff..d46296c 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1 +1,2 @@ -inherit_from: https://raw.githubusercontent.com/discourse/discourse/master/.rubocop.yml +inherit_gem: + rubocop-discourse: default.yml diff --git a/Gemfile b/Gemfile index df32188..f6bd3b2 100644 --- a/Gemfile +++ b/Gemfile @@ -2,4 +2,5 @@ group :development do gem 'translations-manager', git: 'https://github.com/discourse/translations-manager.git' + gem 'rubocop-discourse' end diff --git a/Gemfile.lock b/Gemfile.lock index 329af3d..a49fac9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -6,12 +6,35 @@ GIT GEM specs: + ast (2.4.0) + jaro_winkler (1.5.4) + parallel (1.19.1) + parser (2.7.1.2) + ast (~> 2.4.0) + rainbow (3.0.0) + rexml (3.2.4) + rubocop (0.82.0) + jaro_winkler (~> 1.5.1) + parallel (~> 1.10) + parser (>= 2.7.0.1) + rainbow (>= 2.2.2, < 4.0) + rexml + ruby-progressbar (~> 1.7) + unicode-display_width (>= 1.4.0, < 2.0) + rubocop-discourse (2.1.2) + rubocop (>= 0.69.0) + rubocop-rspec (>= 1.39.0) + rubocop-rspec (1.39.0) + rubocop (>= 0.68.1) + ruby-progressbar (1.10.1) + unicode-display_width (1.7.0) PLATFORMS ruby DEPENDENCIES + rubocop-discourse translations-manager! BUNDLED WITH - 1.17.3 + 2.1.4