diff options
author | Jay Mundrawala <jdmundrawala@gmail.com> | 2015-03-25 14:53:56 -0700 |
---|---|---|
committer | Jay Mundrawala <jdmundrawala@gmail.com> | 2015-03-25 14:53:56 -0700 |
commit | be67482cf2b8819a821bae96c8abd37a649e4c1c (patch) | |
tree | 80a5a1186beaff747ac196e1a648965b9879f1bf /lib/chef/mixin | |
parent | b6eb10f36ae82f0bcf56a04963034abc4f70fc7c (diff) | |
download | chef-be67482cf2b8819a821bae96c8abd37a649e4c1c.tar.gz |
Revert "Merge pull request #2956 from chef/lcg/deploy-fixes"
This reverts commit 2603e2153d6ab50179d2278025a51579edb9033f, reversing
changes made to a7f5c92960aedf8d5bfc71abbce430ab075e016a.
Conflicts:
CHANGELOG.md
Diffstat (limited to 'lib/chef/mixin')
-rw-r--r-- | lib/chef/mixin/params_validate.rb | 61 |
1 files changed, 19 insertions, 42 deletions
diff --git a/lib/chef/mixin/params_validate.rb b/lib/chef/mixin/params_validate.rb index baf210bfc5..78d72dc801 100644 --- a/lib/chef/mixin/params_validate.rb +++ b/lib/chef/mixin/params_validate.rb @@ -81,58 +81,34 @@ class Chef DelayedEvaluator.new(&block) end - NULL_ARG = Object.new - - def nillable_set_or_return(symbol, arg, validation) + def set_or_return(symbol, arg, validation) iv_symbol = "@#{symbol.to_s}".to_sym - if NULL_ARG.equal?(arg) - if self.instance_variable_defined?(iv_symbol) == true - get_ivar(iv_symbol, symbol, validation) + if arg == nil && self.instance_variable_defined?(iv_symbol) == true + ivar = self.instance_variable_get(iv_symbol) + if(ivar.is_a?(DelayedEvaluator)) + validate({ symbol => ivar.call }, { symbol => validation })[symbol] else - # on access we create the iv and set it to nil for back-compat - set_ivar(iv_symbol, symbol, nil, validation) + ivar end else - set_ivar(iv_symbol, symbol, arg, validation) - end - end + if(arg.is_a?(DelayedEvaluator)) + val = arg + else + val = validate({ symbol => arg }, { symbol => validation })[symbol] - def set_or_return(symbol, arg, validation) - iv_symbol = "@#{symbol.to_s}".to_sym - if arg == nil && self.instance_variable_defined?(iv_symbol) == true - get_ivar(iv_symbol, symbol, validation) - else - set_ivar(iv_symbol, symbol, arg, validation) + # Handle the case where the "default" was a DelayedEvaluator. In + # this case, the block yields an optional parameter of +self+, + # which is the equivalent of "new_resource" + if val.is_a?(DelayedEvaluator) + val = val.call(self) + end + end + self.instance_variable_set(iv_symbol, val) end end private - def get_ivar(iv_symbol, symbol, validation) - ivar = self.instance_variable_get(iv_symbol) - if(ivar.is_a?(DelayedEvaluator)) - validate({ symbol => ivar.call }, { symbol => validation })[symbol] - else - ivar - end - end - - def set_ivar(iv_symbol, symbol, arg, validation) - if(arg.is_a?(DelayedEvaluator)) - val = arg - else - val = validate({ symbol => arg }, { symbol => validation })[symbol] - - # Handle the case where the "default" was a DelayedEvaluator. In - # this case, the block yields an optional parameter of +self+, - # which is the equivalent of "new_resource" - if val.is_a?(DelayedEvaluator) - val = val.call(self) - end - end - self.instance_variable_set(iv_symbol, val) - end - # Return the value of a parameter, or nil if it doesn't exist. def _pv_opts_lookup(opts, key) if opts.has_key?(key.to_s) @@ -263,3 +239,4 @@ class Chef end end end + |