puppetlabs/puppetlabs-stdlib — pull request #117 by offlinehacker (2013-01-02 12:23:00+00:00)
Title: Added getparam function, for getting resource parameter's value

As far as i know there's no other puppet-dsl-like way to get parameter of defined resource, so that's why i implemented getparam function, which takes resource reference and parameter name and returns parameter value.

Here's another example why this function is really useful:

```ruby
define config($path, $config_param1, $config_param2) { }

define example_resource($config) {
$path = getparam($config, "path")

notice("Path is $path")
}

define example_resource2($example_resource, $config = getparam($example_resource, "config")) {
$config_param1 = getparam($config, "config_param1")

notice("Config parameter is $config_param1")
}

define example_resource3($example_resource, $config = getparam($example_resource, "config")) {
$config_param2 = getparam($config, "config_param2")

notice("Config parameter is $config_param2")
}

class test_getparam {

config { "config_instance":
path => "/some/config/path",
config_param1 => "someconfigtext1",
config_param2 => "someconfigtext2",
}

example_resource { "example_resource_instance":
config => Config["config_instance"]
}

example_resource2 { "example_resource_instance":
example_resource => Example_resource["example_resource_instance"]
}

example_resource3 { "example_resource_instance":
example_resource => Example_resource2["example_resource_instance"]
}
}

class { "test_getparam": }
```

If there's another, better way to get the job done, please do tell me, thanks!