Commit 931dffec authored by Léo-Paul Géneau's avatar Léo-Paul Géneau 👾

Fix hardcoded ruby version

parent c817d701
......@@ -156,12 +156,12 @@ class Recipe(object):
'RUBYLIB': os.environ.get('RUBYLIB', ''),
}
env = {
'GEM_HOME': '%(PREFIX)s/lib/ruby/gems/1.8' % s,
'GEM_HOME': ('%(PREFIX)s/lib/ruby/gems/' + self.ruby_version_dir_name) % s,
'RUBYLIB': self._join_paths(
'%(RUBYLIB)s',
'%(PREFIX)s/lib',
'%(PREFIX)s/lib/ruby',
'%(PREFIX)s/lib/site_ruby/1.8',
'%(PREFIX)s/lib/site_ruby/' + self.ruby_version_dir_name,
) % s,
'PATH': self._join_paths(
'%(PATH)s',
......@@ -173,6 +173,10 @@ class Recipe(object):
env.update({k: (v % env) for k, v in env_override})
return env
def _get_ruby_version_dir_name(self):
cmd = [self.ruby_executable, "'-e", "'puts Gem.user_dir'",]
return self.run(cmd).split('/')[-1]
def get_gem_dict(self, gem_str):
parsed_gem = gem_str.split('==', 1)
gem_dict = {'gemname': parsed_gem[0].strip()}
......@@ -324,6 +328,7 @@ class Recipe(object):
if int(self.version.split(".")[0]) < 2:
raise zc.buildout.UserError("Rubygems version must be >= 2.0.0")
self.ruby_version_dir_name = self._get_ruby_version_dir_name()
self._install_rubygems()
gem_executable = self.get_gem_executable(self.bindir)
......
......@@ -18,6 +18,7 @@ import zc.buildout
import rubygems
RUBYGEMS_DEFAULT_VERSION = '2.0.0'
RUBY_DEFAULT_VERSION = '2.2.0'
def touch(path):
......@@ -38,6 +39,7 @@ class fixture(object):
self.to_patch = (
('check_output', 'rubygems.subprocess.check_output'),
('clean_up', 'rubygems.Recipe._clean_up'),
('ruby_version', 'rubygems.Recipe._get_ruby_version_dir_name'),
('urlopen', 'rubygems.urllib.request.urlopen'),
('download', 'rubygems.Download'),
)
......@@ -47,6 +49,7 @@ class fixture(object):
('https://rubygems.org/rubygems/rubygems-%s.zip'
% RUBYGEMS_DEFAULT_VERSION).encode('utf-8')
)),
'ruby_version': RUBY_DEFAULT_VERSION,
}
self.patch_side_effect_dict = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment