class Maven

Public Class Methods

new(url) click to toggle source
# File lib/crapapult.rb, line 12
def initialize(url)
  @url = url.gsub(/\/$/, '')
  @session = Patron::Session.new
  @session.timeout = 10
  @session.base_url = @url
end

Public Instance Methods

find_release_versions(group_id, artifact_id) click to toggle source
# File lib/crapapult.rb, line 28
def find_release_versions(group_id, artifact_id)
  find_versions(group_id, artifact_id).select { |v| v !~ /SNAPSHOT$/ }
end
find_snapshot_builds(group_id, artifact_id, version) click to toggle source
# File lib/crapapult.rb, line 32
def find_snapshot_builds(group_id, artifact_id, version)
  resp = @session.get("/#{urlify(group_id)}/#{artifact_id}/#{version}/maven-metadata.xml")
  if resp.status == 200
    Nokogiri::XML(resp.body).css('metadata > versioning > snapshotVersions').map { |e|
      ext = e.at("extension")
      if ext && ext.text.strip == "jar"
        e.at("value").text.strip
      else
        []
      end
    }.flatten
  else
    raise "unable to find metadata for #{group_id}:#{artifact_id}:#{version}"
  end
end
find_versions(group_id, artifact_id) click to toggle source
# File lib/crapapult.rb, line 19
def find_versions(group_id, artifact_id)
  resp = @session.get("/#{urlify(group_id)}/#{artifact_id}/maven-metadata.xml")
  if resp.status == 200
    Nokogiri::XML(resp.body).css("metadata versioning versions version").map { |e| e.text.strip }
  else
    raise "unable to find metadata for #{group_id}:#{artifact_id}"
  end
end
release_artifact_url(group_id, artifact_id, version) click to toggle source
# File lib/crapapult.rb, line 48
def release_artifact_url(group_id, artifact_id, version)
  "#{@url}/#{urlify(group_id)}/#{artifact_id}/#{version}/#{artifact_id}-#{version}.jar"
end
snapshot_artifact_url(group_id, artifact_id, version, build) click to toggle source
# File lib/crapapult.rb, line 52
def snapshot_artifact_url(group_id, artifact_id, version, build)
  "#{@url}/#{urlify(group_id)}/#{artifact_id}/#{version}/#{artifact_id}-#{build}.jar"
end

Private Instance Methods

urlify(group_id) click to toggle source
# File lib/crapapult.rb, line 58
def urlify(group_id)
  group_id.gsub('.', '/')
end