require: rubocop-performance

Layout/ArgumentAlignment:
  EnforcedStyle: with_fixed_indentation

Layout/ParameterAlignment:
  EnforcedStyle: with_fixed_indentation

Layout/FirstArrayElementIndentation:
  EnforcedStyle: consistent

Layout/MultilineMethodCallIndentation:
  EnforcedStyle: indented

Metrics/BlockLength:
  Exclude:
    - 'spec/**/*'

Layout/LineLength:
  Max: 100
  Severity: refactor

Metrics/ModuleLength:
  Exclude:
    - 'spec/**/*'

Style/ConditionalAssignment:
  EnforcedStyle: assign_inside_condition
  IncludeTernaryExpressions: false

Style/Documentation:
  Enabled: false

Style/EmptyMethod:
  EnforcedStyle: expanded

Style/FrozenStringLiteralComment:
  Enabled: false

Style/GuardClause:
  Enabled: false

Style/IfUnlessModifier:
  Enabled: false

Style/ParenthesesAroundCondition:
  Enabled: false

Style/StringLiterals:
  EnforcedStyle: double_quotes
  Exclude:
    - 'Gemfile'

Style/SymbolArray:
  EnforcedStyle: brackets

Style/TrailingCommaInArguments:
  EnforcedStyleForMultiline: comma

Style/TrailingCommaInArrayLiteral:
  EnforcedStyleForMultiline: comma

Style/TrailingCommaInHashLiteral:
  EnforcedStyleForMultiline: comma

require: rubocop-performance

Layout/ArgumentAlignment:
  EnforcedStyle: with_fixed_indentation

Layout/ParameterAlignment:
  EnforcedStyle: with_fixed_indentation

Layout/FirstArrayElementIndentation:
  EnforcedStyle: consistent

Layout/MultilineMethodCallIndentation:
  EnforcedStyle: indented

Metrics/BlockLength:
  Exclude:
    - 'spec/**/*'

Layout/LineLength:
  Max: 100
  Severity: refactor

Metrics/ModuleLength:
  Exclude:
    - 'spec/**/*'

Style/ConditionalAssignment:
  EnforcedStyle: assign_inside_condition
  IncludeTernaryExpressions: false

Style/Documentation:
  Enabled: false

Style/EmptyMethod:
  EnforcedStyle: expanded

Style/FrozenStringLiteralComment:
  Enabled: false

Style/GuardClause:
  Enabled: false

Style/IfUnlessModifier:
  Enabled: false

Style/ParenthesesAroundCondition:
  Enabled: false

Style/StringLiterals:
  EnforcedStyle: double_quotes
  Exclude:
    - 'Gemfile'

Style/SymbolArray:
  EnforcedStyle: brackets

Style/TrailingCommaInArguments:
  EnforcedStyleForMultiline: comma

Style/TrailingCommaInArrayLiteral:
  EnforcedStyleForMultiline: comma

Style/TrailingCommaInHashLiteral:
  EnforcedStyleForMultiline: comma

# ---------------------------------------------------
# PENDING COPS: REMOVE AFTER INCORPORATED INTO RUBOCOP
# ---------------------------------------------------

Style/HashEachMethods:
  Enabled: true

Style/HashTransformKeys:
  Enabled: true

Style/HashTransformValues:
  Enabled: true

Enable pending cops from 0.80 update
Enable pending cops from 0.80 update

This change resolves issue #48 by enabling the following cops:

Style/HashEachMethods

```
bad:
hash.keys.each { |k| p k }
hash.values.each { |v| p v }

good:
hash.each_key { |k| p k }
hash.each_value { |v| p v }
```

Style/HashTransformKeys

```
bad:
{a: 1, b: 2}.each_with_object({}) { |(k, v), h| h[foo(k)] = v }
{a: 1, b: 2}.map { |k, v| [k.to_s, v] }

good:
{a: 1, b: 2}.transform_keys { |k| foo(k) }
{a: 1, b: 2}.transform_keys { |k| k.to_s }
```

Style/HashTransformValues

```
bad:
{a: 1, b: 2}.each_with_object({}) { |(k, v), h| h[k] = foo(v) }
{a: 1, b: 2}.map { |k, v| [k, v * v] }

good:
{a: 1, b: 2}.transform_values { |v| foo(v) }
{a: 1, b: 2}.transform_values { |v| v * v }
```
