Module: Poise::Helpers::Inversion::Resource
- Defined in:
- lib/poise/helpers/inversion.rb
Overview
Resource implementation for Poise::Helpers::Inversion.
Class Method Summary collapse
-
.create_inversion_options_resource!(name)
Create resource and provider classes for an options resource.
-
.inversion_options_provider_class ⇒ Object
Options provider class.
- .inversion_options_resource(val = nil) ⇒ Object
-
.inversion_options_resource_class ⇒ Object
Options resource class.
-
.provides(name) ⇒ Object
Wrap #provides() to create an options resource if desired.
Instance Method Summary collapse
- #options(provider = nil, val = nil) ⇒ Object
-
#provider(val = nil) ⇒ Class
Allow setting the provider directly using the same names as the attribute settings.
Class Method Details
.create_inversion_options_resource!(name)
This method returns an undefined value.
Create resource and provider classes for an options resource.
111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 |
# File 'lib/poise/helpers/inversion.rb', line 111 def (name) enclosing_class = self = :"#{name}_options" # Create the resource class. @inversion_options_resource_class = Class.new(Chef::Resource) do include Poise::Helpers::Inversion::OptionsResource define_singleton_method(:name) do "#{enclosing_class}::OptionsResource" end provides() inversion_resource(name) end # Create the provider class. @inversion_options_provider_class = Class.new(Chef::Provider) do include Poise::Helpers::Inversion::OptionsProvider define_singleton_method(:name) do "#{enclosing_class}::OptionsProvider" end provides() end end |
.inversion_options_provider_class ⇒ Object
Options provider class.
92 93 94 |
# File 'lib/poise/helpers/inversion.rb', line 92 def @inversion_options_provider_class end |
.inversion_options_resource ⇒ Boolean .inversion_options_resource(val) ⇒ Boolean
102 103 104 105 |
# File 'lib/poise/helpers/inversion.rb', line 102 def (val=nil) @poise_inversion_options_resource = val unless val.nil? @poise_inversion_options_resource end |
.inversion_options_resource_class ⇒ Object
Options resource class.
90 91 92 |
# File 'lib/poise/helpers/inversion.rb', line 90 def @inversion_options_resource_class end |
.provides(name) ⇒ Object
Wrap #provides() to create an options resource if desired.
return [void]
137 138 139 140 |
# File 'lib/poise/helpers/inversion.rb', line 137 def provides(name) (name) if super if defined?(super) end |
Instance Method Details
#options(val = nil) ⇒ Hash #options(provider, val = nil) ⇒ Hash
59 60 61 62 63 64 65 66 67 |
# File 'lib/poise/helpers/inversion.rb', line 59 def (provider=nil, val=nil) key = :options if !val && provider.is_a?(Hash) val = provider elsif provider key = :"options_#{provider}" end set_or_return(key, val ? Mash.new(val) : val, kind_of: Hash, default: lazy { Mash.new }) end |
#provider(val = nil) ⇒ Class
Allow setting the provider directly using the same names as the attribute settings.
78 79 80 81 82 83 84 85 |
# File 'lib/poise/helpers/inversion.rb', line 78 def provider(val=nil) if val && !val.is_a?(Class) provider_class = Poise::Helpers::Inversion.provider_for(resource_name, node, val) Chef::Log.debug("[#{self}] Checking for an inversion provider for #{val}: #{provider_class && provider_class.name}") val = provider_class if provider_class end super end |