Defined Type: rbenv::gem

Defined in:
manifests/gem.pp

Overview

Install a gem under rbenv for a certain user’s ruby version. Requires rbenv::compile for the passed in user and ruby version

Parameters:

  • user (Any)
  • ruby (Any)
  • gem (Any) (defaults to: $title)
  • home (Any) (defaults to: '')
  • root (Any) (defaults to: '')
  • ensure (Any) (defaults to: present)


4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'manifests/gem.pp', line 4

define rbenv::gem(
  $user,
  $ruby,
  $gem    = $title,
  $home   = '',
  $root   = '',
  $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,
    ruby    => $ruby,
    rbenv   => "${root_path}/versions/${ruby}",
    require => Exec["rbenv::compile ${user} ${ruby}"],
  }
}