AllCops:
  NewCops: enable
  Exclude:
    - vendor/**/*
    - bin/**/*

Metrics/MethodLength:
  CountComments: false  # count full line comments?
  Enabled: false

Metrics/ClassLength:
  Enabled: true
  Exclude:
    - lib/vagrant-zones/driver*

Naming/MethodName:
  EnforcedStyle: snake_case

Naming/FileName:
  Exclude:
    - 'lib/vagrant-zones.rb'
    
Naming/AccessorMethodName:
  Description: Check the naming of accessor methods for get_/set_.
  Enabled: false

Style/Encoding:
  Description: 'Use UTF-8 as the source file encoding.'
  Enabled: true

Style/HashSyntax:
  Description: >-
                 Prefer Ruby 1.9 hash syntax { a: 1, b: 2 } over 1.8 syntax
                 { :a => 1, :b => 2 }.
  Enabled: false
  EnforcedStyle: hash_rockets

Style/LineEndConcatenation:
  Description: 'Use \\ instead of + to concatenate two string literals at line end.'
  Enabled: true
  AutoCorrect: true

Layout/LineLength:
  Description: 'Limit lines to 139 characters.'
  Enabled: true
  Max: 200

Metrics/CyclomaticComplexity:
  Description: 'Avoid complex methods.'
  Enabled: false

Metrics/BlockLength:
 Description: 'Limit Block to 139 Characters'
 Max: 139

Metrics/ModuleLength:
 Description: 'Limit Block to 150 Characters'
 Max: 165

Metrics/AbcSize:
  Description: >-
                 A calculated magnitude based on number of assignments,
                 branches, and conditions.
  Reference: 'http://c2.com/cgi/wiki?AbcMetric'
  Enabled: true
  VersionAdded: '0.27'
  # The ABC size is a calculated magnitude, so this number can be an Integer or
  # a Float.
  Max: 90

Metrics/PerceivedComplexity:
  Description: >-
                 A complexity metric geared towards measuring complexity for a
                 human reader.
  Enabled: true
  VersionAdded: '0.25'
  Max: 30

Style/RedundantReturn:
  Description: >-
                 ensure there are no redudant returns
  Enabled: true
  AutoCorrect: true

Style/SpecialGlobalVars:
  Description: >-
                 Set Special Global vars
  Enabled: true
  AutoCorrect: true

Style/RedundantInterpolation:
  Description: >-
                 Check for redudant interpolation
  Enabled: true
  AutoCorrect: true

Style/StringConcatenation:
  Description: >-
                 Prefer to use String contactenation
  Enabled: true
  AutoCorrect: true

Style/IfUnlessModifier:
  Description: >-
                 Used to check If/Unless should be used
  Enabled: true
  AutoCorrect: true

Layout/EmptyLineAfterGuardClause:
  Description: >-
                 Empty line to show where clauses are
  Enabled: true
  AutoCorrect: true

Style/CaseLikeIf:
  Description: >-
                 If if unles case styling
  Enabled: true
  AutoCorrect: true

Layout/CaseIndentation:
  Description: >-
                 Enusures cases are Indented properly
  Enabled: true
  AutoCorrect: true

Layout/TrailingWhitespace:
  Description: >-
                 Enusures cases are Indented properly
  Enabled: true
  AutoCorrect: true

Layout/EmptyLinesAroundBlockBody:
  Description: >-
                 Enusures cases are Indented properly
  Enabled: true
  AutoCorrect: true

Layout/ElseAlignment:
  Description: >-
                 Enusures cases are Indented properly 
  Enabled: true
  AutoCorrect: true