Sha256: 9afc852b55bf4dee28aefbcdd4131bef684440946f8ff943d83ae8de83450715

Contents?: true

Size: 911 Bytes

Versions: 14

Compression:

Stored size: 911 Bytes

Contents

# frozen_string_literal: true

require 'rake'

module RakeHelper
  def load_rake_environment(files)
    @rake = Rake::Application.new
    Rake.application = @rake
    Rake::Task.define_task(:environment)
    files.each { |file| load file }
  end

  def run_task(task)
    capture_stdout_stderr do
      @rake[task].invoke
    end
  end

  # saves original $stdout in variable
  # set $stdout as local instance of StringIO
  # yields to code execution
  # returns the local instance of StringIO
  # resets $stdout to original value
  def capture_stdout_stderr
    out = StringIO.new
    err = StringIO.new
    $stdout = out
    $stderr = err
    begin
      yield
    rescue SystemExit => e
      puts "error = #{e.inspect}"
    end
    "Output: #{out.string}\n Errors:#{err.string}"
  ensure
    $stdout = STDOUT
    $stdout = STDERR
  end

  RSpec.configure do |config|
    config.include RakeHelper
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
browse-everything-1.5.0 spec/support/rake.rb
browse-everything-1.4.0 spec/support/rake.rb
browse-everything-1.3.0 spec/support/rake.rb
browse-everything-1.2.0 spec/support/rake.rb
browse-everything-1.1.2 spec/support/rake.rb
browse-everything-1.1.1 spec/support/rake.rb
browse-everything-1.1.0 spec/support/rake.rb
browse-everything-1.0.2 spec/support/rake.rb
browse-everything-1.0.1 spec/support/rake.rb
browse-everything-1.0.0 spec/support/rake.rb
browse-everything-1.0.0.rc2 spec/support/rake.rb
browse-everything-1.0.0.rc1 spec/support/rake.rb
browse-everything-0.16.1 spec/support/rake.rb
browse-everything-0.16.0 spec/support/rake.rb