summaryrefslogtreecommitdiff
path: root/lib/chef/mixin
diff options
context:
space:
mode:
authorJay Mundrawala <jdmundrawala@gmail.com>2015-03-25 14:53:56 -0700
committerJay Mundrawala <jdmundrawala@gmail.com>2015-03-25 14:53:56 -0700
commitbe67482cf2b8819a821bae96c8abd37a649e4c1c (patch)
tree80a5a1186beaff747ac196e1a648965b9879f1bf /lib/chef/mixin
parentb6eb10f36ae82f0bcf56a04963034abc4f70fc7c (diff)
downloadchef-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.rb61
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
+