Q:

DataMapper: Create new record or update existing

Does DataMapper provide a convenient way to create a new record when none exists or update an existing one? I couldn't find anything in the API documentation.
This is what I have at the moment which doesn't seem very elegant:
foo = Foo.get(id)
if foo.nil?
  foo = Foo.create(#attributes...)
else
  foo.update(#attributes...)
end
foo.save

A:

Foo.first_or_create(:id=>id).update(attributes)

or
(Foo.get(id) || Foo.new).update(attributes)

