Here I tried several other approaches, such as

```
need_cryptoloop = !targetMap.values.collect{ |d| d.fetch("partitions", []) }.flatten.find{ |p| p.fetch("noauto", false) && p.fetch("enc_type", :none) == :twofish }.nil?
```

or

```
      catch :found do
        targetMap.each do |disk, e|
          e.fetch("partitions", []).each do |p|
            if p["noauto"] == true && p["enc_type"] == :twofish
              need_cryptoloop = true
              throw :found
            end
          end
        end
      end
```

but even if this works, it's not DRYer (second example) because I would need to repeat that for other encryption and it's not more understandable (first example). Hmm, well, I've got another idea just now...