On Tuesday, July 17, 2012 2:29:55 PM UTC-5, ZJE wrote:
>
>
> On Tuesday, July 17, 2012 2:02:10 PM UTC-5, ZJE wrote:
>>
>>
>> On Tuesday, July 17, 2012 12:29:52 PM UTC-5, Jeff McCune wrote:
>>>
>>> On Tue, Jul 17, 2012 at 9:49 AM, Nan Liu <> wrote:
>>>
>>>> On Tue, Jul 17, 2012 at 8:34 AM, ZJE <> wrote:
>>>> > I'd like to reuse the same ruby code in a type across all the 
>>>> providers. For
>>>> > the type I'm writing, a certain portion of the "exists?" method would 
>>>> be
>>>> > repeated across all providers. From looking at the documentation,
>>>> > http://docs.puppetlabs.com/guides/custom_types.html, it's not quite 
>>>> clear
>>>> > how I can accomplish this.  I've looked at writing a function, but 
>>>> that
>>>> > seems to be for a larger scope than I'd like (only the providers in 
>>>> that
>>>> > module would need this code) and requires a restart of the puppet 
>>>> master.
>>>>
>>>> Look at puppetlabs registry provider[1] for an example where
>>>> modules/registry is shared between registry_key and registry_value.
>>>
>>>
>>> We've actually got this wrong in the registry module currently.  Shared 
>>> utility code should not go into the Puppet namespace at all.
>>>
>>> The convention we've "standardized" [1] on is:
>>>
>>> "Start with PuppetX, put the CamelCase of your author name (from the 
>>> Modulefile), then put the actual CamelCase of your module name"
>>>
>>> So the registry module should be PuppetX::PuppetLabs::Registry living 
>>> in '<modulepath>/registry/lib/puppet_x/puppet_labs/registry.rb'
>>>
>>> Puppet::Modules::Registry is a bad example and should not be followed.
>>>
>>> [1] http://projects.puppetlabs.com/issues/14149
>>>
>>> -Jeff
>>>
>>
>> Thanks Nan and Jeff for the replies! I'm new to both puppet and ruby, so 
>> let me sketch out what I'm thinking I should do based on the replies.
>>
>> Let's say I'm creating a type FOO in module MODULE. I should then create 
>> a file in $confdir/modules/MODULE/lib/puppet/shared.rb
>> Inside this shared.rb, I would then implement my shared methods in the 
>> PuppetX::ZJE::FOO module
>>
>> For some additional info, I'm using puppet 3.0.0rc3
>> Thanks again for all the help!
>>
>
> Sorry, don't know how I missed the path in your earlier code - so it 
> should be:
> <modulepath>/MODULE/lib/puppet_x/ZJE/shared.rb?
>
> Thanks!
>  
>

I'm still a little confused - is there an example of a type/provider where 
this is done correctly? 
Thanks!

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/puppet-users/-/1124IRjcXJ8J.
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.

Reply via email to