class Bootboot::RubySource
Public Instance Methods
ruby_spec_name()
click to toggle source
The spec name for Ruby changed from “ruby0” to “Ruby0” between Bundler 1.17 and 2.0, so we want to use the Ruby spec name from Metadata so Bootboot
works across Bundler versions
# File lib/bootboot/ruby_source.rb, line 10 def ruby_spec_name @ruby_spec_name ||= begin metadata = Bundler::Source::Metadata.new ruby_spec = metadata.specs.find { |s| s.name[/[R|r]uby\0/] } # Default to Bundler > 2 in case the Bundler internals change ruby_spec ? ruby_spec.name : "Ruby\0" end end
specs()
click to toggle source
# File lib/bootboot/ruby_source.rb, line 19 def specs Bundler::Index.build do |idx| # If the ruby version specified in the Gemfile is different from the # Ruby version currently running, we want to build a definition without # a lockfile (so that `ruby_version` in the Gemfile isn't overridden by # the lockfile) and get its `ruby_version`. This will be used both # during dependency resolution so that we can pretend the intended Ruby # version is present, as well as when updating the lockfile itself. ruby_version = Bundler::Definition.build(Bootboot::GEMFILE, nil, false).ruby_version ruby_version ||= Bundler::RubyVersion.system ruby_spec = Gem::Specification.new(ruby_spec_name, ruby_version.to_gem_version_with_patchlevel) ruby_spec.source = self idx << ruby_spec end end
to_s()
click to toggle source
# File lib/bootboot/ruby_source.rb, line 35 def to_s "Bootboot plugin Ruby source" end