diff --git a/.codeclimate.yml b/.codeclimate.yml deleted file mode 100644 index 173ec5e..0000000 --- a/.codeclimate.yml +++ /dev/null @@ -1,16 +0,0 @@ -version: "2" -prepare: - fetch: - - url: "https://raw.githubusercontent.com/internetee/style-guide/master/.rubocop-ruby.yml" - path: ".rubocop.yml" -plugins: - duplication: - enabled: true - config: - languages: - - ruby - rubocop: - enabled: true - channel: rubocop-0-74 -exclude_patterns: - - "bin/" \ No newline at end of file diff --git a/.github/workflows/qlty.yml b/.github/workflows/qlty.yml new file mode 100644 index 0000000..cc5ea91 --- /dev/null +++ b/.github/workflows/qlty.yml @@ -0,0 +1,27 @@ +name: RuboCop Code Quality + +on: + push: + branches: [ main, master, develop ] + pull_request: + branches: [ main, master, develop ] + +jobs: + rubocop: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: '3.2' + bundler-cache: true + + - name: Install RuboCop + run: gem install rubocop + + - name: Run RuboCop check + run: rubocop --config .rubocop.yml diff --git a/.rubocop.yml b/.rubocop.yml new file mode 100644 index 0000000..0909022 --- /dev/null +++ b/.rubocop.yml @@ -0,0 +1,94 @@ +# Local RuboCop configuration based on Internetee style guide +# This matches the exact rules from the Internetee style guide + +AllCops: + NewCops: enable + TargetRubyVersion: 3.2 + Exclude: + - 'bin/**/*' + - 'vendor/**/*' + - 'node_modules/**/*' + - 'db/schema.rb' + - 'config/initializers/version.rb' + +# Style +Style/Alias: + EnforcedStyle: prefer_alias_method + +Style/FrozenStringLiteralComment: + Enabled: false + +Style/ReturnNil: + Enabled: true + +Style/TrailingCommaInArrayLiteral: + EnforcedStyleForMultiline: comma + +Style/TrailingCommaInHashLiteral: + EnforcedStyleForMultiline: comma + +Style/Lambda: + Enabled: false + +Style/RedundantRegexpEscape: + Enabled: false + +Style/KeywordParametersOrder: + Enabled: false + +Style/StringLiterals: + EnforcedStyle: single_quotes + +# Documentation +Style/Documentation: + Enabled: false + +# Layout +Layout/LineLength: + Max: 120 + +Layout/IndentationWidth: + Width: 2 + +# Metrics +Metrics/PerceivedComplexity: + Enabled: false + +Metrics/CyclomaticComplexity: + Enabled: false + +Metrics/AbcSize: + Enabled: false + +Metrics/MethodLength: + Max: 20 + +Metrics/ClassLength: + Max: 150 + +Metrics/ModuleLength: + Max: 150 + +Metrics/BlockLength: + Max: 30 + Exclude: + - 'spec/**/*' + - 'test/**/*' + +# Naming - using new rule name +Naming/MethodParameterName: + AllowedNames: + - x + - y + - ph + - pw + - ip + - id + +# Lint +Lint/UnusedMethodArgument: + Enabled: false + +# Fix deprecated rule - moved from Style to Lint +Lint/MixedRegexpCaptureTypes: + Enabled: false diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index fdaf671..0000000 --- a/.travis.yml +++ /dev/null @@ -1,13 +0,0 @@ ---- -sudo: false -language: ruby -cache: bundler -rvm: - - 2.4.4 -before_install: gem install bundler -v 2.0.2 -before_script: - - "curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter" - - "chmod +x ./cc-test-reporter" - - "./cc-test-reporter before-build" -after_script: - - "./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT" \ No newline at end of file