From e63d008ae8223a5c17a4f7dc5fd2ed89bcdf9d5e Mon Sep 17 00:00:00 2001 From: Andrew Dunham Date: Sat, 16 Mar 2013 06:01:02 -0400 Subject: [PATCH] Fix --include-dependencies parameter on RubyGems >= 2.0.0 --- library/gem | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) mode change 100644 => 100755 library/gem diff --git a/library/gem b/library/gem old mode 100644 new mode 100755 index 7d566e9292..4270d3dfdc --- a/library/gem +++ b/library/gem @@ -66,6 +66,16 @@ gem: name=rake gem_source=/path/to/gems/rake-1.0.gem state=present import re +def get_rubygems_version(module): + cmd = [module.get_bin_path('gem', True), '--version'] + (rc, out, err) = module.run_command(cmd, check_rc=True) + + match = re.match(r'^(\d+)\.(\d+)\.(\d+)', out) + if not match: + return None + + return tuple(int(x) for x in match.groups()) + def get_installed_versions(module, remote=False): cmd = [ module.get_bin_path('gem', True) ] @@ -118,14 +128,21 @@ def install(module): if module.check_mode: return + + ver = get_rubygems_version(module) + major = ver[0] if ver else None + cmd = [ module.get_bin_path('gem', True) ] cmd.append('install') if module.params['version']: cmd.extend([ '--version', module.params['version'] ]) if module.params['repository']: cmd.extend([ '--source', module.params['repository'] ]) - if module.params['include_dependencies']: - cmd.append('--include-dependencies') + if not module.params['include_dependencies']: + cmd.append('--ignore-dependencies') + else: + if major and major < 2: + cmd.append('--include-dependencies') cmd.append('--no-rdoc') cmd.append('--no-ri') cmd.append(module.params['gem_source'])