lib/drg/tasks/active_pinner.rb in drg-0.16.0 vs lib/drg/tasks/active_pinner.rb in drg-1.0.0
- old
+ new
@@ -12,33 +12,39 @@
@gemfile = Gemfile.new
@versions = {}
end
def perform(gem_name = nil)
+ updated_gems = []
if gem_name
- update gem_name
+ updated_gems << update(gem_name)
else
Updater.new.perform do |gems|
load_versions gems
- gems.each &method(:update)
+ gems.each do |gem|
+ updated_gems << update(gem)
+ end
end
end
+ updated_gems.compact!
log %Q(Done)
+ log %Q(You may want to run: "bundle update #{updated_gems.join ' '}") if updated_gems.any?
gemfile.write if gemfile.saved_lines.any?
end
# @note calls #latest_minor_version and #latest_patch_version
+ # @returns [nil|String]
def update(gem_name)
spec = ::Bundler.locked_gems.specs.find { |spec| spec.name == gem_name }
gem = spec && gemfile.find_by_name(spec.name)
- if gem
- latest_version = public_send("latest_#{type}_version", spec.name, spec.version)
- if latest_version
- log %Q(Updating "#{spec.name}" from #{spec.version.to_s} to #{latest_version})
- gemfile.update gem, latest_version
- else
- log %Q(No newer #{type} versions found for "#{spec.name}")
- end
+ return nil unless gem
+ latest_version = public_send("latest_#{type}_version", spec.name, spec.version)
+ if latest_version
+ log %Q(Updating "#{spec.name}" from #{spec.version.to_s} to #{latest_version})
+ gemfile.update gem, latest_version
+ spec.name
+ else
+ log %Q(No newer #{type} versions found for "#{spec.name}"), :grey
end
end
#
# Private