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
4 5 6 7 8 9 10 |
# File 'lib/rubygems/bundler_version_finder.rb', line 4 def self.bundler_version version, _ = bundler_version_with_reason return unless version Gem::Version.new(version) end |
.bundler_version_with_reason ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/rubygems/bundler_version_finder.rb', line 12 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
35 36 37 38 39 40 |
# File 'lib/rubygems/bundler_version_finder.rb', line 35 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
42 43 44 45 46 47 48 49 50 51 |
# File 'lib/rubygems/bundler_version_finder.rb', line 42 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
26 27 28 29 30 31 32 33 |
# File 'lib/rubygems/bundler_version_finder.rb', line 26 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 |