Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
coorasse committed Jun 23, 2022
2 parents f372180 + 9084c54 commit 3e9e438
Show file tree
Hide file tree
Showing 111 changed files with 2,873 additions and 2,159 deletions.
10 changes: 10 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
root = true

[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
max_line_length = 120
65 changes: 46 additions & 19 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,34 +8,45 @@ env:

jobs:
tests:
name: Test & lint
name: Test
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
ruby: ['2.4', '2.5', '2.6', '2.7', 'jruby', 'truffleruby']
gemfile: ['gemfiles/activerecord_4.2.0.gemfile', 'gemfiles/activerecord_5.0.2.gemfile', 'gemfiles/activerecord_5.1.0.gemfile', 'gemfiles/activerecord_5.2.2.gemfile', 'gemfiles/activerecord_6.0.0.gemfile', 'gemfiles/activerecord_6.1.0.gemfile', 'gemfiles/activerecord_master.gemfile']
ruby: ['2.6', '2.7', '3.0', 'jruby', 'truffleruby']
gemfile: ['gemfiles/activerecord_5.0.2.gemfile', 'gemfiles/activerecord_5.1.0.gemfile', 'gemfiles/activerecord_5.2.2.gemfile', 'gemfiles/activerecord_6.0.0.gemfile', 'gemfiles/activerecord_6.1.0.gemfile', 'gemfiles/activerecord_main.gemfile']
include:
- gemfile: 'gemfiles/activerecord_7.0.0.gemfile'
ruby: '3.1'
- gemfile: 'gemfiles/activerecord_7.0.0.gemfile'
ruby: '3.0'
- gemfile: 'gemfiles/activerecord_6.1.0.gemfile'
ruby: '3.1'
- gemfile: 'gemfiles/activerecord_6.1.0.gemfile'
ruby: '3.0'
exclude:
- gemfile: 'gemfiles/activerecord_4.2.0.gemfile'
ruby: '2.7' # rails 4.2 can't run on ruby 2.7 due to BigDecimal API change
- gemfile: 'gemfiles/activerecord_4.2.0.gemfile'
- gemfile: 'gemfiles/activerecord_5.2.2.gemfile'
ruby: '3.0' # rails 5.2 can't run on ruby 3.0
- gemfile: 'gemfiles/activerecord_5.1.0.gemfile'
ruby: '3.0' # rails 5.1 can't run on ruby 3.0
- gemfile: 'gemfiles/activerecord_5.0.2.gemfile'
ruby: '3.0' # rails 5.0 can't run on ruby 3.0
- gemfile: 'gemfiles/activerecord_5.0.2.gemfile'
ruby: '3.0' # rails 5.0 can't run on ruby 3.0
- gemfile: 'gemfiles/activerecord_5.0.2.gemfile'
ruby: 'truffleruby' # TruffleRuby 21.0 targets Ruby 2.7, same as above
- gemfile: 'gemfiles/activerecord_5.1.0.gemfile'
ruby: 'truffleruby' # TruffleRuby 21.0 targets Ruby 2.7, same as above
- gemfile: 'gemfiles/activerecord_5.2.2.gemfile'
ruby: 'truffleruby' # TruffleRuby 21.0 targets Ruby 2.7, same as above
- gemfile: 'gemfiles/activerecord_master.gemfile'
- gemfile: 'gemfiles/activerecord_main.gemfile'
ruby: '2.6' # rails 7+ requires ruby 3.0+
- gemfile: 'gemfiles/activerecord_master.gemfile'
ruby: '2.5' # rails 7+ requires ruby 3.0+
- gemfile: 'gemfiles/activerecord_6.0.0.gemfile'
ruby: '2.4' # rails 6+ requires ruby 2.5+
- gemfile: 'gemfiles/activerecord_6.1.0.gemfile'
ruby: '2.4' # rails 6+ requires ruby 2.5+
- gemfile: 'gemfiles/activerecord_master.gemfile'
ruby: '2.4' # rails 6+ requires ruby 2.5+
- gemfile: 'gemfiles/activerecord_5.0.2.gemfile'
ruby: 'jruby' # this *should* work - there's a test failure; it's not incompatible like the other excludes. could be an issue in Rails 5.0.2?
- gemfile: 'gemfiles/activerecord_6.1.0.gemfile'
ruby: 'jruby' # this *should* work. it seems like there's an issue with rails 6 on jruby.
- gemfile: 'gemfiles/activerecord_master.gemfile'
- gemfile: 'gemfiles/activerecord_main.gemfile'
ruby: 'jruby' # this *should* work. it seems like there's an issue with rails 6 on jruby.

env:
Expand Down Expand Up @@ -72,11 +83,27 @@ jobs:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true

- name: Run linter
run: bundle exec rubocop

- name: Run tests on sqlite
run: DB=sqlite bundle exec rake

- name: Run tests on postgres
run: DB=postgres bundle exec rake

lint:
name: Lint
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v2
with:
fetch-depth: '20'

- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.7
bundler-cache: true

- name: Run linter
run: bundle exec rubocop
12 changes: 10 additions & 2 deletions .rubocop.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
inherit_from: .rubocop_todo.yml

Style/Documentation:
Enabled: false

Expand All @@ -10,14 +12,18 @@ Style/EmptyMethod:
Style/ClassAndModuleChildren:
Enabled: false

Metrics/LineLength:
Layout/LineLength:
Max: 120

Metrics/BlockLength:
Exclude:
- 'lib/cancan/matchers.rb'
- '**/*_spec.rb'

Metrics/ClassLength:
Exclude:
- 'lib/cancan/model_adapters/active_record_adapter.rb'

# TODO
# Offense count: 2
# Configuration parameters: NamePrefix, NamePrefixBlacklist, NameWhitelist.
Expand All @@ -34,7 +40,9 @@ Lint/AmbiguousBlockAssociation:
Enabled: false

AllCops:
TargetRubyVersion: 2.2.0
NewCops: enable
SuggestExtensions: false
TargetRubyVersion: 3.0
Exclude:
- 'gemfiles/**/*'
- 'vendor/**/*'
Expand Down
216 changes: 216 additions & 0 deletions .rubocop_todo.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,216 @@
# This configuration was generated by
# `rubocop --auto-gen-config`
# on 2022-03-15 14:26:54 UTC using RuboCop version 1.26.0.
# The point is for the user to remove these configuration records
# one by one as the offenses are removed from the code base.
# Note that changes in the inspected code, or installation of new
# versions of RuboCop, may require this file to be generated again.

# Offense count: 1
# This cop supports safe auto-correction (--auto-correct).
# Configuration parameters: Include.
# Include: **/*.gemspec
Gemspec/RequireMFA:
Exclude:
- 'cancancan.gemspec'

# Offense count: 1
# Configuration parameters: Include.
# Include: **/*.gemspec
Gemspec/RequiredRubyVersion:
Exclude:
- 'cancancan.gemspec'

# Offense count: 2
# This cop supports safe auto-correction (--auto-correct).
# Configuration parameters: EmptyLineBetweenMethodDefs, EmptyLineBetweenClassDefs, EmptyLineBetweenModuleDefs, AllowAdjacentOneLineDefs, NumberOfEmptyLines.
Layout/EmptyLineBetweenDefs:
Exclude:
- 'spec/cancan/ability_spec.rb'

# Offense count: 3
# This cop supports safe auto-correction (--auto-correct).
# Configuration parameters: EnforcedStyle, IndentationWidth.
# SupportedStyles: aligned, indented
Layout/LineEndStringConcatenationIndentation:
Exclude:
- 'lib/cancan/ability/rules.rb'
- 'lib/cancan/rule.rb'
- 'spec/cancan/model_adapters/active_record_adapter_spec.rb'

# Offense count: 1
# This cop supports safe auto-correction (--auto-correct).
Lint/AmbiguousOperatorPrecedence:
Exclude:
- 'lib/cancan/controller_resource.rb'

# Offense count: 77
# Configuration parameters: AllowedMethods.
# AllowedMethods: enums
Lint/ConstantDefinitionInBlock:
Exclude:
- 'spec/cancan/ability_spec.rb'
- 'spec/cancan/controller_resource_spec.rb'
- 'spec/cancan/model_adapters/accessible_by_has_many_through_spec.rb'
- 'spec/cancan/model_adapters/accessible_by_integration_spec.rb'
- 'spec/cancan/model_adapters/active_record_4_adapter_spec.rb'
- 'spec/cancan/model_adapters/active_record_adapter_spec.rb'
- 'spec/cancan/model_adapters/conditions_extractor_spec.rb'
- 'spec/cancan/model_adapters/conditions_normalizer_spec.rb'
- 'spec/cancan/model_adapters/has_and_belongs_to_many_spec.rb'
- 'spec/cancan/rule_compressor_spec.rb'
- 'spec/cancan/rule_spec.rb'

# Offense count: 1
# Configuration parameters: IgnoreLiteralBranches, IgnoreConstantBranches.
Lint/DuplicateBranch:
Exclude:
- 'spec/cancan/model_adapters/active_record_adapter_spec.rb'

# Offense count: 3
# Configuration parameters: AllowComments, AllowEmptyLambdas.
Lint/EmptyBlock:
Exclude:
- 'spec/cancan/model_adapters/conditions_normalizer_spec.rb'

# Offense count: 4
# Configuration parameters: AllowComments.
Lint/EmptyClass:
Exclude:
- 'spec/cancan/controller_resource_spec.rb'
- 'spec/cancan/rule_compressor_spec.rb'

# Offense count: 2
Lint/MissingSuper:
Exclude:
- 'lib/cancan/exceptions.rb'
- 'lib/cancan/model_adapters/abstract_adapter.rb'

# Offense count: 1
# Configuration parameters: IgnoredMethods, CountRepeatedAttributes.
Metrics/AbcSize:
Max: 18

# Offense count: 1
# Configuration parameters: Max, CountKeywordArgs.
Metrics/ParameterLists:
MaxOptionalParameters: 4

# Offense count: 1
# Configuration parameters: EnforcedStyle, CheckMethodNames, CheckSymbols, AllowedIdentifiers.
# SupportedStyles: snake_case, normalcase, non_integer
# AllowedIdentifiers: capture3, iso8601, rfc1123_date, rfc822, rfc2822, rfc3339
Naming/VariableNumber:
Exclude:
- 'spec/cancan/model_adapters/conditions_extractor_spec.rb'

# Offense count: 2
# This cop supports safe auto-correction (--auto-correct).
Style/BisectedAttrAccessor:
Exclude:
- 'lib/cancan/rule.rb'

# Offense count: 5
# This cop supports safe auto-correction (--auto-correct).
# Configuration parameters: IgnoredMethods.
# IgnoredMethods: ==, equal?, eql?
Style/ClassEqualityComparison:
Exclude:
- 'lib/cancan/ability.rb'
- 'lib/cancan/conditions_matcher.rb'
- 'lib/cancan/relevant.rb'
- 'lib/cancan/unauthorized_message_resolver.rb'

# Offense count: 1
# This cop supports unsafe auto-correction (--auto-correct-all).
Style/CollectionCompact:
Exclude:
- 'lib/cancan/ability.rb'

# Offense count: 4
# Configuration parameters: EnforcedStyle, MaxUnannotatedPlaceholdersAllowed, IgnoredMethods.
# SupportedStyles: annotated, template, unannotated
Style/FormatStringToken:
Exclude:
- 'spec/cancan/ability_spec.rb'

# Offense count: 9
# This cop supports safe auto-correction (--auto-correct).
# Configuration parameters: EnforcedStyle.
# SupportedStyles: always, always_true, never
Style/FrozenStringLiteralComment:
Exclude:
- 'lib/cancan/class_matcher.rb'
- 'lib/cancan/model_adapters/conditions_normalizer.rb'
- 'lib/cancan/model_adapters/sti_normalizer.rb'
- 'lib/cancan/model_adapters/strategies/base.rb'
- 'lib/cancan/model_adapters/strategies/left_join.rb'
- 'lib/cancan/model_adapters/strategies/subquery.rb'
- 'spec/cancan/model_adapters/accessible_by_has_many_through_spec.rb'
- 'spec/cancan/model_adapters/conditions_normalizer_spec.rb'
- 'spec/cancan/model_adapters/has_and_belongs_to_many_spec.rb'

# Offense count: 1
# This cop supports safe auto-correction (--auto-correct).
# Configuration parameters: EnforcedStyle.
# SupportedStyles: same_as_string_literals, single_quotes, double_quotes
Style/QuotedSymbols:
Exclude:
- 'lib/cancan/exceptions.rb'

# Offense count: 3
# This cop supports safe auto-correction (--auto-correct).
Style/RedundantBegin:
Exclude:
- 'spec/cancan/ability_spec.rb'

# Offense count: 12
# This cop supports safe auto-correction (--auto-correct).
Style/RedundantFileExtensionInRequire:
Exclude:
- 'lib/cancan/ability.rb'
- 'lib/cancan/controller_resource.rb'
- 'lib/cancan/controller_resource_loader.rb'
- 'lib/cancan/rule.rb'
- 'lib/cancan/rules_compressor.rb'

# Offense count: 1
# This cop supports safe auto-correction (--auto-correct).
Style/RedundantFreeze:
Exclude:
- 'lib/cancan/version.rb'

# Offense count: 4
# This cop supports safe auto-correction (--auto-correct).
Style/RedundantRegexpEscape:
Exclude:
- 'spec/changelog_spec.rb'

# Offense count: 1
# This cop supports safe auto-correction (--auto-correct).
# Configuration parameters: ConvertCodeThatCanStartToReturnNil, AllowedMethods.
# AllowedMethods: present?, blank?, presence, try, try!
Style/SafeNavigation:
Exclude:
- 'lib/cancan/controller_resource_builder.rb'

# Offense count: 3
# This cop supports unsafe auto-correction (--auto-correct-all).
Style/SlicingWithRange:
Exclude:
- 'lib/cancan/matchers.rb'
- 'lib/cancan/rules_compressor.rb'
- 'spec/cancan/rule_compressor_spec.rb'

# Offense count: 2
# This cop supports unsafe auto-correction (--auto-correct-all).
Style/StringChars:
Exclude:
- 'spec/matchers.rb'

# Offense count: 1
# This cop supports unsafe auto-correction (--auto-correct-all).
# Configuration parameters: Mode.
Style/StringConcatenation:
Exclude:
- 'lib/cancan/rule.rb'

0 comments on commit 3e9e438

Please sign in to comment.