Module: Gem::BundlerVersionFinder
- Defined in:
- lib/rubygems/bundler_version_finder.rb
Class Method Summary collapse
- .bundler_version ⇒ Object
- .bundler_version_with_reason ⇒ Object
- .compatible?(spec) ⇒ Boolean
- .filter!(specs) ⇒ Object
- .missing_version_message ⇒ Object
Class Method Details
.bundler_version ⇒ Object
6 7 8 9 10 11 12 |
# File 'lib/rubygems/bundler_version_finder.rb', line 6 def self.bundler_version version, _ = bundler_version_with_reason return unless version Gem::Version.new(version) end |
.bundler_version_with_reason ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/rubygems/bundler_version_finder.rb', line 14 def self.bundler_version_with_reason if v = ENV["BUNDLER_VERSION"] return [v, "`$BUNDLER_VERSION`"] end if v = bundle_update_bundler_version return if v == true return [v, "`bundle update --bundler`"] end v, lockfile = lockfile_version if v return [v, "your #{lockfile}"] end end |
.compatible?(spec) ⇒ Boolean
37 38 39 40 41 42 |
# File 'lib/rubygems/bundler_version_finder.rb', line 37 def self.compatible?(spec) return true unless spec.name == "bundler".freeze return true unless bundler_version = self.bundler_version spec.version.segments.first == bundler_version.segments.first end |
.filter!(specs) ⇒ Object
44 45 46 47 48 49 50 51 52 53 |
# File 'lib/rubygems/bundler_version_finder.rb', line 44 def self.filter!(specs) return unless bundler_version = self.bundler_version specs.reject! { |spec| spec.version.segments.first != bundler_version.segments.first } exact_match_index = specs.find_index { |spec| spec.version == bundler_version } return unless exact_match_index specs.unshift(specs.delete_at(exact_match_index)) end |
.missing_version_message ⇒ Object
28 29 30 31 32 33 34 35 |
# File 'lib/rubygems/bundler_version_finder.rb', line 28 def self. return unless vr = bundler_version_with_reason <<-EOS Could not find 'bundler' (#{vr.first}) required by #{vr.last}. To update to the latest version installed on your system, run `bundle update --bundler`. To install the missing version, run `gem install bundler:#{vr.first}` EOS end |