REST Adapter for DataMapper
Latest commit 9d715fe Nov 16, 2011 @solnic solnic Remove VERSION file
Failed to load latest commit information.
spec Make sure to finalize the models before using them Jul 28, 2011
tasks Updated jeweler dep to 1.5.2 Feb 19, 2011
.gitignore Ignore all Gemfile variants apart from the original Nov 26, 2010
Gemfile Remove jeweler Nov 16, 2011
LICENSE Updated Copyright year Mar 1, 2011
README.rdoc Stripped whitespace Feb 19, 2011
Rakefile Remove jeweler Nov 16, 2011
dm-rest-adapter.gemspec Remove jeweler Nov 16, 2011



A DataMapper adapter for REST Web Services


DM Rest Adapter requires the use of a model which is the same name as the resource you are using. For example, if you have a resource named “posts” you will create a standard datamapper object called post.rb in app/models. The only difference in this model is you will need to define the rest adapter for the model.

The following is an example of a post model, where the host settings point to the app you are running the resource on. In addition I have included a basic auth login which will be used if your resource requires auth:

DataMapper.setup(:default, {
  :adapter  => 'rest',
  :format   => 'xml',
  :host     => 'localhost',
  :port     => 4000,
  :login    => 'user',
  :password => 'verys3crit'

class Post

  include DataMapper::Resource

  property :id, Serial
  property :title, String
  property :body,  Text


If you notice this looks exactly like a normal datmapper model. Every property you define will map itself with the xml returned or posted from/to the resource.


Now for some code examples. DM Rest Adapter uses the same methods as datamapper including during creation.

# => returns the object from the resouce
# => returns the object from the resource
p = => "My awesome blog post", :body => "I really have nothing to say...")
# => saves the resource on the remote


Posts do not honor RESTful HTTP status codes. I might fix this…


Nested resources Put verb actions