Sha256: 27fb7820a0e82a6214bfa586c7661f0228dcaf4d9f14b22172baf827d8a14aaa

Contents?: true

Size: 893 Bytes

Versions: 4

Compression:

Stored size: 893 Bytes

Contents

# frozen_string_literal: true

module KapostDeploy
  module Seismograph
    def self.seismograph_adapter
      require "seismograph"
      ::Seismograph
    rescue LoadError
      NullAdapter
    end

    # Wrapper for seismograph gem
    class Notifier
      extend Forwardable

      def_delegator :sensor, :timing
      def_delegator :logger, :info

      def initialize
        self.adapter = KapostDeploy::Seismograph.seismograph_adapter
      end

      private

      attr_accessor :adapter

      def sensor
        @sensor ||= adapter::Sensor.new(:kapost_deploy)
      end

      def logger
        adapter::Log
      end
    end

    module NullAdapter
      class Sensor
        def initialize(_namespace); end

        def timing(_description, _duration, _params = {}); end
      end

      module Log
        def self.info(_message, _params = {}); end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
kapost_deploy-0.7.1 lib/kapost_deploy/seismograph/notifier.rb
kapost_deploy-0.7.0 lib/kapost_deploy/seismograph/notifier.rb
kapost_deploy-0.6.2 lib/kapost_deploy/seismograph/notifier.rb
kapost_deploy-0.6.1 lib/kapost_deploy/seismograph/notifier.rb