Module: Poise::Helpers::Subresources::Child

Extended by:
ClassMethods
Defined in:
lib/poise/helpers/subresources/child.rb

Overview

A resource mixin for child subresources.

Since:

  • 1.0.0

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.parent_attribute(name, type: Chef::Resource, optional: false, auto: true, default: nil) Originally defined in module ClassMethods

This method returns an undefined value.

Create a new kind of parent link.

Parameters:

  • name (Symbol)

    Name of the relationship. This becomes a method name on the resource instance.

  • type (Class) (defaults to: Chef::Resource)

    Class of the parent.

  • optional (Boolean) (defaults to: false)

    If the parent is optional.

  • auto (Boolean) (defaults to: true)

    If the parent is auto-detected.

Since:

  • 2.0.0

.parent_attributesHash<Symbol, Class> Originally defined in module ClassMethods

Return the name of all parent relationships on this class.

Returns:

  • (Hash<Symbol, Class>)

Since:

  • 2.0.0

#parent_autoBoolean #parent_auto(val) ⇒ Boolean Originally defined in module ClassMethods

Overloads:

  • #parent_autoBoolean

    Get the auto-detect mode for the default parent link on this resource.

    Returns:

    • (Boolean)
  • #parent_auto(val) ⇒ Boolean

    Set the auto-detect mode for the default parent link on this resource.

    Parameters:

    • val (Boolean)

      Mode to set.

    Returns:

    • (Boolean)

Since:

  • 1.0.0

#parent_defaultObject, Chef::DelayedEvaluator #parent_default(val) ⇒ Object, Chef::DelayedEvaluator Originally defined in module ClassMethods

Overloads:

  • #parent_defaultObject, Chef::DelayedEvaluator

    Get the default value for the default parent link on this resource.

    Returns:

    • (Object, Chef::DelayedEvaluator)

    Since:

    • 2.3.0

  • #parent_default(val) ⇒ Object, Chef::DelayedEvaluator

    Set the default value for the default parent link on this resource.

    Parameters:

    • val (Object, Chef::DelayedEvaluator)

      Default value to set.

    Returns:

    • (Object, Chef::DelayedEvaluator)

    Since:

    • 2.3.0

Since:

  • 1.0.0

#parent_optionalBoolean #parent_optional(val) ⇒ Boolean Originally defined in module ClassMethods

Overloads:

  • #parent_optionalBoolean

    Get the optional mode for the default parent link on this resource.

    Returns:

    • (Boolean)
  • #parent_optional(val) ⇒ Boolean

    Set the optional mode for the default parent link on this resource.

    Parameters:

    • val (Boolean)

      Mode to set.

    Returns:

    • (Boolean)

Since:

  • 1.0.0

#parent_typeClass, Symbol #parent_type(type) ⇒ Class, Symbol Originally defined in module ClassMethods

Overloads:

  • #parent_typeClass, Symbol

    Get the class of the default parent link on this resource.

    Returns:

    • (Class, Symbol)
  • #parent_type(type) ⇒ Class, Symbol

    Set the class of the default parent link on this resource.

    Parameters:

    • type (Class, Symbol)

      Class to set.

    Returns:

    • (Class, Symbol)

Since:

  • 1.0.0

Instance Method Details

#parentChef::Resource? #parent(val) ⇒ Chef::Resource?

Overloads:

  • #parentChef::Resource?

    Get the parent resource for this child. This may be nil if the resource is set to parent_optional = true.

    Returns:

    • (Chef::Resource, nil)
  • #parent(val) ⇒ Chef::Resource?

    Set the parent resource. The parent can be set as resource object, a string (either a bare resource name or a type[name] string), or a type:name hash.

    Parameters:

    • val (String, Hash, Chef::Resource)

      Parent resource to set.

    Returns:

    • (Chef::Resource, nil)

Since:

  • 1.0.0



63
64
65
66
67
68
69
# File 'lib/poise/helpers/subresources/child.rb', line 63

def parent(*args)
  # Lie about this method if the parent type is true.
  if self.class.parent_type == true
    raise NoMethodError.new("undefined method `parent' for #{self}")
  end
  _parent(:parent, self.class.parent_type, self.class.parent_optional, self.class.parent_auto, self.class.parent_default, *args)
end