# merge arrays when one value is not an array
elsif old_value.is_a?(Array) && !new_value.is_a?(Array)
- value = (old_value.dup << new_value).compact.uniq
+ (value = (old_value.dup << new_value).compact.uniq).delete('REQUIRED')
elsif new_value.is_a?(Array) && !old_value.is_a?(Array)
- value = (new_value.dup << old_value).compact.uniq
+ (value = (new_value.dup << old_value).compact.uniq).delete('REQUIRED')
# catch errors
elsif type_mismatch?(old_value, new_value)
def evaluate_everything
keys.each do |key|
obj = fetch_value(key)
- if obj == "REQUIRED"
+ if is_required_value_not_set?(obj)
Util::log 0, :warning, "required key \"#{key}\" is not set in node \"#{node.name}\"."
elsif obj.is_a? Config::Object
obj.evaluate_everything
if @late_eval_list
@late_eval_list.each do |key, value|
self[key] = evaluate_now(key, value)
- if self[key] == "REQUIRED"
+ if is_required_value_not_set?(self[key])
Util::log 0, :warning, "required key \"#{key}\" is not set in node \"#{node.name}\"."
end
end
end
end
+ #
+ # returns true if the value has not been changed and the default is "REQUIRED"
+ #
+ def is_required_value_not_set?(value)
+ if value.is_a? Array
+ value == ["REQUIRED"]
+ else
+ value == "REQUIRED"
+ end
+ end
+
end # class
end # module
end # module
\ No newline at end of file
module LeapCli
unless defined?(LeapCli::VERSION)
- VERSION = '1.2.3'
+ VERSION = '1.2.4'
COMPATIBLE_PLATFORM_VERSION = '0.2.4'..'1.99'
SUMMARY = 'Command line interface to the LEAP platform'
DESCRIPTION = 'The command "leap" can be used to manage a bevy of servers running the LEAP platform from the comfort of your own home.'