Sure thing, here you are:
## Usage:## artifacts()## Returns:## Puppet hash containing
artifact info.## @author N David Brownmodule Puppet::Parser::Functions
newfunction(:artifacts, :type => :rvalue) do |args|
# Info common to all artifacts.
_common = {
'pkg' => 'tar.gz',
'ver' => '7.1.0.fuse-041',
'repo' =>
'http://maven/nexus/content/groups/fusesource-features-group'
}
# Bespoke info for artifacts.
_artifacts = {
'fabric' => {
'id' => 'fuse-fabric',
'grp' => 'org.fusesource.fabric'
}.merge!(_common), # merge in common artifact info
'fmc' => {
'id' => 'fmc-distro',
'grp' => 'org.fusesource.fmc'
}.merge!(_common) # merge in common artifact info
}
return _artifacts
endend
Earlier I was pointing out that moving _common and _artifacts above the
module... line means they can't be accessed by the new function definition.
I thought that might work to make them accessible from a require in a
standard Ruby file, having seen require be used at that scope in example
Puppet custom functions in the official documentation.
Cheers,
Dave
-- N David Brown | Software Developer | Development Support and Integration
Team | Ocado Ltd | T: 01707 382197 | M: 07908 623472
On 30 November 2012 16:15, Jeff McCune <[email protected]> wrote:
> On Fri, Nov 30, 2012 at 4:30 AM, KomodoDave <[email protected]> wrote:
> > I have a hash defined containing some static information. This exists
> within
> > a custom function for Puppet.
> >
> > I wish to share this code with a ruby test harness I'm writing; there
> will
> > be additional resources that both Puppet and the test harness can make
> use
> > of.
> >
> > My question is - what's the best way to achieve this?
> >
> > I've seen in custom function examples that require statements are
> specified
> > outside the puppet custom function template. However, if I try to move my
> > static hash definition to this scope then it's no longer visible to the
> > custom function.
> >
> > How may I access static info like this from standard ruby, and what
> scope in
> > the puppet custom function definition should it occupy?
> >
> > Thank you for your time.
>
> I'd factor out the static information into a class that both the
> function and the test harness are able to instantiate. Do you have
> your code published somewhere we could comment on it? This might make
> it easier to make a suggestion.
>
> -Jeff
>
> --
> You received this message because you are subscribed to the Google Groups
> "Puppet Users" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/puppet-users?hl=en.
>
>
This message has been checked for all known viruses by the Postini Virus
Control Centre.
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/puppet-users?hl=en.