lib/packer/dataobject.rb in packer-config-1.6.0 vs lib/packer/dataobject.rb in packer-config-1.6.1

- old
+ new

@@ -23,30 +23,27 @@ end def validate_required self.required.each do |r| if (r.is_a? Array) && !r.empty? - if r.length - (r - self.data.keys).length == 0 + if (r.length - (r - self.data.keys).length).zero? raise DataValidationError.new("Missing one required setting from the set #{r}") end if r.length - (r - self.data.keys).length > 1 raise DataValidationError.new("Found more than one exclusive setting in data from set #{r}") end - else - if ! self.data.keys.include? r - raise DataValidationError.new("Missing required setting #{r}") - end + elsif ! self.data.keys.include? r + raise DataValidationError.new("Missing required setting #{r}") end end end def validate_key_dependencies self.data.keys.each do |data_key| - if self.key_dependencies.has_key? data_key - if ! (self.key_dependencies[data_key] - self.data.keys).empty? - raise DataValidationError.new("Key #{data_key} requires that keys be defined: #{self.key_dependencies[data_key]}") - end + next unless self.key_dependencies.key? data_key + unless (self.key_dependencies[data_key] - self.data.keys).empty? + raise DataValidationError.new("Key #{data_key} requires that keys be defined: #{self.key_dependencies[data_key]}") end end end def add_required(*keys) @@ -66,11 +63,11 @@ class ExclusiveKeyError < StandardError end def __exclusive_key_error(key, exclusives) exclusives.each do |e| - if self.data.has_key? e + if self.data.key? e raise ExclusiveKeyError.new("Only one of #{exclusives} can be used at a time") end end true end @@ -121,14 +118,10 @@ end def __add_boolean(key, bool, exclusives = []) self.__exclusive_key_error(key, exclusives) - if bool - self.data[key.to_s] = true - else - self.data[key.to_s] = false - end + self.data[key.to_s] = bool ? true : false end def __add_hash(key, data, exclusives = []) self.__exclusive_key_error(key, exclusives) raise TypeError.new() unless data.is_a?(Hash)