`resource` and `collection` would be the preferred extension points to dynamically construct resource objects and enumerables.

Something like, eg:

```ruby
def products(options)
  collection("/products", options, Product)
end

def collection(resource_path, options, resource_class=Resource)
  items = []
  @connection.get("/products", options).each do |item|
    items.push resource_class.new item, @connection
  end
  items
end
```