Sha256: 6247cf58709329cb124fcb9f15078497598dbd9959aaf2c4647b507469115bb0

Contents?: true

Size: 1.63 KB

Versions: 21

Compression:

Stored size: 1.63 KB

Contents

# frozen_string_literal: true

# Standard libraries
require 'socket'
require 'tempfile'
require 'time'
require 'etc'
require 'uri'
require 'stringio'

require 'thread'

require 'puma/puma_http11'
require 'puma/detect'
require 'puma/json_serialization'

module Puma
  autoload :Const, 'puma/const'
  autoload :Server, 'puma/server'
  autoload :Launcher, 'puma/launcher'

  # at present, MiniSSL::Engine is only defined in extension code (puma_http11),
  # not in minissl.rb
  HAS_SSL = const_defined?(:MiniSSL, false) && MiniSSL.const_defined?(:Engine, false)

  HAS_UNIX_SOCKET = Object.const_defined? :UNIXSocket

  if HAS_SSL
    require 'puma/minissl'
  else
    module MiniSSL
      # this class is defined so that it exists when Puma is compiled
      # without ssl support, as Server and Reactor use it in rescue statements.
      class SSLError < StandardError ; end
    end
  end

  def self.ssl?
    HAS_SSL
  end

  def self.abstract_unix_socket?
    @abstract_unix ||=
      if HAS_UNIX_SOCKET
        begin
          ::UNIXServer.new("\0puma.temp.unix").close
          true
        rescue ArgumentError  # darwin
          false
        end
      else
        false
      end
  end

  # @!attribute [rw] stats_object=
  def self.stats_object=(val)
    @get_stats = val
  end

  # @!attribute [rw] stats_object
  def self.stats
    Puma::JSONSerialization.generate @get_stats.stats
  end

  # @!attribute [r] stats_hash
  # @version 5.0.0
  def self.stats_hash
    @get_stats.stats
  end

  # Thread name is new in Ruby 2.3
  def self.set_thread_name(name)
    return unless Thread.current.respond_to?(:name=)
    Thread.current.name = "puma #{name}"
  end
end

Version data entries

21 entries across 21 versions & 3 rubygems

Version Path
puma-5.6.5-java lib/puma.rb
puma-5.6.5 lib/puma.rb
puma-5.6.4-java lib/puma.rb
puma-5.6.4 lib/puma.rb
puma-5.6.2-java lib/puma.rb
puma-5.6.2 lib/puma.rb
puma-5.6.1-java lib/puma.rb
puma-5.6.1 lib/puma.rb
puma-5.6.0-java lib/puma.rb
puma-5.6.0 lib/puma.rb
date_n_time_picker_activeadmin-0.1.2 vendor/bundle/ruby/2.6.0/gems/puma-5.5.2/lib/puma.rb
date_n_time_picker_activeadmin-0.1.1 vendor/bundle/ruby/2.6.0/gems/puma-5.5.2/lib/puma.rb
puma-5.5.2-java lib/puma.rb
puma-5.5.2 lib/puma.rb
puma-5.5.1-java lib/puma.rb
puma-5.5.1 lib/puma.rb
puma-5.5.0-java lib/puma.rb
puma-5.5.0 lib/puma.rb
piesync-puma-5.4.0.1 lib/puma.rb
puma-5.4.0-java lib/puma.rb