in general this method can be written without ret handling that makes it slightly worse readable like
```
def CanCreate(disk, verbose)
   if IsUsedBy(disk)
     if verbose
       # TRANSLATORS: error popup
       txt = _("The disk is in use and cannot be modified.")
       Popup.Message(txt)
     end
     log.info "Cannot create on device #{disk["device"]} -> disk in use"
     return false
  end

  if disk["label"] == "dasd"
    part_used = disk.fetch("partitions", []).any? do |partition|
      !DeviceMounted(partition["device"]).empty? || IsUsedBy(partition)
    end
    if part_used
       if verbose
          # TRANSLATORS: error popup
          txt = _("Partitions cannot be created since other partitions on the disk are used.")
          Popup.Message(txt)
        end
      log.info "partitions on #{disk["device"]} cannot be created since other partitions on the disk are used."
      return false
  end

  return true
end
```