class Vorx::GitReference

Constants

GIT_REFERENCE_REGEXP
GIT_URI_REGEXP
PROVIDERS

Public Class Methods

resolve(git_reference, prefix: '') click to toggle source
# File lib/vorx/git_reference.rb, line 16
def resolve(git_reference, prefix: '')
  git_uri = git_reference if GIT_URI_REGEXP.match?(git_reference)

  provider, reference, version = extract_params(git_reference) unless git_uri

  # TODO: Improve
  raise 'Invalid git uri or git reference' if !reference && !git_uri

  git_uri ||= "#{PROVIDERS[provider]}/#{with_prefix(reference, prefix)}.git"
  version ||= 'master'

  GitRepository.new(
    git: git_uri,
    version: version
  )
end

Private Class Methods

extract_params(git_reference) click to toggle source
# File lib/vorx/git_reference.rb, line 35
def extract_params(git_reference)
  provider, reference, version = GIT_REFERENCE_REGEXP.match(git_reference).captures

  provider&.tr!(':', '')
  version&.tr!(':', '')

  [provider, reference, version]
end
with_prefix(reference, prefix) click to toggle source
# File lib/vorx/git_reference.rb, line 44
def with_prefix(reference, prefix)
  git_user, git_repo = reference.split('/')

  "#{git_user}/#{prefix}#{git_repo}"
end