Sha256: 6139b4355d58d3299b75a45aa2724e05185b963a4948390cdf9eb6bc6575bf6b

Contents?: true

Size: 667 Bytes

Versions: 1

Compression:

Stored size: 667 Bytes

Contents

require 'tmpdir'
require 'open3'
require 'gitloc_marissa/version'
require 'gitloc_marissa/errors'
require 'gitloc_marissa/line_counts'

class GitlocMarissa
  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
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
gitloc-marissa-0.2.0 lib/gitloc_marissa.rb