This arg list is getting very long. I would be inclined to suggest this should be accepting either:

1. an Object or objects which responds to certain messages to get the data, e.g.

```ruby

def store(request, response)
   cached = {
      :scope => scope,
      :url => format_url(request.url),
      :body => response.body,
      :status => response.status,
      ...
end
```

OR

2) a hash with keys representing the various options:

```ruby
def store(cacheable)
   cached = {
      :scope => scope,
      :url => format_url(cacheable[:url]),
      :body => cacheable[:body],
      :status => cacheable[:status],
      ...
end
```

or some variation thereof.  Also, the arg list is set up a way in which it requires values to be supplied for all of these options, but it seems to me that some of these arguments should be optional.