couchrest_model_cloudant

Extends couchrest_model adding support for the Cloudant Search API

https://cloudant.com/for-developers/search/

Install

Gem

$ sudo gem install couchrest_model_cloudant

Bundler

If you're using bundler, define a line similar to the following in your project's Gemfile:

gem 'couchrest_model_cloudant'

General Usage

Define an index

require 'couchrest_model_cloudant'

class User < CouchRest::Model::Base
  property :email,                String
  property :gender,              String, :default => 'f'

  design do
    index :users, :index => 'function(doc){
       index("email", doc.email, {"store": "yes"});
       index("gender", doc.gender);
      }'
   end
 end

Query an index getting back casted models

@users = User.search('users', 'gender:Female', :limit => 20, :sort => 'email<string>', :include_docs => true)

@users.size => 20
@users.total_rows => 99 
@users.bookmark => 'loripepsomdkjdfkdfjdfjkdfjkdfj'
@users.first.class => User

It's also possible to query an index getting back raw results parsed directly from the JSON without casting

res = User.database.search("User", "users", "gender:Female", :limit => 20)
res['total_rows'] => 99

Development

Testing

couchrest_model_cloudant comes with a Gemfile to help with development. If you want to make changes to the code, download a copy then run:

bundle install

That should set everything up for rake to be run correctly which will launch the test suite.

Contact

Please post bugs, suggestions and patches to the bug tracker at http://github.com/gxbe/couchrest_model_cloudant/issues.