class GitlocMarissa

Constants

Error
RepoDoesNotExistError
VERSION

Public Class Methods

call(repo) click to toggle source
# File lib/gitloc_marissa.rb, line 8
def self.call(repo)
  files_and_bodies = Dir.mktmpdir do |dir|
    Dir.chdir dir do
      out, err, status = Open3.capture3 'git', 'clone', repo, 'cloned'

      raise RepoDoesNotExistError, repo unless status.success?

      Dir.chdir 'cloned' do
        files = Dir['**/*'].reject { |name| File.directory? name }
        files.map do |file|
          body = File.read(file)
          [file, body]
        end
      end
    end
  end
  LineCounts.call(files_and_bodies)
end