Module: CouchRestAdapter::QueryViews::ClassMethods

Defined in:
lib/couch_rest_adapter/query_views.rb

Constant Summary collapse

DEFAULT_DESIGN =
Rails.application.class.to_s.split("::").first.downcase

Instance Method Summary collapse

Instance Method Details

#find_by_attribute(attr_name, value, doc_name = nil) ⇒ Object



16
17
18
19
20
# File 'lib/couch_rest_adapter/query_views.rb', line 16

def find_by_attribute attr_name, value, doc_name = nil
  document_name = 'by_attribute'
  key_value = [object_name, attr_name, value]
  view_by_key document_name, key_value, doc_name
end

#query_view(name, doc_name = nil) ⇒ Object



22
23
24
# File 'lib/couch_rest_adapter/query_views.rb', line 22

def query_view name, doc_name = nil
  view_by_key name, object_name, doc_name
end

#view(doc, attrs, reduce = false) ⇒ Object

TODO: method for reduce, and filters



32
33
34
# File 'lib/couch_rest_adapter/query_views.rb', line 32

def view doc, attrs, reduce = false
  database.view(doc, {reduce: reduce, include_docs: true}.merge!(attrs) )
end

#view_by_key(name, key = nil, doc_name = nil) ⇒ Object



26
27
28
29
# File 'lib/couch_rest_adapter/query_views.rb', line 26

def view_by_key name, key = nil, doc_name = nil
  doc = name.namespace_me(doc_name || DEFAULT_DESIGN)
  view(doc, {key: key})['rows'].map{ |res| new res['doc'] }
end