Sha256: d87f591ff8e5094833b326def05a591847cf9f70e084e2522d43b828cf2d3f53

Contents?: true

Size: 1.12 KB

Versions: 16

Compression:

Stored size: 1.12 KB

Contents

# Code adapted from rs, written by Eero Saynatkari.
require 'fileutils'
require 'tmpdir'

class Test::Spec::Should
  # Captures output from the IO given as
  # the second argument (STDIN by default)
  # and matches it against a String or 
  # Regexp given as the first argument.
  def output(expected, to = STDOUT)
    # Store the old stream
    old_to = to.dup

    # Obtain a filehandle to replace (works with Readline)
    to.reopen File.open(File.join(Dir.tmpdir, "should_output_#{$$}"), "w+")
    
    # Execute
    @object.call

    # Restore
    out = to.dup
    to.reopen old_to

    # Grab the data
    out.rewind
    output = out.read

    # Match up
    case expected
      when Regexp
        output.should.match expected
      else
        output.should.equal expected
    end                               # case expected

  # Clean up
  ensure
    out.close

    # STDIO redirection will break else
    begin
      to.seek 0, IO::SEEK_END
    rescue Errno::ESPIPE
    rescue Errno::EPIPE
    end

    FileUtils.rm_f out.path
  end                                 # output
end                                   # Test::Spec::Should

Version data entries

16 entries across 16 versions & 5 rubygems

Version Path
jordi-xml_struct-0.1.3 test/vendor/test-spec/lib/test/spec/should-output.rb
jordi-xml_struct-0.2.0 test/vendor/test-spec/lib/test/spec/should-output.rb
jordi-xml_struct-0.2.1 test/vendor/test-spec/lib/test/spec/should-output.rb
nullstyle-test-spec-0.4.1 lib/test/spec/should-output.rb
relevance-test-spec-0.4.0.5 lib/test/spec/should-output.rb
relevance-test-spec-0.4.1.1 lib/test/spec/should-output.rb
relevance-test-spec-0.4.1.2 lib/test/spec/should-output.rb
relevance-test-spec-0.4.1 lib/test/spec/should-output.rb
mofo-0.1.2 vendor/testspec-0.3.0/lib/test/spec/should-output.rb
mofo-0.2.2 vendor/testspec-0.3.0/lib/test/spec/should-output.rb
mofo-0.2.1 vendor/testspec-0.3.0/lib/test/spec/should-output.rb
mofo-0.2 vendor/testspec-0.3.0/lib/test/spec/should-output.rb
test-spec-0.3.0 lib/test/spec/should-output.rb
test-spec-0.10.0 lib/test/spec/should-output.rb
test-spec-0.4.0 lib/test/spec/should-output.rb
test-spec-0.9.0 lib/test/spec/should-output.rb