Sha256: 25e3968c80dcb940c197abd5d46fec17f31ffd79389e1fbe5b9111dcc40ecf21

Contents?: true

Size: 1009 Bytes

Versions: 1

Compression:

Stored size: 1009 Bytes

Contents

# frozen_string_literal: true

module RShade
  # nodoc
  class EventProcessor
    attr_reader :store, :serializer

    def initialize(store, config)
      @store = store
      custom_serializers = config.variable_serializer
      @serializer = ::RShade::Serializer::Traversal.new(custom_serializers)
    end

    # @param [RShade::Event] event
    # @param [Integer] level
    def enter(event, level)
      event.with_serialized_vars!(serializer).with_level!(level)
      store.add(event, level)
    end

    # @param [RShade::Event] event
    # @param [Integer] level
    def leave(event, _level)
      store.current! do |node|
        node.value.return_value!(event.return_value)
            .with_serialized_return!(serializer)
      end
    rescue StandardError
      # this rescue here due this issue which reproduce in ruby-2.6.6 at least
      # https://bugs.ruby-lang.org/issues/18060
    end

    # @param [RShade::Event] event
    # @param [Integer] level
    def other(event, level); end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rshade-0.2.2 lib/rshade/event_processor.rb