Module: Gemvault::Deprecation
- Defined in:
- lib/gemvault/deprecation.rb
Overview
Emits deprecation notices once per unique message, to a configurable IO (stderr in production). Silenceable per-block or via an environment opt-out so automated pipelines that consume a legacy vault are not spammed.
Constant Summary collapse
- ENV_KEY =
"GEMVAULT_SILENCE_DEPRECATIONS".freeze
Class Attribute Summary collapse
Class Method Summary collapse
Class Attribute Details
.output ⇒ Object
11 12 13 |
# File 'lib/gemvault/deprecation.rb', line 11 def output @output ||= $stderr end |
Class Method Details
.reset! ⇒ Object
34 35 36 37 |
# File 'lib/gemvault/deprecation.rb', line 34 def reset! @seen = [] @silenced = false end |
.silence ⇒ Object
22 23 24 25 26 27 28 |
# File 'lib/gemvault/deprecation.rb', line 22 def silence previous = @silenced @silenced = true yield ensure @silenced = previous end |
.silenced? ⇒ Boolean
30 31 32 |
# File 'lib/gemvault/deprecation.rb', line 30 def silenced? @silenced || ENV.key?(ENV_KEY) end |
.warn_once(message) ⇒ Object
15 16 17 18 19 20 |
# File 'lib/gemvault/deprecation.rb', line 15 def warn_once() return if silenced? || seen.include?() seen << output.puts("gemvault: #{}") end |