module SocialSnippet::Api::UpdateRepositoryApi

Public Instance Methods

create_new_version_package(driver, new_version) click to toggle source
# File lib/social_snippet/api/update_repository_api.rb, line 48
def create_new_version_package(driver, new_version)
  output "Bumping version into #{new_version}"
  core.repo_manager.create_package driver, new_version
end
update_all_repositories(options = {}) click to toggle source

Update all installed repositories $ sspm update

# File lib/social_snippet/api/update_repository_api.rb, line 23
def update_all_repositories(options = {})
  core.repo_manager.each_repo do |repo|
    update_repository repo.name, options
  end
end
update_repository(name, options = {}) click to toggle source

Update a repository $ sspm update repo-name

# File lib/social_snippet/api/update_repository_api.rb, line 5
def update_repository(name, options = {})
  unless core.repo_manager.exists?(name)
    raise "ERROR: #{name} is not installed"
  end

  output "Fetching update for #{name}"
  repo = core.repo_manager.find_repository(name)
  driver = core.driver_factory.clone(repo.url)
  # reload repository
  repo = core.repo_manager.update_repository(driver, repo.url)

  unless update_repository_for_each_minor_version(driver, repo, options)
    output "Everything up-to-date"
  end
end
update_repository_for_each_minor_version(driver, repo, options) click to toggle source
# File lib/social_snippet/api/update_repository_api.rb, line 29
def update_repository_for_each_minor_version(driver, repo, options)
  repo.package_minor_versions.any? do |minor_version|
    latest_version = driver.latest_version(minor_version)
    next false if core.repo_manager.exists?(repo.name, latest_version)

    output "Updating #{repo.name}##{minor_version}.x"
    package = create_new_version_package(driver, latest_version)
    output "Success #{package.display_name}"

    if package.has_dependencies?
      output "Updating #{package.display_name}'s dependencies"
      install_missing_dependencies package.dependencies, options
      output "Finish updating #{package.display_name}'s dependencies"
    end

    true
  end
end