Showing 270 of 327 total issues
File test_puma_server.rb
has 1419 lines of code (exceeds 250 allowed). Consider refactoring. Open
require_relative "helper"
require "puma/events"
require "puma/server"
require "net/http"
require "nio"
Class TestPumaServer
has 128 methods (exceeds 20 allowed). Consider refactoring. Open
class TestPumaServer < Minitest::Test
parallelize_me!
STATUS_CODES = ::Puma::HTTP_STATUS_CODES
Method parse
has a Cognitive Complexity of 93 (exceeds 5 allowed). Consider refactoring. Open
def parse(binds, log_writer = nil, log_msg = 'Listening')
log_writer ||= @log_writer
binds.each do |str|
uri = URI.parse str
case uri.scheme
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
Method run
has a Cognitive Complexity of 89 (exceeds 5 allowed). Consider refactoring. Open
def run
@status = :run
output_header "cluster"
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
Class DSL
has 77 methods (exceeds 20 allowed). Consider refactoring. Open
class DSL
ON_WORKER_KEY = [String, Symbol].freeze
# convenience method so logic can be used in CI
# @see ssl_bind
Method handle_servers
has a Cognitive Complexity of 68 (exceeds 5 allowed). Consider refactoring. Open
def handle_servers
begin
check = @check
sockets = [check] + @binder.ios
pool = @thread_pool
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
Method fast_write_response
has a Cognitive Complexity of 67 (exceeds 5 allowed). Consider refactoring. Open
def fast_write_response(socket, body, io_buffer, chunked, content_length)
if body.is_a?(::File) && body.respond_to?(:read)
if chunked # would this ever happen?
while chunk = body.read(BODY_LEN_MAX)
io_buffer.append chunk.bytesize.to_s(16), LINE_END, chunk, LINE_END
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
Method ssl_bind_str
has a Cognitive Complexity of 67 (exceeds 5 allowed). Consider refactoring. Open
def self.ssl_bind_str(host, port, opts)
verify = opts.fetch(:verify_mode, 'none').to_s
tls_str =
if opts[:no_tlsv1_1] then '&no_tlsv1_1=true'
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
Method decode_chunk
has a Cognitive Complexity of 64 (exceeds 5 allowed). Consider refactoring. Open
def decode_chunk(chunk)
if @partial_part_left > 0
if @partial_part_left <= chunk.size
if @partial_part_left > 2
write_chunk(chunk[0..(@partial_part_left-3)]) # skip the \r\n
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
File test_integration_cluster.rb
has 565 lines of code (exceeds 250 allowed). Consider refactoring. Open
require_relative "helper"
require_relative "helpers/integration"
require "puma/configuration"
File test_config.rb
has 560 lines of code (exceeds 250 allowed). Consider refactoring. Open
require_relative "helper"
require_relative "helpers/config_file"
require "puma/configuration"
require 'puma/log_writer'
Method read_response_array
has a Cognitive Complexity of 58 (exceeds 5 allowed). Consider refactoring. Open
def read_response_array(skts, resp_count: nil, body_only: nil)
results = Array.new skts.length
Thread.new do
until skts.compact.empty?
skts.each_with_index do |skt, idx|
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
Method hot_restart_does_not_drop_connections
has a Cognitive Complexity of 53 (exceeds 5 allowed). Consider refactoring. Open
def hot_restart_does_not_drop_connections(num_threads: 1, total_requests: 500)
skipped = true
skip_if :jruby, suffix: <<-MSG
- file descriptors are not preserved on exec on JRuby; connection reset errors are expected during restarts
MSG
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
Method context
has a Cognitive Complexity of 53 (exceeds 5 allowed). Consider refactoring. Open
def context
ctx = MiniSSL::Context.new
if defined?(JRUBY_VERSION)
unless params['keystore']
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
Class TestIntegrationCluster
has 54 methods (exceeds 20 allowed). Consider refactoring. Open
class TestIntegrationCluster < TestIntegration
parallelize_me! if ::Puma.mri?
def workers ; 2 ; end
File client.rb
has 484 lines of code (exceeds 250 allowed). Consider refactoring. Open
class IO
# We need to use this for a jruby work around on both 1.8 and 1.9.
# So this either creates the constant (on 1.8), or harmlessly
# reopens it (on 1.9).
module WaitReadable
Method run
has a Cognitive Complexity of 45 (exceeds 5 allowed). Consider refactoring. Open
def run
title = "puma: cluster worker #{index}: #{master}"
title += " [#{@options[:tag]}]" if @options[:tag] && !@options[:tag].empty?
$0 = title
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
Class TestConfigFile
has 49 methods (exceeds 20 allowed). Consider refactoring. Open
class TestConfigFile < TestConfigFileBase
parallelize_me!
def test_default_max_threads
max_threads = 16
File server.rb
has 450 lines of code (exceeds 250 allowed). Consider refactoring. Open
require 'stringio'
require_relative 'thread_pool'
require_relative 'const'
require_relative 'log_writer'
File test_puma_server_ssl.rb
has 447 lines of code (exceeds 250 allowed). Consider refactoring. Open
require_relative "helper"
if ::Puma::HAS_SSL
require "puma/minissl"
require_relative "helpers/test_puma/puma_socket"