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