# This configuration was generated by
# `rubocop --auto-gen-config`
# on 2017-09-04 17:00:36 +0200 using RuboCop version 0.49.1.
# The point is for the user to remove these configuration records
# one by one as the offenses are removed from the code base.
# Note that changes in the inspected code, or installation of new
# versions of RuboCop, may require this file to be generated again.

# Offense count: 3
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles, IndentOneStep, IndentationWidth.
# SupportedStyles: case, end
Layout/CaseIndentation:
  Exclude:
    - 'tools/platform_check.rb'

# Offense count: 1
# Cop supports --auto-correct.
Layout/CommentIndentation:
  Exclude:
    - 'qps/client.rb'

# Offense count: 1
# Cop supports --auto-correct.
Layout/EmptyLineAfterMagicComment:
  Exclude:
    - 'tools/grpc-tools.gemspec'

# Offense count: 33
# Cop supports --auto-correct.
# Configuration parameters: AllowAdjacentOneLineDefs, NumberOfEmptyLines.
Layout/EmptyLineBetweenDefs:
  Exclude:
    - 'qps/client.rb'
    - 'qps/histogram.rb'
    - 'qps/proxy-worker.rb'
    - 'qps/server.rb'
    - 'qps/worker.rb'

# Offense count: 1
# Cop supports --auto-correct.
Layout/EmptyLines:
  Exclude:
    - 'qps/qps-common.rb'

# Offense count: 8
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles.
# SupportedStyles: empty_lines, empty_lines_except_namespace, empty_lines_special, no_empty_lines
Layout/EmptyLinesAroundClassBody:
  Exclude:
    - 'pb/grpc/testing/duplicate/echo_duplicate_services_pb.rb'
    - 'pb/grpc/testing/metrics_services_pb.rb'
    - 'pb/src/proto/grpc/testing/test_services_pb.rb'
    - 'qps/src/proto/grpc/testing/proxy-service_services_pb.rb'
    - 'qps/src/proto/grpc/testing/services_services_pb.rb'

# Offense count: 28
# Cop supports --auto-correct.
# Configuration parameters: AllowForAlignment, ForceEqualSignAlignment.
Layout/ExtraSpacing:
  Enabled: false

# Offense count: 1
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles.
# SupportedStyles: normal, rails
Layout/IndentationConsistency:
  Exclude:
    - 'pb/grpc/health/checker.rb'

# Offense count: 1
# Cop supports --auto-correct.
# Configuration parameters: Width, IgnoredPatterns.
Layout/IndentationWidth:
  Exclude:
    - 'pb/grpc/health/checker.rb'

# Offense count: 1
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles.
# SupportedStyles: symmetrical, new_line, same_line
Layout/MultilineHashBraceLayout:
  Exclude:
    - 'spec/generic/active_call_spec.rb'

# Offense count: 70
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles.
# SupportedStyles: symmetrical, new_line, same_line
Layout/MultilineMethodCallBraceLayout:
  Enabled: false

# Offense count: 2
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles, IndentationWidth.
# SupportedStyles: aligned, indented, indented_relative_to_receiver
Layout/MultilineMethodCallIndentation:
  Exclude:
    - 'spec/generic/rpc_desc_spec.rb'

# Offense count: 1
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles.
# SupportedStyles: symmetrical, new_line, same_line
Layout/MultilineMethodDefinitionBraceLayout:
  Exclude:
    - 'spec/generic/client_stub_spec.rb'

# Offense count: 5
# Cop supports --auto-correct.
Layout/SpaceAfterColon:
  Exclude:
    - 'lib/grpc/generic/rpc_server.rb'

# Offense count: 7
# Cop supports --auto-correct.
Layout/SpaceAfterComma:
  Exclude:
    - 'qps/client.rb'

# Offense count: 27
# Cop supports --auto-correct.
# Configuration parameters: AllowForAlignment.
Layout/SpaceAroundOperators:
  Exclude:
    - 'qps/client.rb'
    - 'qps/histogram.rb'
    - 'qps/proxy-worker.rb'
    - 'qps/server.rb'
    - 'spec/generic/active_call_spec.rb'
    - 'spec/generic/rpc_server_spec.rb'

# Offense count: 1
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles, EnforcedStyleForEmptyBraces, SupportedStylesForEmptyBraces, SpaceBeforeBlockParameters.
# SupportedStyles: space, no_space
# SupportedStylesForEmptyBraces: space, no_space
Layout/SpaceInsideBlockBraces:
  Exclude:
    - 'stress/stress_client.rb'

# Offense count: 4
# Cop supports --auto-correct.
Layout/SpaceInsideBrackets:
  Exclude:
    - 'tools/bin/grpc_tools_ruby_protoc'
    - 'tools/bin/grpc_tools_ruby_protoc_plugin'

# Offense count: 2
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles, EnforcedStyleForEmptyBraces, SupportedStylesForEmptyBraces.
# SupportedStyles: space, no_space, compact
# SupportedStylesForEmptyBraces: space, no_space
Layout/SpaceInsideHashLiteralBraces:
  Exclude:
    - 'qps/server.rb'

# Offense count: 6
# Cop supports --auto-correct.
Layout/SpaceInsidePercentLiteralDelimiters:
  Exclude:
    - 'spec/generic/client_stub_spec.rb'
    - 'tools/grpc-tools.gemspec'

# Offense count: 3
# Cop supports --auto-correct.
Layout/Tab:
  Exclude:
    - 'pb/grpc/health/checker.rb'
    - 'qps/client.rb'

# Offense count: 1
# Cop supports --auto-correct.
Layout/TrailingWhitespace:
  Exclude:
    - 'qps/worker.rb'

# Offense count: 1
Lint/IneffectiveAccessModifier:
  Exclude:
    - 'lib/grpc/generic/active_call.rb'

# Offense count: 4
# Cop supports --auto-correct.
Lint/PercentStringArray:
  Exclude:
    - 'spec/client_server_spec.rb'
    - 'spec/generic/active_call_spec.rb'
    - 'spec/generic/client_stub_spec.rb'

# Offense count: 4
Lint/ScriptPermission:
  Exclude:
    - 'qps/client.rb'
    - 'qps/histogram.rb'
    - 'qps/qps-common.rb'
    - 'qps/server.rb'

# Offense count: 2
# Cop supports --auto-correct.
# Configuration parameters: IgnoreEmptyBlocks, AllowUnusedKeywordArguments.
Lint/UnusedBlockArgument:
  Exclude:
    - 'qps/client.rb'

# Offense count: 2
# Cop supports --auto-correct.
# Configuration parameters: AllowUnusedKeywordArguments, IgnoreEmptyMethods.
Lint/UnusedMethodArgument:
  Exclude:
    - 'qps/client.rb'

# Offense count: 1
# Configuration parameters: ContextCreatingMethods, MethodCreatingMethods.
Lint/UselessAccessModifier:
  Exclude:
    - 'lib/grpc/logconfig.rb'

# Offense count: 1
Lint/UselessAssignment:
  Exclude:
    - 'qps/client.rb'

# Offense count: 4
Lint/Void:
  Exclude:
    - 'stress/metrics_server.rb'
    - 'stress/stress_client.rb'

# Offense count: 53
Metrics/AbcSize:
  Max: 57

# Offense count: 81
# Configuration parameters: CountComments, ExcludedMethods.
Metrics/BlockLength:
  Max: 715

# Offense count: 82
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
# URISchemes: http, https
Metrics/LineLength:
  Max: 141

# Offense count: 82
# Configuration parameters: CountComments.
Metrics/MethodLength:
  Max: 54

# Offense count: 5
# Configuration parameters: CountKeywordArgs.
Metrics/ParameterLists:
  Max: 7

# Offense count: 1
# Cop supports --auto-correct.
Performance/RedundantBlockCall:
  Exclude:
    - 'spec/generic/client_stub_spec.rb'

# Offense count: 5
# Cop supports --auto-correct.
# Configuration parameters: MaxKeyValuePairs.
Performance/RedundantMerge:
  Exclude:
    - 'spec/generic/active_call_spec.rb'
    - 'spec/generic/client_stub_spec.rb'

# Offense count: 8
# Cop supports --auto-correct.
Performance/TimesMap:
  Exclude:
    - 'spec/channel_spec.rb'
    - 'spec/client_server_spec.rb'
    - 'spec/server_spec.rb'

# Offense count: 7
Style/AccessorMethodName:
  Exclude:
    - 'qps/server.rb'
    - 'stress/metrics_server.rb'
    - 'stress/stress_client.rb'

# Offense count: 2
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles.
# SupportedStyles: prefer_alias, prefer_alias_method
Style/Alias:
  Exclude:
    - 'lib/grpc/generic/rpc_server.rb'
    - 'lib/grpc/notifier.rb'

# Offense count: 7
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles, ProceduralMethods, FunctionalMethods, IgnoredMethods.
# SupportedStyles: line_count_based, semantic, braces_for_chaining
# ProceduralMethods: benchmark, bm, bmbm, create, each_with_object, measure, new, realtime, tap, with_object
# FunctionalMethods: let, let!, subject, watch
# IgnoredMethods: lambda, proc, it
Style/BlockDelimiters:
  Exclude:
    - 'qps/client.rb'
    - 'qps/proxy-worker.rb'
    - 'qps/server.rb'
    - 'qps/worker.rb'

