Faster, because it breaks the loop as soon as possible, and
less LOC:

 def check
   for_every_app.values.find do |app_info|
     not File.exists?(app_info[:root])
   end ? false : true
 end

You may want to skip the "? false : true" part, but that breaks
the encapsulation.

gegroet,
Erik V. - http://www.erikveen.dds.nl/