# This list was created by analyzing the last three months (51 modules) # committed to Metasploit Framework. Many, many older modules will have # offenses, but this should at least provide a baseline for new modules. # # Updates to this file should include a 'Description' parameter for # any explaination needed. inherit_from: .rubocop_todo.yml Style/ClassLength: Description: 'Most Metasploit modules are quite large. This is ok.' Enabled: true Exclude: - 'modules/**/*' Style/Documentation: Enabled: true Description: 'Most Metasploit modules do not have class documentation.' Exclude: - 'modules/**/*' Style/Encoding: Enabled: true Description: 'We prefer binary to UTF-8.' EnforcedStyle: 'when_needed' Style/LineLength: Description: >- Metasploit modules often pattern match against very long strings when identifying targets. Enabled: true Max: 180 Style/MethodLength: Enabled: true Description: >- While the style guide suggests 10 lines, exploit definitions often exceed 200 lines. Max: 300 Style/NumericLiterals: Enabled: false Description: 'This often hurts readability for exploit-ish code.' Style/PercentLiteralDelimiters: Enabled: false Description: >- Metasploit devs tend to prefer [] over %w() for nearly all cases, since we often deal with funny looking arrays of nonwords. Consistency here is preferred over element type safety. Style/WordArray: Enabled: false Description: >- Metasploit devs have grown comforatble with curly braces over parens for %w. Disabling this check prefers consistency.