Sha256: 91df59ac9f9bb69f75e26d2d7ad3cbe22b18c0b3071512d005b3c58b70aeaa28

Contents?: true

Size: 813 Bytes

Versions: 3

Compression:

Stored size: 813 Bytes

Contents

module Retest
  class VersionControl
    def self.files
      [Git, NoVersionControl].select(&:installed?).first.new.files
    end

    def name; end
    alias :to_s :name

    class NoVersionControl
      def self.installed?
        true
      end

      def name
        'default'
      end

      def files
        Dir.glob('**/*') - Dir.glob('{tmp,node_modules}/**/*')
      end
    end

    class Git
      def self.installed?
        system "git -C . rev-parse 2>/dev/null"
      end

      def name
        'git'
      end

      def files
        (untracked_files + tracked_files).sort
      end

      private

      def untracked_files
        `git ls-files --other --exclude-standard -z`.split("\x0")
      end

      def tracked_files
        `git ls-files -z`.split("\x0")
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
retest-0.9.0 lib/retest/version_control.rb
retest-0.8.2 lib/retest/version_control.rb
retest-0.8.1 lib/retest/version_control.rb