Module: Poise::Helpers::LazyDefault
- Included in:
- TemplateContent, Resource
- Defined in:
- lib/poise/helpers/lazy_default.rb
Overview
Resource mixin to allow lazyily-evaluated defaults in resource attributes. This is designed to be used with LWRPPolyfill or a similar #attributes method.
Class Method Summary collapse
-
.lazy(&block) ⇒ Chef::DelayedEvaluator
Create a lazyily-evaluated block.
Instance Method Summary collapse
-
#set_or_return(symbol, arg, validation) ⇒ Object
Override the default set_or_return to support lazy evaluation of the default value.
Class Method Details
.lazy(&block) ⇒ Chef::DelayedEvaluator
Create a lazyily-evaluated block.
61 62 63 |
# File 'lib/poise/helpers/lazy_default.rb', line 61 def lazy(&block) Chef::DelayedEvaluator.new(&block) end |
Instance Method Details
#set_or_return(symbol, arg, validation) ⇒ Object
Override the default set_or_return to support lazy evaluation of the default value. This only actually matters when it is called from a class level context via #attributes.
47 48 49 50 51 52 53 |
# File 'lib/poise/helpers/lazy_default.rb', line 47 def set_or_return(symbol, arg, validation) if LazyDefault.needs_polyfill? && validation && validation[:default].is_a?(Chef::DelayedEvaluator) validation = validation.dup validation[:default] = instance_eval(&validation[:default]) end super(symbol, arg, validation) end |