Sha256: e0f4f18fccec83904869cdc807c41811d4506235ae8061123b111047c2bc9fcd

Contents?: true

Size: 1.2 KB

Versions: 1

Compression:

Stored size: 1.2 KB

Contents

require 'listen'
require 'string/similarity'

require "retest/version"
require "retest/runner"
require "retest/repository"
require "retest/test_options"
require "retest/options"
require "retest/version_control"

module Retest
  class Error < StandardError; end

  class << self
    def start(command)
      puts "Launching Retest..."

      build(
        runner: Runner.for(command),
        repository: Repository.new(files: VersionControl.files)
      ).start

      puts "Ready to refactor! You can make file changes now"
    end

    def build(runner:, repository:)
      Listen.to('.', only: /\.rb$/, relative: true) do |modified, added, removed|
        STDOUT.puts modified
        STDOUT.puts added
        STDOUT.puts removed
        begin
          if modified.any?
            system('clear 2>/dev/null') || system('cls 2>/dev/null')
            runner.run repository.find_test(modified.first.strip)
          elsif added.any?
            repository.add(added)
            system('clear 2>/dev/null') || system('cls 2>/dev/null')
            runner.run repository.find_test(added.first.strip)
          end
        rescue => e
          puts "Something went wrong: #{e.message}"
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
retest-0.8.0.pre lib/retest.rb