Sha256: f1edb6376472154120c61ce2aa987a05767769308ff54cb742da1ab8d40d51ff

Contents?: true

Size: 533 Bytes

Versions: 2

Compression:

Stored size: 533 Bytes

Contents

require 'stringio'

module Spectus
  module Matcher

    # Provides the implementation for `capture_stdout`.
    class CaptureStdout
      def initialize expected
        @expected = expected

        freeze
      end

      # @return [Boolean] Comparison between actual and expected values.
      def matches?
        begin
          orig_std  = $stdout
          $stdout   = StringIO.new

          yield
          $stdout.string.eql? @expected
        ensure
          $stdout   = orig_std
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
spectus-1.0.1 lib/spectus/matcher/capture_stdout.rb
spectus-1.0.0 lib/spectus/matcher/capture_stdout.rb