As we touching this code, how about making this method more readable?

```ruby
def fragment_name_with_digest(name) #:nodoc:
  if @virtual_path
    variant = request.variant.is_a?(Array) ? request.variant.first : request.variant

    options = {
      name: @virtual_path,
      format: formats.last.to_sym,
      variant: variant,
      finder: lookup_context,
      dependencies: view_cache_dependencies
    }

    names = Array(name.is_a?(Hash) ? controller.url_for(name).split("://").last : name)
    digest = Digestor.digest(options)

    [*names, digest]
  else
    name
  end
end
```

I just think it's way more understandable what's going on there this way. What do you think?