module SocialSnippet::Api::InstallRepositoryApi

Public Instance Methods

install_missing_dependencies(repo_deps, options = {}) click to toggle source
# File lib/social_snippet/api/install_repository_api.rb, line 29
def install_missing_dependencies(repo_deps, options = {})
  repo_deps.each do |dep_repo_name, dep_repo_ref|
    unless core.repo_manager.exists?(dep_repo_name, dep_repo_ref)
      url = resolve_name_by_registry(dep_repo_name)
      install_repository url, dep_repo_ref, options
    end
  end
end
install_repository(url, ref, options = {}) click to toggle source

Install repository

@param url [String] @param ref [String]

# File lib/social_snippet/api/install_repository_api.rb, line 14
def install_repository(url, ref, options = {})
  output "Fetching #{url}..."

  unless options[:dry_run]
    package = core.repo_manager.install(url, ref, options)
  end
  output "Success #{package.display_name}"

  if package.has_dependencies?
    output "Finding package dependencies..."
    install_missing_dependencies package.dependencies, options
    output "Finished finding package dependencies."
  end
end
resolve_name_by_registry(repo_name) click to toggle source
# File lib/social_snippet/api/install_repository_api.rb, line 3
def resolve_name_by_registry(repo_name)
  output "Finding #{repo_name}..."
  info = core.registry_client.repositories.find(repo_name)
  output "Found at #{info["url"]}"
  info["url"]
end

Private Instance Methods

resolve_reference_by_repo(repo) click to toggle source
# File lib/social_snippet/api/install_repository_api.rb, line 40
def resolve_reference_by_repo(repo)
  if repo.has_versions?
    output "Resolving #{display_name}'s version"
    repo.latest_version
  else
    output "No versions, use current reference"
    repo.current_ref
  end
end