diff options
| author | Naoto Kaneko | 2017-02-27 14:23:53 +0900 |
|---|---|---|
| committer | Naoto Kaneko | 2017-02-27 14:23:53 +0900 |
| commit | 928eaca26720fd38b07c1e7df3f9f567477d48db (patch) | |
| tree | c08fd030cca960e74bab72b59ce057684e554334 /Library/Homebrew/requirements | |
| parent | ccc9b2dc6dc27026673db3c8871c691be9541342 (diff) | |
| parent | e3f4701f385c286a2cc72c5d07870cc9a6ce0bf4 (diff) | |
| download | brew-928eaca26720fd38b07c1e7df3f9f567477d48db.tar.bz2 | |
Merge branch 'master' into exclude-executable-metafiles
Added tests in keg_test and pathname_test was
moved into keg_spec and pathname_spec.
Diffstat (limited to 'Library/Homebrew/requirements')
| -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 |
