summaryrefslogtreecommitdiff
path: root/puppet/modules/ruby/manifests/init.pp
blob: 8d8ae48e485e8ad40d33fe667619abbc1b5c265b (plain)
1
2
3
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
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
# Class: ruby
#
# This class installs Ruby
#
# Parameters:
#
# version: (default installed)
# Set the version of Ruby to install
#
# Sample Usage:
#
# For a standard install using the latest ruby, simply do:
#
# class { 'ruby': }
#
# On Debian this is equivilant to
# $ apt-get install ruby
#
# To install a specific version of ruby, simply do:
#
# class { 'ruby':
#    ruby_version => '1.8.7',
# }
#
# Supported versions: 1.8, 1.8.7, 1.9, 1.9.1, 1.9.3
#
# To install the development files, you can do:
#
# class { 'ruby': install_dev => true }

class ruby (
  $ruby_version      = '',
  $version           = 'installed',
  $install_dev       = false
)
{

  case $::operatingsystem {
    'redhat', 'suse': {
      $ruby_package='ruby'
      $ruby_dev='ruby-devel'
    }
    'debian', 'ubuntu': {
      case $ruby_version {
        '1.8', '1.8.7': {
          $ruby_package = 'ruby1.8'
          $ruby_dev = [ 'ruby1.8-dev', 'rake' ]
        }
        '1.9.1': {
          $ruby_package = 'ruby1.9.1'
          $ruby_dev = [ 'ruby1.9.1-dev', 'rake' ]
        }
        '1.9', '1.9.3': {
          $ruby_package = 'ruby1.9.3'
          $ruby_dev = [ 'ruby-dev', 'rake' ]
        }
        default: {
          $ruby_package = 'ruby'
          $ruby_dev = [ 'ruby-dev', 'rake' ]
        }
      }
    }
  }

  package{ $ruby_package:
    ensure => $version,
  }

  if $install_dev {
    ensure_packages($ruby_dev)
  }
}