Class: Spikard::CompressionConfig

Inherits:
Object
  • Object
show all
Defined in:
lib/spikard/config.rb

Overview

Compression configuration for response compression middleware.

Spikard supports gzip and brotli compression for responses. Compression is applied based on Accept-Encoding headers.

Examples:

compression = CompressionConfig.new(
  gzip: true,
  brotli: true,
  min_size: 1024,
  quality: 6
)

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(gzip: true, brotli: true, min_size: 1024, quality: 6) ⇒ CompressionConfig

Returns a new instance of CompressionConfig.

Parameters:

  • gzip (Boolean) (defaults to: true)

    Enable gzip compression (default: true)

  • brotli (Boolean) (defaults to: true)

    Enable brotli compression (default: true)

  • min_size (Integer) (defaults to: 1024)

    Minimum response size in bytes to compress (default: 1024)

  • quality (Integer) (defaults to: 6)

    Compression quality level (0-11 for brotli, 0-9 for gzip, default: 6)



23
24
25
26
27
28
# File 'lib/spikard/config.rb', line 23

def initialize(gzip: true, brotli: true, min_size: 1024, quality: 6)
  @gzip = normalize_boolean('gzip', gzip)
  @brotli = normalize_boolean('brotli', brotli)
  @min_size = normalize_nonnegative_integer('min_size', min_size)
  @quality = normalize_quality(quality)
end

Instance Attribute Details

#brotliObject

Returns the value of attribute brotli.



17
18
19
# File 'lib/spikard/config.rb', line 17

def brotli
  @brotli
end

#gzipObject

Returns the value of attribute gzip.



17
18
19
# File 'lib/spikard/config.rb', line 17

def gzip
  @gzip
end

#min_sizeObject

Returns the value of attribute min_size.



17
18
19
# File 'lib/spikard/config.rb', line 17

def min_size
  @min_size
end

#qualityObject

Returns the value of attribute quality.



17
18
19
# File 'lib/spikard/config.rb', line 17

def quality
  @quality
end