# This is the default configuration file. Enabling and disabling is configured # in separate files. This file adds all other parameters apart from Enabled. inherit_from: - enabled.yml - disabled.yml # Common configuration. AllCops: # Include gemspec and Rakefile Includes: - '**/*.gemspec' - '**/Rakefile' Excludes: [] # By default, the rails cops are not run. Override in project or home # directory .rubocop.yml files, or by giving the -R/--rails option. RunRailsCops: false # Indent private/protected/public as deep as method definitions AccessModifierIndentation: EnforcedStyle: indent SupportedStyles: - outdent - indent # Align the elements of a hash literal if they span more than one line. AlignHash: # Alignment of entries using hash rocket as separator. Valid values are: # # key - left alignment of keys # 'a' => 2 # 'bb' => 3 # separator - alignment of hash rockets, keys are right aligned # 'a' => 2 # 'bb' => 3 # table - left alignment of keys, hash rockets, and values # 'a' => 2 # 'bb' => 3 EnforcedHashRocketStyle: key # Alignment of entries using colon as separator. Valid values are: # # key - left alignment of keys # a: 0 # bb: 1 # separator - alignment of colons, keys are right aligned # a: 0 # bb: 1 # table - left alignment of keys and values # a: 0 # bb: 1 EnforcedColonStyle: key # Allow safe assignment in conditions. AssignmentInCondition: AllowSafeAssignment: true BlockNesting: Max: 3 BracesAroundHashParameters: EnforcedStyle: no_braces SupportedStyles: - braces - no_braces # Indentation of `when`. CaseIndentation: # Valid values are: case, end IndentWhenRelativeTo: case IndentOneStep: false ClassLength: CountComments: false # count full line comments? Max: 100 # Align with the style guide. CollectionMethods: PreferredMethods: collect: 'map' collect!: 'map!' inject: 'reduce' detect: 'find' find_all: 'select' # Checks formatting of special comments CommentAnnotation: Keywords: - TODO - FIXME - OPTIMIZE - HACK - REVIEW # Avoid complex methods. CyclomaticComplexity: Max: 6 # Multi-line method chaining should be done with leading dots. DotPosition: Style: 'leading' # Use empty lines between defs. EmptyLineBetweenDefs: # If true, this parameter means that single line method definitions don't # need an empty line between them. AllowAdjacentOneLineDefs: false # Align ends correctly. EndAlignment: # Valid valued are: keyword, variable # The value `keyword` means that `end` should be aligned with the matching # keyword (if, while, etc.). # The value `variable` means that in assignments, `end` should be aligned # with the start of the variable on the left hand side of `=`. In all other # situations, `end` should still be aligned with the keyword. AlignWith: keyword # Checks use of for or each in multiline loops. For: EnforcedStyle: each SupportedStyles: - for - each # Built-in global variables are allowed by default. GlobalVars: AllowedVariables: [] HashSyntax: EnforcedStyle: ruby19 SupportedStyles: - ruby19 - hash_rockets LambdaCall: EnforcedStyle: call SupportedStyles: - call - braces LineLength: Max: 79 MethodDefParentheses: EnforcedStyle: require_parentheses SupportedStyles: - require_parentheses - require_no_parentheses MethodLength: CountComments: false # count full line comments? Max: 10 MethodName: EnforcedStyle: snake_case SupportedStyles: - snake_case - camelCase NumericLiterals: MinDigits: 5 Output: Ignore: - '^.*\.rake$' - '^.*/script/.*$' - '^.*/tasks/.*$' - 'Rakefile$' ParameterLists: Max: 5 CountKeywordArgs: true # Allow safe assignment in conditions. ParenthesesAroundCondition: AllowSafeAssignment: true PredicateName: NamePrefixBlacklist: - is_ - has_ - have_ RaiseArgs: EnforcedStyle: exploded SupportedStyles: - compact # raise Exception.new(msg) - exploded # raise Exception, msg RedundantReturn: # When true allows code like `return x, y`. AllowMultipleReturnValues: false RegexpLiteral: MaxSlashes: 1 Semicolon: # Allow ; to separate several expressions on the same line. AllowAsExpressionSeparator: false SignalException: EnforcedStyle: semantic SupportedStyles: - only_raise - only_fail - semantic SingleLineBlockParams: Methods: - reduce: - a - e - inject: - a - e SingleLineMethods: AllowIfMethodIsEmpty: true StringLiterals: EnforcedStyle: single_quotes SupportedStyles: - single_quotes - double_quotes SpaceAroundBlockBraces: EnforcedStyle: space_inside_braces SupportedStyles: - space_inside_braces - no_space_inside_braces # Valid values are: space, no_space EnforcedStyleForEmptyBraces: no_space # Space between { and |. Overrides EnforcedStyle if there is a conflict. SpaceBeforeBlockParameters: true SpaceInsideHashLiteralBraces: EnforcedStyle: space EnforcedStyleForEmptyBraces: no_space SupportedStyles: - space - no_space # TrivialAccessors doesn't require exact name matches and doesn't allow # predicated methods by default. TrivialAccessors: ExactNameMatch: false AllowPredicates: false Whitelist: - to_ary - to_a - to_c - to_enum - to_h - to_hash - to_i - to_int - to_io - to_open - to_path - to_proc - to_r - to_regexp - to_str - to_s - to_sym VariableName: EnforcedStyle: snake_case SupportedStyles: - snake_case - camelCase WordArray: MinSize: 0 ##################### Rails ################################## DefaultScope: IncludePaths: - app/models HasAndBelongsToMany: IncludePaths: - app/models ReadAttribute: IncludePaths: - app/models Validation: IncludePaths: - app/models