# Offense count: 2
# Cop supports --auto-correct.
Style/ClassMethods:
  Exclude:
    - 'tools/platform_check.rb'

# Offense count: 2
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles, SingleLineConditionsOnly, IncludeTernaryExpressions.
# SupportedStyles: assign_to_condition, assign_inside_condition
Style/ConditionalAssignment:
  Exclude:
    - 'lib/grpc/generic/rpc_server.rb'
    - 'lib/grpc/generic/service.rb'

# Offense count: 19
Style/Documentation:
  Exclude:
    - 'spec/**/*'
    - 'test/**/*'
    - 'pb/grpc/testing/duplicate/echo_duplicate_services_pb.rb'
    - 'pb/grpc/testing/metrics_services_pb.rb'
    - 'pb/src/proto/grpc/testing/test_pb.rb'
    - 'qps/client.rb'
    - 'qps/histogram.rb'
    - 'qps/proxy-worker.rb'
    - 'qps/server.rb'
    - 'qps/src/proto/grpc/testing/proxy-service_services_pb.rb'
    - 'qps/src/proto/grpc/testing/services_pb.rb'
    - 'qps/src/proto/grpc/testing/services_services_pb.rb'
    - 'qps/worker.rb'
    - 'stress/metrics_server.rb'
    - 'stress/stress_client.rb'
    - 'tools/platform_check.rb'

# Offense count: 8
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles.
# SupportedStyles: compact, expanded
Style/EmptyMethod:
  Exclude:
    - 'bin/noproto_server.rb'
    - 'lib/grpc/logconfig.rb'
    - 'spec/generic/rpc_desc_spec.rb'

# Offense count: 2
# Configuration parameters: ExpectMatchingDefinition, Regex, IgnoreExecutableScripts, AllowedAcronyms.
# AllowedAcronyms: CLI, DSL, ACL, API, ASCII, CPU, CSS, DNS, EOF, GUID, HTML, HTTP, HTTPS, ID, IP, JSON, LHS, QPS, RAM, RHS, RPC, SLA, SMTP, SQL, SSH, TCP, TLS, TTL, UDP, UI, UID, UUID, URI, URL, UTF8, VM, XML, XMPP, XSRF, XSS
Style/FileName:
  Exclude:
    - 'qps/src/proto/grpc/testing/proxy-service_pb.rb'
    - 'qps/src/proto/grpc/testing/proxy-service_services_pb.rb'

# Offense count: 12
# Configuration parameters: AllowedVariables.
Style/GlobalVars:
  Exclude:
    - 'ext/grpc/extconf.rb'

# Offense count: 3
# Configuration parameters: MinBodyLength.
Style/GuardClause:
  Exclude:
    - 'lib/grpc/generic/bidi_call.rb'
    - 'lib/grpc/generic/rpc_server.rb'
    - 'qps/client.rb'

# Offense count: 1
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles, UseHashRocketsWithSymbolValues, PreferHashRocketsForNonAlnumEndingSymbols.
# SupportedStyles: ruby19, hash_rockets, no_mixed_keys, ruby19_no_mixed_keys
Style/HashSyntax:
  Exclude:
    - 'stress/metrics_server.rb'

# Offense count: 1
Style/IfInsideElse:
  Exclude:
    - 'lib/grpc/generic/rpc_desc.rb'

# Offense count: 4
# Cop supports --auto-correct.
# Configuration parameters: MaxLineLength.
Style/IfUnlessModifier:
  Exclude:
    - 'ext/grpc/extconf.rb'
    - 'qps/histogram.rb'
    - 'stress/stress_client.rb'

# Offense count: 1
# Cop supports --auto-correct.
Style/MethodCallWithoutArgsParentheses:
  Exclude:
    - 'qps/client.rb'

# Offense count: 3
# Cop supports --auto-correct.
Style/MultilineIfModifier:
  Exclude:
    - 'lib/grpc/generic/bidi_call.rb'
    - 'lib/grpc/generic/client_stub.rb'
    - 'spec/spec_helper.rb'

# Offense count: 7
# Cop supports --auto-correct.
Style/MutableConstant:
  Exclude:
    - 'ext/grpc/extconf.rb'
    - 'lib/grpc/version.rb'
    - 'spec/compression_options_spec.rb'
    - 'spec/generic/active_call_spec.rb'
    - 'tools/version.rb'

# Offense count: 1
# Cop supports --auto-correct.
Style/NegatedWhile:
  Exclude:
    - 'qps/client.rb'

