Module: Poise::Helpers::Inversion

Includes:
Utils::ResourceProviderMixin
Defined in:
lib/poise/helpers/inversion.rb,
lib/poise/helpers/inversion/options_provider.rb,
lib/poise/helpers/inversion/options_resource.rb

Overview

A mixin for dependency inversion in Chef.

Since:

  • 2.0.0

Defined Under Namespace

Modules: Provider, Resource

Class Method Summary collapse

Class Method Details

.provider_for(resource_type, node, provider_type) ⇒ Class

Find a specific provider class for a resource.

Examples:

Poise::Helpers::Inversion.provider_for(:my_resource, node, :my_provider)

Parameters:

  • resource_type (Symbol)

    Resource type in DSL format.

  • node (Chef::Node)

    Node to use for the lookup.

  • provider_type (Symbol)

    Provider type in DSL format.

Returns:

  • (Class)

Since:

  • 2.0.0



369
370
371
# File 'lib/poise/helpers/inversion.rb', line 369

def self.provider_for(resource_type, node, provider_type)
  provider_map(resource_type).get(node, provider_type.to_sym)
end

.provider_map(resource_type) ⇒ Chef::NodeMap

The provider map for a given resource type.

Examples:

Poise::Helpers::Inversion.provider_map(:my_resource)

Parameters:

  • resource_type (Symbol)

    Resource type in DSL format.

Returns:

  • (Chef::NodeMap)

Since:

  • 2.0.0



356
357
358
359
# File 'lib/poise/helpers/inversion.rb', line 356

def self.provider_map(resource_type)
  @provider_maps ||= {}
  @provider_maps[resource_type.to_sym] ||= Chef::NodeMap.new
end