Sha256: d9cae162319546c916e88957820211a4f0c215daa8bf2b445efc016fb0a3a486

Contents?: true

Size: 951 Bytes

Versions: 45

Compression:

Stored size: 951 Bytes

Contents

module Protobuf
  class Lifecycle
    class << self
      def register(event_name)
        fail "Lifecycle register must have a block" unless block_given?
        event_name = normalized_event_name(event_name)

        ::ActiveSupport::Notifications.subscribe(event_name) do |_name, _start, _finish, _id, args|
          yield(*args)
        end
      end
      alias :on register

      def trigger(event_name, *args)
        event_name = normalized_event_name(event_name)

        ::ActiveSupport::Notifications.instrument(event_name, args)
      end

      replacement = ::ActiveSupport::Notifications

      ::Protobuf.deprecator.deprecate_methods(
        self,
        :register => "#{replacement}.#{replacement.method(:subscribe).name}".to_sym,
        :trigger => "#{replacement}.#{replacement.method(:instrument).name}".to_sym,
      )

      def normalized_event_name(event_name)
        event_name.to_s.downcase
      end
    end
  end
end

Version data entries

45 entries across 45 versions & 3 rubygems

Version Path
protobuf-cucumber-3.10.4 lib/protobuf/lifecycle.rb
protobuf-3.10.3 lib/protobuf/lifecycle.rb
protobuf-3.10.2 lib/protobuf/lifecycle.rb
protobuf-3.10.1 lib/protobuf/lifecycle.rb
protobuf-3.10.0 lib/protobuf/lifecycle.rb
protobuf-3.10.0.pre0 lib/protobuf/lifecycle.rb
protobuf-3.9.0 lib/protobuf/lifecycle.rb
protobuf-3.9.0.pre2 lib/protobuf/lifecycle.rb
protobuf-3.9.0.pre lib/protobuf/lifecycle.rb
protobuf-3.8.5 lib/protobuf/lifecycle.rb
protobuf-3.8.5.pre0 lib/protobuf/lifecycle.rb
protobuf-3.8.4 lib/protobuf/lifecycle.rb
protobuf-3.8.3 lib/protobuf/lifecycle.rb
protobuf-3.8.2 lib/protobuf/lifecycle.rb
protobuf-3.8.1 lib/protobuf/lifecycle.rb
protobuf-3.8.0 lib/protobuf/lifecycle.rb
protobuf-3.8.0.pre1 lib/protobuf/lifecycle.rb
protobuf-3.7.5 lib/protobuf/lifecycle.rb
protobuf-3.7.4 lib/protobuf/lifecycle.rb
protobuf-3.7.3 lib/protobuf/lifecycle.rb