diff --git a/.github/ISSUE_TEMPLATE/bug.md b/.github/ISSUE_TEMPLATE/bug.md new file mode 100644 index 0000000..6c7e7bc --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug.md @@ -0,0 +1,71 @@ +--- +name: Bug +about: Create a report to help us improve + +--- + +## Current Behavior + + +### Steps to Reproduce + + +1. Sign in as "marty@hillvalley.net" +2. Click "Current Orders" +3. Try to remove "Flux Capacitor" from the cart + +### Screenshot + + +## Expected Behavior + + +## Environment + + - Device: + + - OS: + + - [ ] Windows + - [ ] macOS + - [ ] iOS + - [ ] Android + - [ ] Linux + - [ ] Other + + - OS Version: + + - Browser: + + - [ ] Chrome + - [ ] Safari + - [ ] Firefox + - [ ] Internet Explorer + - [ ] Edge + - [ ] Opera + + - Browser Version: + + diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..63623a0 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,45 @@ +--- +name: Feature Request +about: Suggest an idea for this project + +--- + +## Current Problem + + +## Potential Solution or New Behavior + + +### Mockups + + + + + diff --git a/.github/issue_template.md b/.github/issue_template.md deleted file mode 100644 index f8b2378..0000000 --- a/.github/issue_template.md +++ /dev/null @@ -1,34 +0,0 @@ - - - -## Current Behavior - - - -### Steps to Reproduce - -1. Sign in as "marty@hillvalley.net" -2. Click "Current Orders" -3. Try to remove "Flux Capacitor" from the cart - -### Screenshot(s) - - - - - - -## Expected Behavior or New Behavior - - -### Context - - - - -### Mockup(s) - - - - - diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 119258f..69f6f4d 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,36 +1,71 @@ - - - -## Why This Change Is Necessary +Why This Change Is Necessary +-------------------------------------------------------------------------------- - [ ] Bug Fix - [ ] New Feature - - - + -## How These Changes Address the Issue - - +How These Changes Address the Issue +-------------------------------------------------------------------------------- + -## Side Effects Caused By This Change +Side Effects Caused By This Change +-------------------------------------------------------------------------------- - [ ] This Causes a Breaking Change +- [ ] This Does Not Cause Any Known Side Effects + + - - - - +Screenshots +-------------------------------------------------------------------------------- + -## Screenshots - - +Checklist: +-------------------------------------------------------------------------------- + -## Checklist: - - - [ ] I have run `rubocop` against the codebase - [ ] I have added tests to cover my changes - [ ] All new and existing tests passed + + diff --git a/.gitignore b/.gitignore index fa9bdf2..de7b60a 100644 --- a/.gitignore +++ b/.gitignore @@ -77,7 +77,7 @@ build coverage coverage.data dist -docs +docs/**/*.* files/scripts/**/*.js files/scripts/**/*.py files/scripts/**/*.zip @@ -88,6 +88,10 @@ profile rdoc target +# Documentation Code Is Used to Generate Static Files +!docs/**/*.rb +!docs/**/header.md + # Local Configuration Files !.env.example !default.mode1v3 @@ -131,6 +135,7 @@ target .secrets .shellwreck.sh .terraform +.tern-port Gemfile.local Procfile.local atlassian-ide-plugin.xml diff --git a/.overcommit.yml b/.overcommit.yml index 1bc11f8..2cb69fd 100644 --- a/.overcommit.yml +++ b/.overcommit.yml @@ -39,7 +39,7 @@ plugin_directory: '.git-hooks' # Whether to hide hook output by default. This results in completely silent hook # runs except in the case of warning or failure. -quiet: true +quiet: false # Number of hooks that can be run concurrently. Typically this won't need to be # adjusted, but if you know that some of your hooks themselves use multiple @@ -59,7 +59,6 @@ PreCommit: problem_on_unmodified_line: 'report' requires_files: true required: false - quiet: false exclude: - 'bower_components/**/*' - 'node_modules/**/*' @@ -286,7 +285,11 @@ PreCommit: enabled: true flags: - '--format=gcc' + - '-e SC1090' + - '-e SC1117' + - '-e SC2148' - '-e SC2155' + - '-e SC2181' include: - '**/*.sh' - '**/*.bash' @@ -344,7 +347,6 @@ PrePush: ALL: requires_files: false required: false - quiet: true Minitest: enabled: false @@ -359,7 +361,6 @@ PreRebase: ALL: requires_files: false required: false - quiet: true MergedCommits: enabled: false @@ -367,7 +368,6 @@ PreRebase: CommitMsg: ALL: requires_files: false - quiet: true CapitalizedSubject: enabled: true @@ -404,7 +404,6 @@ CommitMsg: PostCheckout: ALL: required: false - quiet: true skip_file_checkout: true BowerInstall: @@ -426,7 +425,6 @@ PostCommit: ALL: requires_files: false required: false - quiet: true BowerInstall: enabled: false @@ -448,8 +446,8 @@ PostCommit: PostMerge: ALL: + enabled: false requires_files: false - quiet: true BowerInstall: enabled: false @@ -464,12 +462,11 @@ PostMerge: enabled: false SubmoduleStatus: - enabled: true + enabled: false PostRewrite: ALL: requires_files: false - quiet: true BowerInstall: enabled: false diff --git a/.rubocop_core.yml b/.rubocop_core.yml index 7b6e174..6920e2a 100644 --- a/.rubocop_core.yml +++ b/.rubocop_core.yml @@ -1,9 +1,12 @@ -# Last updated to rubocop 0.52.1 +# Last updated to rubocop 0.58.0 AllCops: Include: + - '**/*.arb' + - '**/*.axlsx' - '**/*.builder' - '**/*.fcgi' + - '**/*.gemfile' - '**/*.gemspec' - '**/*.god' - '**/*.jb' @@ -14,6 +17,7 @@ AllCops: - '**/*.podspec' - '**/*.rabl' - '**/*.rake' + - '**/*.rb' - '**/*.rbuild' - '**/*.rbw' - '**/*.rbx' @@ -22,10 +26,9 @@ AllCops: - '**/*.spec' - '**/*.thor' - '**/*.watchr' + - '**/*Fastfile' - '**/.irbrc' - '**/.pryrc' - - '**/buildfile' - - '**/config.ru' - '**/Appraisals' - '**/Berksfile' - '**/Brewfile' @@ -35,7 +38,6 @@ AllCops: - '**/Dangerfile' - '**/Deliverfile' - '**/Fastfile' - - '**/*Fastfile' - '**/Gemfile' - '**/Guardfile' - '**/Jarfile' @@ -47,6 +49,8 @@ AllCops: - '**/Thorfile' - '**/Vagabondfile' - '**/Vagrantfile' + - '**/buildfile' + - '**/config.ru' Exclude: - '**/*.gemspec' @@ -56,11 +60,9 @@ AllCops: - '**/db/migrate/**/*' - '**/db/schema.rb' - '**/node_modules/**/*' - - '**/sample.rb' - - '**/scrub.rb' - - '**/seed.rb' - '**/spec/dummy/**/*' - '**/vendor/**/*' + - '.git/**/*' - 'bin/rails' - 'bin/rake' - 'bin/spring' @@ -124,6 +126,14 @@ Layout/AlignParameters: Exclude: - '**/Gemfile' +Layout/BlockAlignment: + Enabled: true + EnforcedStyleAlignWith: 'either' + Exclude: + - '**/spec/factories.rb' + - '**/spec/factories/**/*.rb' + - 'app/controllers/**/*.rb' + Layout/BlockEndNewline: Enabled: true @@ -135,68 +145,65 @@ Layout/CaseIndentation: Layout/ClassStructure: Enabled: true - Categories: - accessors: - - 'cattr_accessor' - - 'cattr_reader' - - 'cattr_writer' - - 'attr_accessor' - - 'attr_reader' - - 'attr_writer' - associations: - - 'has_and_belongs_to_many' - - 'belongs_to' - - 'has_one' - - 'has_many' - callbacks: - - 'before_validation' - - 'after_validation' - - 'before_save' - - 'before_create' - - 'after_create' - - 'after_save' - - 'after_commit' - delegations: - - 'delegate' - module_inclusions: - - 'prepend' - - 'include' - - 'extend' - scopes: - - 'default_scope' - - 'scope' - serializations: - - 'serialize' - validations: - - 'validate' - - 'validates' ExpectedOrder: - - 'module_inclusion' - - 'constants' - - 'accessors' - - 'delegations' - - 'serializations' - - 'associations' - - 'validations' - - 'callbacks' - - 'scopes' - - 'public_class_methods' - - 'initializer' - - 'public_methods' - - 'protected_methods' - - 'private_methods' + - 'prepend' + - 'include' + - 'extend' + - 'constants' + - 'cattr_accessor' + - 'cattr_reader' + - 'cattr_writer' + - 'attr_accessor' + - 'attr_reader' + - 'attr_writer' + - 'delegate' + - 'serialize' + - 'belongs_to' + - 'has_one' + - 'has_many' + - 'has_and_belongs_to_many' + - 'default_scope' + - 'scope' + - 'validates' + - 'validate' + - 'before_validation' + - 'after_validation' + - 'before_save' + - 'before_create' + - 'after_create' + - 'after_save' + - 'after_commit' + - 'accepts_nested_attributes_for' + - 'friendly_id' + - 'geocoded_by' + - 'has_attached_file' + - 'public_class_methods' + - 'initializer' + - 'public_methods' + - 'protected_methods' + - 'private_methods' + +Layout/ClosingHeredocIndentation: + Enabled: true Layout/ClosingParenthesisIndentation: - Enabled: false # Disallows Alignment with Opening Paren: my_method( - # foo, - # bar, - # ) + Enabled: true + Exclude: + - '**/spec/**/*_spec.rb' Layout/CommentIndentation: Enabled: true Exclude: - '**/config/initializers/middleware.rb' +Layout/ConditionPosition: + Enabled: true + +Layout/DefEndAlignment: + Enabled: true + EnforcedStyleAlignWith: 'start_of_line' + AutoCorrect: true + Layout/DotPosition: Enabled: true EnforcedStyle: 'leading' @@ -204,6 +211,14 @@ Layout/DotPosition: Layout/ElseAlignment: Enabled: true +Layout/EmptyComment: + Enabled: true + AllowBorderComment: true + AllowMarginComment: true + +Layout/EmptyLineAfterGuardClause: + Enabled: true + Layout/EmptyLineAfterMagicComment: Enabled: true @@ -245,6 +260,11 @@ Layout/EmptyLinesAroundModuleBody: Layout/EmptyLines: Enabled: true +Layout/EndAlignment: + Enabled: true + EnforcedStyleAlignWith: 'keyword' + AutoCorrect: true + Layout/EndOfLine: Enabled: true EnforcedStyle: 'lf' @@ -273,12 +293,11 @@ Layout/FirstMethodParameterLineBreak: # bar) Layout/FirstParameterIndentation: - Enabled: false # Disallows: my_method( - # foo, - # bar, - # ) - EnforcedStyle: 'consistent' + Enabled: true + EnforcedStyle: 'consistent_relative_to_receiver' IndentationWidth: ~ + Exclude: + - '**/spec/**/*_spec.rb' Layout/IndentationConsistency: Enabled: true @@ -311,6 +330,9 @@ Layout/IndentHeredoc: Layout/InitialIndentation: Enabled: true +Layout/LeadingBlankLines: + Enabled: true + Layout/LeadingCommentSpace: Enabled: true @@ -408,6 +430,7 @@ Layout/SpaceInLambdaLiteral: Layout/SpaceInsideArrayLiteralBrackets: Enabled: true EnforcedStyle: 'no_space' + EnforcedStyleForEmptyBrackets: 'no_space' Layout/SpaceInsideArrayPercentLiteral: Enabled: true @@ -435,6 +458,7 @@ Layout/SpaceInsideRangeLiteral: Layout/SpaceInsideReferenceBrackets: Enabled: true EnforcedStyle: 'no_space' + EnforcedStyleForEmptyBrackets: 'no_space' Layout/SpaceInsideStringInterpolation: Enabled: true @@ -458,7 +482,7 @@ Lint/AmbiguousBlockAssociation: Enabled: true Exclude: - '**/app/models/**/*.rb' - - '**/spec/**/*.rb' + - '**/spec/**/*_spec.rb' Lint/AmbiguousOperator: Enabled: true @@ -470,10 +494,8 @@ Lint/AssignmentInCondition: Enabled: true AllowSafeAssignment: true -Lint/BlockAlignment: +Lint/BigDecimalNew: Enabled: true - Exclude: - - 'app/controllers/**/*.rb' Lint/BooleanSymbol: Enabled: true @@ -481,17 +503,9 @@ Lint/BooleanSymbol: Lint/CircularArgumentReference: Enabled: true -Lint/ConditionPosition: - Enabled: true - Lint/Debugger: Enabled: true -Lint/DefEndAlignment: - Enabled: true - EnforcedStyleAlignWith: 'start_of_line' - AutoCorrect: true - Lint/DeprecatedClassMethods: Enabled: true @@ -516,17 +530,15 @@ Lint/EmptyInterpolation: Lint/EmptyWhen: Enabled: true -Lint/EndAlignment: - Enabled: true - EnforcedStyleAlignWith: 'keyword' - AutoCorrect: true - Lint/EndInMethod: Enabled: true Lint/EnsureReturn: Enabled: true +Lint/ErbNewArguments: + Enabled: true + Lint/FloatOutOfRange: Enabled: true @@ -567,6 +579,9 @@ Lint/NestedMethodDefinition: Lint/NonLocalExitFromIterator: Enabled: true +Lint/OrderedMagicComments: + Enabled: true + Lint/ParenthesesAsGroupedExpression: Enabled: true @@ -600,8 +615,12 @@ Lint/SafeNavigationChain: - 'present?' - 'blank?' - 'presence' + - 'try!' - 'try' +Lint/SafeNavigationConsistency: + Enabled: true + Lint/ScriptPermission: Enabled: true @@ -624,7 +643,10 @@ Lint/UnderscorePrefixedVariableName: Lint/UnifiedInteger: Enabled: true -Lint/UnneededDisable: +Lint/UnneededCopDisableDirective: + Enabled: true + +Lint/UnneededCopEnableDirective: Enabled: true Lint/UnneededRequireStatement: @@ -677,34 +699,43 @@ Lint/Void: Metrics/AbcSize: Enabled: true Max: 25.0 + Exclude: + - '**/db/sample.rb' Metrics/BlockNesting: Enabled: true CountBlocks: true Max: 3 Exclude: - - 'Rakefile' - - '**/config/routes.rb' - '**/*.rake' - - '**/spec/factories.rb' - - '**/spec/**/factories/*.rb' + - '**/config/routes.rb' + - '**/db/sample.rb' + - '**/refinements/*.rb' - '**/spec/**/*_spec.rb' + - '**/spec/**/factories/*.rb' + - '**/spec/factories.rb' + - 'Rakefile' Metrics/BlockLength: CountComments: false Max: 25 Exclude: - - 'Rakefile' - '**/*.rake' - '**/config/routes.rb' + - '**/db/sample.rb' + - '**/db/scrub.rb' + - '**/db/seed.rb' + - '**/refinements/*.rb' - '**/spec/**/*_spec.rb' - '**/spec/**/factories/*.rb' - '**/spec/factories.rb' + - 'Rakefile' ExcludedMethods: - 'namespace' - 'draw' - 'context' - 'describe' + - 'refine' - 'shared_examples' - 'shared_examples_for' @@ -743,6 +774,7 @@ Metrics/LineLength: - '^\s+has_many\s+.*' # Rails has_many relationships - '^\s+has_one\s+.*' # Rails has_one relationships - '^\s+belongs_to\s+.*' # Rails belongs_to relationships + - '^\s+scope\s+.*' # Rails scopes - '^\s+let\(:[\w_]+\)\s+\{.*' # RSpec lets on single line - '^\s+it\s+.*' # RSpec it lines - '^\s+describe\s+.*' # RSpec describe lines @@ -758,14 +790,22 @@ Metrics/LineLength: - 'https' Exclude: - '**/Gemfile' - - '**/config/routes.rb' - '**/config/environments/**/*' - '**/config/initializers/**/*' + - '**/config/routes.rb' + - '**/db/sample.rb' + - '**/db/scrub.rb' + - '**/db/seed.rb' + - '**/factories/*.rb' Metrics/MethodLength: Enabled: true CountComments: false Max: 30 + Exclude: + - '**/db/sample.rb' + - '**/db/scrub.rb' + - '**/db/seed.rb' Metrics/ParameterLists: Enabled: true @@ -817,6 +857,10 @@ Naming/HeredocDelimiterCase: Enabled: true EnforcedStyle: 'uppercase' +Naming/MemoizedInstanceVariableName: + Enabled: true + EnforcedStyleForLeadingUnderscores: 'disallowed' + Naming/MethodName: Enabled: true EnforcedStyle: 'snake_case' @@ -838,7 +882,28 @@ Naming/PredicateName: - 'define_method' - 'define_singleton_method' Exclude: - - 'spec/**/*' + - '**/spec/**/*.rb' + +Naming/UncommunicativeBlockParamName: + Enabled: true + MinNameLength: 1 + AllowNamesEndingInNumbers: true + AllowedNames: [] + ForbiddenNames: [] + +Naming/UncommunicativeMethodParamName: + Enabled: true + MinNameLength: 3 + AllowNamesEndingInNumbers: true + AllowedNames: + - 'at' + - 'by' + - 'id' + - 'in' + - 'io' + - 'on' + - 'to' + ForbiddenNames: [] Naming/VariableName: Enabled: true @@ -883,9 +948,8 @@ Performance/FixedSize: Performance/FlatMap: Enabled: true -Performance/HashEachMethods: +Performance/InefficientHashSearch: Enabled: true - AutoCorrect: true Performance/LstripRstrip: Enabled: true @@ -930,6 +994,9 @@ Performance/TimesMap: Performance/UnfreezeString: Enabled: true +Performance/UnneededSort: + Enabled: true + Performance/UriDefaultParser: Enabled: true @@ -945,6 +1012,9 @@ Security/JSONLoad: Exclude: - '**/spec/**/*.rb' +Security/Open: + Enabled: true + Security/YAMLLoad: Enabled: true Exclude: @@ -959,6 +1029,10 @@ Security/MarshalLoad: # STYLE ################################################################################ +Style/AccessModifierDeclarations: + Enabled: true + EnforcedStyle: 'group' + Style/Alias: Enabled: true EnforcedStyle: 'prefer_alias' @@ -994,6 +1068,8 @@ Style/BlockDelimiters: Enabled: true EnforcedStyle: 'braces_for_chaining' Exclude: + - '**/spec/factories.rb' + - '**/spec/factories/**/*.rb' - 'app/controllers/**/*.rb' Style/BracesAroundHashParameters: @@ -1110,6 +1186,9 @@ Style/Encoding: Style/EndBlock: Enabled: true +Style/ExpandPathArguments: + Enabled: true + Style/EvalWithLocation: Enabled: true @@ -1193,6 +1272,15 @@ Style/InverseMethods: :select: :reject :select!: :reject! +Style/IpAddresses: + Enabled: true + Whitelist: + - '::' + Exclude: + - '**/spec/**/*_spec.rb' + - '**/spec/factories.rb' + - '**/spec/factories/**/*.rb' + Style/Lambda: Enabled: true @@ -1214,11 +1302,15 @@ Style/MethodCallWithArgsParentheses: Style/MethodCallWithoutArgsParentheses: Enabled: true + IgnoredMethods: [] Style/MethodDefParentheses: Enabled: true EnforcedStyle: 'require_parentheses' +Style/MethodMissingSuper: + Enabled: true + Style/MinMax: Enabled: true @@ -1230,6 +1322,9 @@ Style/MissingElse: - 'case' - 'both' +Style/MissingRespondToMissing: + Enabled: true + Style/MixinGrouping: Enabled: true EnforcedStyle: 'separated' @@ -1357,6 +1452,7 @@ Style/ParallelAssignment: Style/ParenthesesAroundCondition: Enabled: true AllowSafeAssignment: true + AllowInMultilineConditions: false Style/PercentLiteralDelimiters: Enabled: true @@ -1433,6 +1529,12 @@ Style/ReturnNil: Style/SafeNavigation: Enabled: true ConvertCodeThatCanStartToReturnNil: false + Whitelist: + - 'blank?' + - 'presence' + - 'present?' + - 'try!' + - 'try' Style/SelfAssignment: Enabled: true @@ -1513,14 +1615,24 @@ Style/TernaryParentheses: AllowSafeAssignment: true EnforcedStyle: 'require_parentheses_when_complex' +Style/TrailingBodyOnClass: + Enabled: true + Style/TrailingBodyOnMethodDefinition: Enabled: true +Style/TrailingBodyOnModule: + Enabled: true + Style/TrailingCommaInArguments: Enabled: true EnforcedStyleForMultiline: 'comma' -Style/TrailingCommaInLiteral: +Style/TrailingCommaInArrayLiteral: + Enabled: true + EnforcedStyleForMultiline: 'comma' + +Style/TrailingCommaInHashLiteral: Enabled: true EnforcedStyleForMultiline: 'comma' @@ -1541,12 +1653,18 @@ Style/UnlessElse: Style/UnneededCapitalW: Enabled: true +Style/UnneededCondition: + Enabled: true + Style/UnneededInterpolation: Enabled: true Style/UnneededPercentQ: Enabled: true +Style/UnpackFirst: + Enabled: true + Style/VariableInterpolation: Enabled: true diff --git a/.rubocop_rspec.yml b/.rubocop_rspec.yml index d491999..3fef610 100644 --- a/.rubocop_rspec.yml +++ b/.rubocop_rspec.yml @@ -1,42 +1,130 @@ -# Last updated to 1.10 +# Last updated to 1.27.0 require: - 'rubocop-rspec' +Capybara/FeatureMethods: + Enabled: true + +Capybara/CurrentPathExpectation: + Enabled: true + +FactoryBot/CreateList: + Enabled: true + +FactoryBot/DynamicAttributeDefinedStatically: + Enabled: true + +FactoryBot/StaticAttributeDefinedDynamically: + Enabled: false + +Rails/HttpStatus: + Enabled: true + EnforcedStyle: 'numeric' + +RSpec/AlignLeftLetBrace: + Enabled: true + +RSpec/AlignRightLetBrace: + Enabled: false + RSpec/AnyInstance: Enabled: true +RSpec/AroundBlock: + Enabled: true + +RSpec/Be: + Enabled: true + RSpec/BeEql: Enabled: true +RSpec/BeforeAfterAll: + Enabled: true + Exclude: + - 'spec/spec_helper.rb' + - 'spec/rails_helper.rb' + - 'spec/support/**/*.rb' + +RSpec/ContextWording: + Enabled: true + Prefixes: + - 'administrators' + - 'anyone' + - 'regular users' + - 'when' + - 'with' + - 'without' + RSpec/DescribeClass: Enabled: true +RSpec/DescribedClass: + Enabled: true + EnforcedStyle: 'described_class' + SkipBlocks: false + RSpec/DescribeMethod: Enabled: true +RSpec/DescribeSymbol: + Enabled: true + RSpec/DescribedClass: - Enabled: false + Enabled: true + SkipBlocks: false + EnforcedStyle: 'explicit' RSpec/EmptyExampleGroup: Enabled: false CustomIncludeMethods: [] +RSpec/EmptyLineAfterExampleGroup: + Enabled: true + +RSpec/EmptyLineAfterFinalLet: + Enabled: true + +RSpec/EmptyLineAfterHook: + Enabled: true + +RSpec/EmptyLineAfterSubject: + Enabled: true + RSpec/ExampleLength: + Enabled: false + Max: 50 + +RSpec/ExampleWithoutDescription: Enabled: true - Max: 30 + EnforcedStyle: 'single_line_only' RSpec/ExampleWording: Enabled: true + IgnoredWords: [] RSpec/ExpectActual: Enabled: true + Exclude: + - 'spec/routing/**/*' + +RSpec/ExpectChange: + Enabled: true + EnforcedStyle: 'method_call' + +RSpec/ExpectInHook: + Enabled: true RSpec/ExpectOutput: Enabled: true RSpec/FilePath: Enabled: false + IgnoreMethods: false + CustomTransform: + RuboCop: 'rubocop' + RSpec: 'rspec' RSpec/Focus: Enabled: true @@ -49,12 +137,28 @@ RSpec/ImplicitExpect: Enabled: true EnforcedStyle: 'is_expected' +RSpec/InstanceSpy: + Enabled: true + RSpec/InstanceVariable: Enabled: true +RSpec/InvalidPredicateMatcher: + Enabled: true + +RSpec/ItBehavesLike: + Enabled: true + EnforcedStyle: 'it_behaves_like' + +RSpec/IteratedExpectation: + Enabled: true + RSpec/LeadingSubject: Enabled: true +RSpec/LetBeforeExamples: + Enabled: true + RSpec/LetSetup: Enabled: true @@ -74,8 +178,12 @@ RSpec/MultipleDescribes: RSpec/MultipleExpectations: Enabled: false + AggregateFailuresByDefault: true Max: 5 +RSpec/MultipleSubjects: + Enabled: true + RSpec/NamedSubject: Enabled: true @@ -87,15 +195,42 @@ RSpec/NotToNot: Enabled: true EnforcedStyle: 'not_to' +RSpec/OverwritingSetup: + Enabled: true + +RSpec/Pending: + Enabled: false + +RSpec/PredicateMatcher: + Enabled: true + Strict: true + EnforcedStyle: 'inflected' + +RSpec/ReceiveCounts: + Enabled: true + RSpec/RepeatedDescription: Enabled: true RSpec/RepeatedExample: Enabled: true +RSpec/ReturnFromStub: + Enabled: true + EnforcedStyle: 'and_return' + +RSpec/ScatteredLet: + Enabled: true + RSpec/ScatteredSetup: Enabled: true +RSpec/SharedContext: + Enabled: true + +RSpec/SharedExamples: + Enabled: true + RSpec/SingleArgumentMessageChain: Enabled: true @@ -104,3 +239,7 @@ RSpec/SubjectStub: RSpec/VerifiedDoubles: Enabled: true + IgnoreSymbolicNames: false + +RSpec/VoidExpect: + Enabled: true diff --git a/.ruby-version b/.ruby-version index 35cee72..73462a5 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -2.4.3 +2.5.1