diff options
| author | Mike McQuaid | 2017-02-23 08:01:05 +0000 |
|---|---|---|
| committer | GitHub | 2017-02-23 08:01:05 +0000 |
| commit | 0b33428e79e6834fe7c8871953c8420be3c29f69 (patch) | |
| tree | 6fb25b78ba7a9fa5aed6cbe2769f4f55b3acfd8c /Library | |
| parent | 76ca97b4e73bf54dc98439ac3921cf27383722e2 (diff) | |
| parent | b4a2fe502cc8bef717e9f52efe5926cc27d1e9a6 (diff) | |
| download | brew-0b33428e79e6834fe7c8871953c8420be3c29f69.tar.bz2 | |
Merge pull request #2083 from kke/prepend_suitable_ruby_to_path
Prepend suitable ruby to path
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/requirements/ruby_requirement.rb | 36 |
1 files changed, 29 insertions, 7 deletions
diff --git a/Library/Homebrew/requirements/ruby_requirement.rb b/Library/Homebrew/requirements/ruby_requirement.rb index a890435a5..327c13170 100644 --- a/Library/Homebrew/requirements/ruby_requirement.rb +++ b/Library/Homebrew/requirements/ruby_requirement.rb @@ -8,16 +8,14 @@ class RubyRequirement < Requirement super end - satisfy build_env: false do - which_all("ruby").detect do |ruby| - version = /\d\.\d/.match Utils.popen_read(ruby, "--version") - next unless version - Version.create(version.to_s) >= Version.create(@version) - end + satisfy(build_env: false) { new_enough_ruby } + + env do + ENV.prepend_path "PATH", new_enough_ruby end def message - s = "Ruby #{@version} is required to install this formula." + s = "Ruby >= #{@version} is required to install this formula." s += super s end @@ -33,4 +31,28 @@ class RubyRequirement < Requirement name end end + + private + + def new_enough_ruby + rubies.detect { |ruby| new_enough?(ruby) } + end + + def rubies + rubies = which_all("ruby") + ruby_formula = Formula["ruby"] + if ruby_formula && ruby_formula.installed? + rubies.unshift ruby_formula.bin/"ruby" + end + rubies.uniq + end + + def new_enough?(ruby) + version = Utils.popen_read(ruby, "-e", "print RUBY_VERSION").strip + version =~ /^\d+\.\d+/ && Version.create(version) >= min_version + end + + def min_version + @min_version ||= Version.create(@version) + end end |
