Skip to content

Commit

Permalink
Use StandardRb as Ruby linter
Browse files Browse the repository at this point in the history
  • Loading branch information
tvdeyen committed May 7, 2024
1 parent 1bef19f commit d2d9454
Show file tree
Hide file tree
Showing 52 changed files with 206 additions and 450 deletions.
21 changes: 21 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: Lint

on: [pull_request]

concurrency:
group: lint-${{ github.ref_name }}
cancel-in-progress: ${{ github.ref_name != 'main' }}

jobs:
Standard:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Ruby and gems
uses: ruby/setup-ruby@v1
with:
ruby-version: "3.0"
bundler-cache: true
- name: Lint Ruby files
run: bundle exec standardrb
308 changes: 4 additions & 304 deletions .rubocop.yml
Original file line number Diff line number Diff line change
@@ -1,307 +1,7 @@
# Relaxed.Ruby.Style
require: standard

AllCops:
TargetRubyVersion: 2.4
Exclude:
- 'bin/rspec'
- 'vendor/**/*'
- 'spec/dummy/db/**/*'
- 'spec/dummy/config/**/*'
- 'alchemy_cms.gemspec'
- 'Rakefile'
- 'node_modules/**/*'
TargetRubyVersion: 3.0

# Really, rubocop?
Bundler/OrderedGems:
Enabled: false

Style/EmptyLiteral:
Enabled: false

# We use class vars and will have to continue doing so for compatability
Style/ClassVars:
Enabled: false

Style/FloatDivision:
EnforcedStyle: left_coerce

# This has been used for customization
Style/MutableConstant:
Enabled: false

Style/ClassAndModuleChildren:
Enabled: false

Style/GuardClause:
Enabled: false

# We support older versions of Ruby (2.1) that do not have the %i syntax
Style/SymbolArray:
Enabled: false

Style/SymbolProc:
Exclude:
- 'lib/alchemy/permissions.rb'

Style/WordArray:
Enabled: false

Style/ConditionalAssignment:
Enabled: false

Style/MixinUsage:
Exclude:
- spec/**/*

Layout/ArgumentAlignment:
Enabled: false

Layout/HashAlignment:
Enabled: false

Layout/ParameterAlignment:
Enabled: false

Layout/ClosingParenthesisIndentation:
Enabled: false

Layout/DotPosition:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styledotposition

Layout/ElseAlignment:
Enabled: false

Layout/EmptyLineAfterMagicComment:
Enabled: false

Layout/FirstArrayElementIndentation:
Enabled: false

Layout/FirstHashElementIndentation:
Enabled: false

Layout/IndentationWidth:
Enabled: false

Layout/LineLength:
Enabled: false

Layout/MultilineHashBraceLayout:
Enabled: false

Layout/MultilineMethodCallBraceLayout:
Enabled: false

Layout/MultilineMethodCallIndentation:
Enabled: false

Layout/MultilineOperationIndentation:
EnforcedStyle: indented

Layout/SpaceBeforeBlockBraces:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylespacebeforeblockbraces

Layout/SpaceInsideHashLiteralBraces:
Enabled: false

Layout/SpaceInsideParens:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylespaceinsideparens

Layout/EndAlignment:
Enabled: false

Layout/RescueEnsureAlignment:
Enabled: false

Lint/SuppressedException:
Exclude:
- 'config/initializers/mini_profiler.rb'

Style/CollectionMethods:
Enabled: false

Style/Alias:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylealias

Style/BeginBlock:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylebeginblock

Style/BlockDelimiters:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styleblockdelimiters

Style/Documentation:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styledocumentation

Style/DoubleNegation:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styledoublenegation

Style/EmptyMethod:
Enabled: false

Style/EndBlock:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styleendblock

Style/FormatString:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styleformatstring

Style/IfUnlessModifier:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styleifunlessmodifier

Style/Lambda:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylelambda

Style/ModuleFunction:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylemodulefunction

Style/MultilineBlockChain:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylemultilineblockchain

Style/NegatedIf:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylenegatedif

Style/NegatedWhile:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylenegatedwhile

