class KuberKit::ArtifactsSync::ArtifactUpdater

Constants

ResolverNotFoundError

Public Instance Methods

add_default_resolvers() click to toggle source
# File lib/kuber_kit/artifacts_sync/artifact_updater.rb, line 33
def add_default_resolvers
  use_resolver(git_artifact_resolver, artifact_class: KuberKit::Core::Artifacts::Git)
  use_resolver(null_artifact_resolver, artifact_class: KuberKit::Core::Artifacts::Local)
end
reset!() click to toggle source
# File lib/kuber_kit/artifacts_sync/artifact_updater.rb, line 38
def reset!
  @@resolvers = {}
end
update(shell, artifact) click to toggle source
# File lib/kuber_kit/artifacts_sync/artifact_updater.rb, line 21
def update(shell, artifact)
  add_default_resolvers

  resolver = @@resolvers[artifact.class]

  ui.print_debug "ArtifactUpdater", "Updating artifact #{artifact.name.to_s.green}"
  
  raise ResolverNotFoundError, "Can't find resolver for artifact #{artifact}" if resolver.nil?

  resolver.resolve(shell, artifact)
end
use_resolver(artifact_resolver, artifact_class:) click to toggle source
# File lib/kuber_kit/artifacts_sync/artifact_updater.rb, line 11
def use_resolver(artifact_resolver, artifact_class:)
  @@resolvers ||= {}

  if !artifact_resolver.is_a?(KuberKit::ArtifactsSync::AbstractArtifactResolver)
    raise ArgumentError.new("should be an instance of KuberKit::ArtifactsSync::AbstractArtifactResolver, got: #{artifact_resolver.inspect}")
  end

  @@resolvers[artifact_class] = artifact_resolver
end