Sha256: 16eae60e7de4b1a6b3747a5f70c8e2bbcb21541a01ee1e4eead2369f1ef7d376

Contents?: true

Size: 886 Bytes

Versions: 17

Compression:

Stored size: 886 Bytes

Contents

# frozen_string_literal: false
require 'psych/handler'

module Psych
  module Handlers
    ###
    # This handler will capture an event and record the event.  Recorder events
    # are available vial Psych::Handlers::Recorder#events.
    #
    # For example:
    #
    #   recorder = Psych::Handlers::Recorder.new
    #   parser = Psych::Parser.new recorder
    #   parser.parse '--- foo'
    #
    #   recorder.events # => [list of events]
    #
    #   # Replay the events
    #
    #   emitter = Psych::Emitter.new $stdout
    #   recorder.events.each do |m, args|
    #     emitter.send m, *args
    #   end

    class Recorder < Psych::Handler
      attr_reader :events

      def initialize
        @events = []
        super
      end

      EVENTS.each do |event|
        define_method event do |*args|
          @events << [event, args]
        end
      end
    end
  end
end

Version data entries

17 entries across 17 versions & 2 rubygems

Version Path
psych-3.0.0.beta2-java lib/psych/handlers/recorder.rb
psych-3.0.0.beta2 lib/psych/handlers/recorder.rb
psych-2.2.4-java lib/psych/handlers/recorder.rb
psych-2.2.4 lib/psych/handlers/recorder.rb
psych-2.2.3-java lib/psych/handlers/recorder.rb
psych-2.2.3 lib/psych/handlers/recorder.rb
ruby-compiler-0.1.1 vendor/ruby/ext/psych/lib/psych/handlers/recorder.rb
psych-2.2.2-java lib/psych/handlers/recorder.rb
psych-2.2.2 lib/psych/handlers/recorder.rb
psych-2.2.1-java lib/psych/handlers/recorder.rb
psych-2.2.1 lib/psych/handlers/recorder.rb
psych-2.2.0-java lib/psych/handlers/recorder.rb
psych-2.2.0 lib/psych/handlers/recorder.rb
psych-2.1.1-java lib/psych/handlers/recorder.rb
psych-2.1.1 lib/psych/handlers/recorder.rb
psych-2.1.0-java lib/psych/handlers/recorder.rb
psych-2.1.0 lib/psych/handlers/recorder.rb