Skip to content

Commit

Permalink
Merge pull request #34 from th3hunt/master
Browse files Browse the repository at this point in the history
Fixes bundler gem install in environments with no pre-existing ruby interpreter
  • Loading branch information
alup committed Sep 23, 2012
2 parents c33eca8 + 033e31b commit 350e622
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 16 deletions.
6 changes: 3 additions & 3 deletions lib/puppet/provider/rbenvgem/default.rb
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ def gem_name
resource[:gemname]
end

def gem(*args)
exe = resource[:rbenv] + '/bin/gem'
su('-', resource[:user], '-c', [exe, *args].join(' '))
def gem(*args)
env = 'rbenv shell ' + resource[:ruby]
su('-', resource[:user], '-c', [env, 'gem', *args].join(' '))
end

def list(where = :local)
Expand Down
4 changes: 2 additions & 2 deletions lib/puppet/type/rbenvgem.rb
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ def insync?(current)
desc 'The Gem name'
end

newparam(:rbenv) do
desc 'The rbenv root'
newparam(:ruby) do
desc 'The ruby interpreter'
end

newparam(:user) do
Expand Down
2 changes: 0 additions & 2 deletions manifests/compile.pp
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,6 @@
gem => 'bundler',
user => $user,
ruby => $ruby,
home => $home_path,
root => $root_path,
}

# Set default global ruby version for rbenv, if requested
Expand Down
12 changes: 3 additions & 9 deletions manifests/gem.pp
Original file line number Diff line number Diff line change
Expand Up @@ -4,25 +4,19 @@
define rbenv::gem(
$user,
$ruby,
$gem = $title,
$home = '',
$root = '',
$gem = $title,
$ensure = present,
) {

# Workaround http://projects.puppetlabs.com/issues/9848
$home_path = $home ? { '' => "/home/${user}", default => $home }
$root_path = $root ? { '' => "${home_path}/.rbenv", default => $root }

if ! defined( Exec["rbenv::compile ${user} ${ruby}"] ) {
fail("Rbenv-Ruby ${ruby} for user ${user} not found in catalog")
}

rbenvgem {"${user}/${ruby}/${gem}/${ensure}":
ensure => $ensure,
user => $user,
gemname => $gem,
rbenv => "${root_path}/versions/${ruby}",
gemname => $gem,
ruby => $ruby,
require => Exec["rbenv::compile ${user} ${ruby}"],
}
}

0 comments on commit 350e622

Please sign in to comment.