mattetti / couchrest forked from jchris/couchrest

A RESTful CouchDB client based on Heroku's RestClient and Couch.js

This URL has Read+Write access

commit  a4e6713aeb04721604553bb03475b11912a6e1ff
tree    b0c14c631fd3c75f5ee0787499f49c73fca58430
parent  2596df1a3d7cc266652424710ed484822a58390a
couchrest / spec / fixtures / more / article.rb
100644 34 lines (28 sloc) 0.798 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
class Article < CouchRest::ExtendedDocument
  use_database TEST_SERVER.default_database
  unique_id :slug
  
  view_by :date, :descending => true
  view_by :user_id, :date
    
  view_by :tags,
    :map =>
      "function(doc) {
if (doc['couchrest-type'] == 'Article' && doc.tags) {
doc.tags.forEach(function(tag){
emit(tag, 1);
});
}
}",
    :reduce =>
      "function(keys, values, rereduce) {
return sum(values);
}"
 
  property :date
  property :slug, :read_only => true
  property :title
  property :tags
 
  timestamps!
  
  save_callback :before, :generate_slug_from_title
  
  def generate_slug_from_title
    self['slug'] = title.downcase.gsub(/[^a-z0-9]/,'-').squeeze('-').gsub(/^\-|\-$/,'') if new_document?
  end
end