Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Hash
- # Confirms that a key is set in the Hash
- def assert_required_keys(*required_keys)
- missing_keys = []
- [required_keys].flatten.each { |k| missing_keys << k unless keys.has_key?(k) }
- raise(ArgumentError, "Missing required key(s): #{missing_keys.join(", ")}") unless missing_keys.empty?
- end
- # Confirms that a key is present and that is has value
- def assert_required_keys!(*required_keys)
- assert_required_keys(required_keys)
- empty_keys, required_keys = [], [required_keys].flatten
- required_keys.each { |k| empty_keys << k if keys[k].nil? }
- raise(ArgumentError, "Required key has no value: #{empty_keys.join(", ")}") unless empty_keys.empty?
- end
- # assert_dependent_keys( :scope => [:modifier, :object], :person => [:site, :group] )
- # If parent is not present it is bypassed. Only dependencies are required.
- def assert_presence_of_dependent_keys(*dependents)
- dependents.each { |set| set.each { |k,v| v.each { |required_key| assert_required_keys(required_key) } }
- end
- # requires that the parent is also provided as a key
- def assert_presence_of_dependent_keys!(*dependents)
- dependents.each { |set| set.each { |k,v| assert_required_keys(k); v.each { |r| assert_required_keys(r) } } }
- end
- end
Add Comment
Please, Sign In to add comment