Puppet Class: psick::rbenv

Defined in:
manifests/rbenv.pp

Overview

Parameters:

  • module (Enum['jdowning']) (defaults to: 'jdowning')

    The name of the module to use to manage rbenv. Currently only jdowning/rbenv supported.

  • default_ruby_version (Optional[String]) (defaults to: '2.4.2')

    Default ruby version to use under rbenv. When set (default is ‘2.4.2’) the relevant rbenv::build is created

  • Where

    rbenv will be installed to.

  • owner (Optional[String]) (defaults to: undef)

    This defines who owns the rbenv install directory.

  • group (Optional[String]) (defaults to: undef)

    This defines the group membership for rbenv.

  • latest (Optional[String]) (defaults to: undef)

    This defines whether the rbenv $install_dir is kept up-to-date.

  • plugin_hash (Hash) (defaults to: {})

    An hash of resources data to be passed to rbenv::plugin

  • build_hash (Hash) (defaults to: {})

    An hash of resources data to be passed to rbenv::build

  • gem_hash (Hash) (defaults to: {})

    An hash of resources data to be passed to rbenv::gem

  • manage (Boolean) (defaults to: $::psick::manage)

    If to actually manage ANY resource from this class. When set to false, no resource from this class is managed whatever are the other parameters.

  • auto_prereq (Boolean) (defaults to: $::psick::auto_prereq)

    If to automatically install eventual dependencies required by this class. Set to false if you have problems with duplicated resources. If so, you’ll need to ensure the needed prerequisites are present.

  • no_noop (Boolean) (defaults to: false)

    Set noop metaparameter to false to all the resources of this class. This overrides any noop setting which might be in place.

  • ensure (Variant[Boolean,String]) (defaults to: present)
  • install_dir (Optional[String]) (defaults to: undef)


23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# File 'manifests/rbenv.pp', line 23

class psick::rbenv (

  Variant[Boolean,String] $ensure        = present,
  Enum['jdowning'] $module               = 'jdowning',

  Optional[String] $default_ruby_version = '2.4.2',
  Optional[String] $install_dir          = undef,
  Optional[String] $owner                = undef,
  Optional[String] $group                = undef,
  Optional[String] $latest               = undef,

  Hash $plugin_hash                      = {},
  Hash $build_hash                       = {},
  Hash $gem_hash                         = {},

  Boolean $manage                        = $::psick::manage,
  Boolean $auto_prereq                   = $::psick::auto_prereq,
  Boolean $no_noop                       = false,
) {

  if $manage {
    if !$::psick::noop_mode and $no_noop {
      info('Forced no-noop mode.')
      noop(false)
    }

    # Installation management
    case $module {
      'jdowning': {
        class { 'rbenv':
          manage_deps => $auto_prereq,
          install_dir => $install_dir,
          owner       => $owner,
          group       => $group,
          latest      => $latest,
        }
        $default_gem_options = {
          ruby_version => $default_ruby_version,
        }
        if $default_ruby_version and $auto_prereq {
          rbenv::plugin { 'rbenv/ruby-build': }
          rbenv::build { $default_ruby_version:
            global => true,
          }
        }
        $plugin_hash.each |$k,$v| {
          rbenv::plugin { $k:
            * => $v,
          }
        }
        $build_hash.each |$k,$v| {
          rbenv::build { $k:
            * => $v,
          }
        }
        $gem_hash.each |$k,$v| {
          rbenv::gem { $k:
            * => $default_gem_options + $v,
          }
        }
      }
      default: {
        contain ::rbenv
      }
    }
  }
}