Vug::Config
Configuration for Vug favicon fetching.
NOTE: This is a class rather than a record because it contains Proc callbacks
(on_save, on_load, on_debug, etc.) which are not comparable and cannot be used
in Crystal records. If callback support is ever removed, consider converting
to a record to gain automatic copy_with support.
MAINTENANCE: When adding/removing config fields, update all 3 locations:
- getter declaration (above)
- initialize method parameters and body
- copy_with method parameters and body
Constants
Google favicon API returns a 198-byte SVG placeholder when no real favicon exists for a domain.
Constructors
Instance methods
ameba:disable Metrics/CyclomaticComplexity
Google SVG placeholders are exactly 198 bytes when fetched from google.com/s2/favicons. Detecting this size allows us to fall back to a larger resolution.
NOTE: This setting controls the process-wide semaphore limit. Only the first-initialized value takes effect; subsequent Fetcher instances with different values will share the existing semaphore.
Optional structured logging callback. When set, receives LogEntry objects alongside the existing level-specific callbacks.