Class: Caddy::TaskObserver

Inherits:
Object
  • Object
show all
Defined in:
lib/caddy/task_observer.rb

Instance Method Summary collapse

Constructor Details

#initialize(error_handler, cache_name) ⇒ TaskObserver

Returns a new instance of TaskObserver.



4
5
6
7
# File 'lib/caddy/task_observer.rb', line 4

def initialize(error_handler, cache_name)
  @error_handler = error_handler || Caddy.error_handler
  @cache_name = cache_name
end

Instance Method Details

#update(_, _, boom) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/caddy/task_observer.rb', line 9

def update(_, _, boom)
  return unless boom

  if @error_handler
    if @error_handler.respond_to?(:call)
      begin
        @error_handler.call(boom)
      rescue => incepted_boom
        puts_exception("Caddy error handler itself errored handling refresh for :#{@cache_name}", incepted_boom)
      end
    else
      # rubocop:disable Style/StringLiterals
      STDERR.puts 'Caddy error handler not callable. Please set the error handler like:'\
                  ' `Caddy.error_handler = -> (e) { puts "#{e}" }`'
      # rubocop:enable Style/StringLiterals

      puts_exception("Caddy refresher for :#{@cache_name} failed with error", boom)
    end
  elsif boom.is_a?(Concurrent::TimeoutError)
    STDERR.puts "Caddy refresher for :#{@cache_name} timed out"
  else
    puts_exception("Caddy refresher for :#{@cache_name} failed with error", boom)
  end
end