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 <j...@puppetlabs.com> wrote: > On Fri, Nov 30, 2012 at 4:30 AM, KomodoDave <dave.br...@ocado.com> 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 puppet-users@googlegroups.com. > To unsubscribe from this group, send email to > puppet-users+unsubscr...@googlegroups.com. > 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 puppet-users@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.