lib/keep_up/bundle.rb in keep_up-0.5.1 vs lib/keep_up/bundle.rb in keep_up-0.6.0

- old
+ new

@@ -13,24 +13,39 @@ def direct_dependencies gemspec_dependencies + gemfile_dependencies end def apply_updated_dependency(dependency) - puts "Updating #{dependency.name} to #{dependency.version}" + report_intent dependency update_gemfile_contents(dependency) update_gemspec_contents(dependency) - update_lockfile(dependency) + result = update_lockfile(dependency) + report_result dependency, result + result end def check? bundler_definition.to_lock == File.read('Gemfile.lock') end private attr_reader :definition_builder + def report_intent(dependency) + print "Updating #{dependency.name}" + end + + def report_result(dependency, result) + if result + puts " to #{result.version}" + else + puts " to #{dependency.version}" + puts 'Update failed' + end + end + def gemfile_dependencies build_dependencies bundler_lockfile.dependencies end def gemspec_dependencies @@ -96,15 +111,18 @@ raise '???' end end end + # Update lockfile and return resulting spec, or false in case of failure def update_lockfile(update) Bundler.clear_gemspec_cache - definition_builder.build(gems: [update.name]).lock('Gemfile.lock') - true + definition = definition_builder.build(gems: [update.name]) + definition.lock('Gemfile.lock') + current = locked_spec(update) + result = definition.specs.find { |it| it.name == update.name } + result if result.version > current.version rescue Bundler::VersionConflict - puts 'Update failed' false end end end