lib/phlex/buffered.rb



# frozen_string_literal: true

module Phlex
  class Buffered
    def initialize(object, buffer:)
      @object, @buffer = object, buffer
    end

    def method_missing(name, *args, **kwargs, &block)
      output = @object.public_send(name, *args, **kwargs, &block)
      @buffer << output if output.is_a? String
      nil
    end

    def respond_to_missing?(name)
      @object.respond_to?(name)
    end
  end
end