Style/NumericLiteralPrefix:
Enabled: false

Style/ParallelAssignment:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styleparallelassignment

Style/PercentLiteralDelimiters:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylepercentliteraldelimiters

Style/PerlBackrefs:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styleperlbackrefs

Style/RegexpLiteral:
Enabled: false

Style/Semicolon:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylesemicolon

Style/SignalException:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylesignalexception

Style/SingleLineBlockParams:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylesinglelineblockparams

Style/SingleLineMethods:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylesinglelinemethods

Style/SpecialGlobalVars:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylespecialglobalvars

Style/StringLiterals:
EnforcedStyle: double_quotes

Style/StringLiteralsInInterpolation:
EnforcedStyle: double_quotes

Style/TrailingCommaInArguments:
EnforcedStyleForMultiline: comma

Style/TrailingCommaInArrayLiteral:
EnforcedStyleForMultiline: comma

Style/TrailingCommaInHashLiteral:
EnforcedStyleForMultiline: consistent_comma

Style/WhileUntilModifier:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylewhileuntilmodifier

# We use a lot of
#
# expect {
# something
# }.to { happen }
#
# syntax in the specs files.
Lint/AmbiguousBlockAssociation:
Exclude:
- 'spec/**/*'

Lint/AmbiguousRegexpLiteral:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#lintambiguousregexpliteral

Lint/AssignmentInCondition:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#lintassignmentincondition

# We use eval to get the correct url proxy object of engines in:
# - app/helpers/alchemy/admin/navigation_helper.rb:139
# - lib/alchemy/resources_helper.rb:24
Security/Eval:
Exclude:
- app/helpers/alchemy/admin/navigation_helper.rb
- lib/alchemy/resources_helper.rb

Metrics/AbcSize:
Enabled: false

Metrics/BlockLength:
Enabled: false

Metrics/BlockNesting:
Enabled: false

Metrics/ClassLength:
Enabled: false

Metrics/ModuleLength:
Enabled: false

Metrics/CyclomaticComplexity:
Enabled: false

Metrics/MethodLength:
Enabled: false

Metrics/ParameterLists:
Enabled: false

Metrics/PerceivedComplexity:
Enabled: false

Naming/AccessorMethodName:
Enabled: false

Naming/HeredocDelimiterNaming:
Enabled: false

# This cop is great but has no config option to support the style `@_method_name` we are using.
Naming/MemoizedInstanceVariableName:
Enabled: false

# We need these names for backwards compatability
Naming/PredicateName:
Enabled: false

Naming/VariableNumber:
Enabled: false
inherit_gem:
standard: config/base.yml
5 changes: 5 additions & 0 deletions .standard.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
parallel: true
format: progress
ruby_version: 3.0
ignore:
- "spec/dummy/**/*"
5 changes: 3 additions & 2 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# frozen_string_literal: true

source "https://rubygems.org"
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

Expand All @@ -20,6 +21,6 @@ alchemy_branch = ENV.fetch("ALCHEMY_BRANCH", "main")
gem "alchemy_cms", github: "AlchemyCMS/alchemy_cms", branch: alchemy_branch
gem "alchemy-devise", github: "AlchemyCMS/alchemy-devise", branch: "main"

gem "rufo"
gem "rubocop"
gem "rubocop", require: false
gem "standard", "~> 1.25", require: false
gem "pry-byebug"
1 change: 1 addition & 0 deletions alchemy-json_api.gemspec
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# frozen_string_literal: true

$:.push File.expand_path("lib", __dir__)

# Maintain your gem's version:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# frozen_string_literal: true

module Alchemy
module JsonApi
module Admin
Expand Down
3 changes: 2 additions & 1 deletion app/controllers/alchemy/json_api/admin/pages_controller.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# frozen_string_literal: true

module Alchemy
module JsonApi
module Admin
Expand All @@ -13,7 +14,7 @@ def cache_duration
end

def caching_options
{ public: false, must_revalidate: true }
{public: false, must_revalidate: true}
end

def set_current_preview
Expand Down
Loading

0 comments on commit d2d9454

Please sign in to comment.