# Offense count: 1
# Cop supports --auto-correct.
# Configuration parameters: AutoCorrect, EnforcedStyle, SupportedStyles.
# SupportedStyles: predicate, comparison
Style/NumericPredicate:
  Exclude:
    - 'spec/**/*'
    - 'ext/grpc/extconf.rb'

# Offense count: 7
# Cop supports --auto-correct.
Style/ParallelAssignment:
  Exclude:
    - 'bin/math_server.rb'
    - 'lib/grpc/generic/rpc_server.rb'
    - 'spec/generic/client_stub_spec.rb'
    - 'spec/generic/rpc_desc_spec.rb'
    - 'spec/generic/rpc_server_pool_spec.rb'
    - 'spec/generic/rpc_server_spec.rb'

# Offense count: 8
# Cop supports --auto-correct.
# Configuration parameters: PreferredDelimiters.
Style/PercentLiteralDelimiters:
  Exclude:
    - 'end2end/grpc_class_init_driver.rb'
    - 'spec/client_server_spec.rb'
    - 'spec/generic/active_call_spec.rb'
    - 'spec/generic/client_stub_spec.rb'
    - 'tools/grpc-tools.gemspec'

# Offense count: 3
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles.
# SupportedStyles: compact, exploded
Style/RaiseArgs:
  Exclude:
    - 'stress/metrics_server.rb'

# Offense count: 4
# Cop supports --auto-correct.
Style/RedundantParentheses:
  Exclude:
    - 'lib/grpc/generic/rpc_server.rb'
    - 'qps/client.rb'
    - 'qps/proxy-worker.rb'
    - 'spec/generic/rpc_desc_spec.rb'

# Offense count: 5
# Cop supports --auto-correct.
# Configuration parameters: AllowMultipleReturnValues.
Style/RedundantReturn:
  Exclude:
    - 'end2end/grpc_class_init_client.rb'

# Offense count: 77
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles.
# SupportedStyles: only_raise, only_fail, semantic
Style/SignalException:
  Enabled: false

# Offense count: 2
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles.
# SupportedStyles: use_perl_names, use_english_names
Style/SpecialGlobalVars:
  Exclude:
    - 'ext/grpc/extconf.rb'
    - 'stress/stress_client.rb'

# Offense count: 189
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SupportedStyles, ConsistentQuotesInMultiline.
# SupportedStyles: single_quotes, double_quotes
Style/StringLiterals:
  Exclude:
    - 'pb/grpc/testing/metrics_pb.rb'
    - 'pb/src/proto/grpc/testing/empty_pb.rb'
    - 'pb/src/proto/grpc/testing/messages_pb.rb'
    - 'qps/proxy-worker.rb'
    - 'qps/server.rb'
    - 'qps/src/proto/grpc/testing/control_pb.rb'
    - 'qps/src/proto/grpc/testing/messages_pb.rb'
    - 'qps/src/proto/grpc/testing/payloads_pb.rb'
    - 'qps/src/proto/grpc/testing/proxy-service_pb.rb'
    - 'qps/src/proto/grpc/testing/stats_pb.rb'
    - 'qps/worker.rb'

# Offense count: 1
Style/StructInheritance:
  Exclude:
    - 'lib/grpc/generic/rpc_desc.rb'

# Offense count: 10
# Cop supports --auto-correct.
# Configuration parameters: MinSize, SupportedStyles.
# SupportedStyles: percent, brackets
Style/SymbolArray:
  EnforcedStyle: brackets

# Offense count: 2
# Cop supports --auto-correct.
# Configuration parameters: IgnoredMethods.
# IgnoredMethods: respond_to, define_method
Style/SymbolProc:
  Exclude:
    - 'qps/client.rb'
    - 'stress/stress_client.rb'

# Offense count: 6
# Cop supports --auto-correct.
# Configuration parameters: AllowNamedUnderscoreVariables.
Style/TrailingUnderscoreVariable:
  Exclude:
    - 'spec/channel_credentials_spec.rb'
    - 'spec/server_credentials_spec.rb'

# Offense count: 3
# Cop supports --auto-correct.
# Configuration parameters: ExactNameMatch, AllowPredicates, AllowDSLWriters, IgnoreClassMethods, Whitelist.
# 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
Style/TrivialAccessors:
  Exclude:
    - 'qps/histogram.rb'

# Offense count: 3
# Cop supports --auto-correct.
Style/UnneededInterpolation:
  Exclude:
    - 'pb/grpc/health/checker.rb'

# Offense count: 1
# Cop supports --auto-correct.
Style/YodaCondition:
  Exclude:
    - 'stress/stress_client.rb'

# Offense count: 2
# Cop supports --auto-correct.
Style/ZeroLengthPredicate:
  Exclude:
    - 'lib/grpc/generic/rpc_server.rb'
