class Librarian::Action::Update

Public Instance Methods

run() click to toggle source
# File lib/librarian/action/update.rb, line 12
def run
  unless lockfile_path.exist?
    raise Error, "Lockfile missing!"
  end
  previous_resolution = lockfile.load(lockfile_path.read)
  spec = specfile.read(previous_resolution.sources)
  changes = spec_change_set(spec, previous_resolution)
  manifests = changes.same? ? previous_resolution.manifests : changes.analyze
  partial_manifests = ManifestSet.deep_strip(manifests, dependency_names)
  unpinnable_sources = previous_resolution.sources - partial_manifests.map(&:source)
  unpinnable_sources.each(&:unpin!)

  resolution = resolver.resolve(spec, partial_manifests)
  persist_resolution(resolution)
end

Private Instance Methods

dependency_names() click to toggle source
# File lib/librarian/action/update.rb, line 30
def dependency_names
  options[:names]
end
resolver() click to toggle source
# File lib/librarian/action/update.rb, line 34
def resolver
  Resolver.new(environment)
end
spec_change_set(spec, lock) click to toggle source
# File lib/librarian/action/update.rb, line 38
def spec_change_set(spec, lock)
  SpecChangeSet.new(environment, spec, lock)
end