Sha256: 2cc8a47796154095fe5a7f6eedc9ec907ddb73fd5cdce771dc0fc7aa777cd4e0

Contents?: true

Size: 1.3 KB

Versions: 7

Compression:

Stored size: 1.3 KB

Contents

# encoding: UTF-8

module Tetra
  # attempts to get java projects' sources
  class SourceGetter
    include Logging

    # attempts to download a project's sources
    def get_maven_source_jar(project, pom_path)
      maven_runner = Tetra::MavenRunner.new(project)
      pom = Pom.new(pom_path)
      maven_runner.get_source_jar(pom.group_id, pom.artifact_id, pom.version)
    end

    # looks for jars in maven's local repo and downloads corresponding
    # source jars
    def get_maven_source_jars(project)
      maven_runner = Tetra::MavenRunner.new(project)

      project.from_directory do
        paths = Find.find(".").reject { |path| artifact_from_path(path).nil? }.sort

        succeded_paths = paths.each do |path|
          group_id, artifact_id, version = artifact_from_path(path)
          log.info("attempting source download for #{path} (#{group_id}:#{artifact_id}:#{version})")
          maven_runner.get_source_jar(group_id, artifact_id, version)
        end

        [succeded_paths, (paths - succeded_paths)]
      end
    end

    private

    # if possible, turn path into a Maven artifact name, otherwise return nil
    def artifact_from_path(path)
      match = path.match(%r{\./kit/m2/(.+)/(.+)/(.+)/\2-\3.*\.jar$})
      [match[1].gsub("/", "."), match[2], match[3]] unless match.nil?
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
tetra-0.46.0 lib/tetra/source_getter.rb
tetra-0.45.0 lib/tetra/source_getter.rb
tetra-0.44.0 lib/tetra/source_getter.rb
tetra-0.43.0 lib/tetra/source_getter.rb
tetra-0.42.0 lib/tetra/source_getter.rb
tetra-0.41.0 lib/tetra/source_getter.rb
tetra-0.40.0 lib/tetra/source_getter.rb