Sha256: 63a9bf8d83a44175ae4d3f37fead085521c299101d45f9add7cc924bfc5530f1

Contents?: true

Size: 1.31 KB

Versions: 11

Compression:

Stored size: 1.31 KB

Contents

module Cucumber
  module Formatter
    module Interceptor
      class Pipe
        attr_reader :pipe, :buffer
        def initialize(pipe)
          @pipe = pipe
          @buffer = []
          @wrapped = true
        end

        def write(str)
          @buffer << str if @wrapped
          return @pipe.write(str)
        end

        def unwrap!
          @wrapped = false
          @pipe
        end

        def method_missing(method, *args, &blk)
          @pipe.send(method, *args, &blk)
        end

        def self.validate_pipe(pipe)
          unless [:stdout, :stderr].include? pipe
            raise ArgumentError, '#wrap only accepts :stderr or :stdout'
          end
        end

        def self.unwrap!(pipe)
          validate_pipe pipe
          wrapped = nil
          case pipe
          when :stdout
            wrapped = $stdout
            $stdout = wrapped.unwrap!
          when :stderr
            wrapped = $stderr
            $stderr = wrapped.unwrap!
          end
          wrapped
        end

        def self.wrap(pipe)
          validate_pipe pipe

          case pipe
          when :stderr
            $stderr = self.new($stderr)
            return $stderr
          when :stdout
            $stdout = self.new($stdout)
            return $stdout
          end
        end
      end
    end
  end
end

Version data entries

11 entries across 9 versions & 5 rubygems

Version Path
candlepin-api-0.4.0 bundle/ruby/gems/cucumber-1.2.1/lib/cucumber/formatter/interceptor.rb
candlepin-api-0.4.0 bundle/ruby/1.9.1/gems/cucumber-1.2.1/lib/cucumber/formatter/interceptor.rb
candlepin-api-0.4.0 bundle/ruby/1.8/gems/cucumber-1.2.1/lib/cucumber/formatter/interceptor.rb
librarian-puppet-0.9.9 vendor/gems/ruby/1.9.1/gems/cucumber-1.2.1/lib/cucumber/formatter/interceptor.rb
librarian-puppet-0.9.8 vendor/gems/ruby/1.9.1/gems/cucumber-1.2.1/lib/cucumber/formatter/interceptor.rb
librarian-puppet-0.9.4 vendor/gems/ruby/1.8/gems/cucumber-1.2.1/lib/cucumber/formatter/interceptor.rb
casecumber-1.2.1.cb2 lib/cucumber/formatter/interceptor.rb
librarian-puppet-0.9.3 vendor/gems/ruby/1.8/gems/cucumber-1.2.1/lib/cucumber/formatter/interceptor.rb
cucumber-1.2.1 lib/cucumber/formatter/interceptor.rb
ftl-0.2.0 vendor/bundle/gems/cucumber-1.2.0/lib/cucumber/formatter/interceptor.rb
cucumber-1.2.0 lib/cucumber/formatter/interceptor.rb