Class: SimplyCouch::Model::View::ViewQuery

Inherits:
Object
  • Object
show all
Defined in:
lib/simply_couch/model/view/view_query.rb

Overview

Used to query views (and create them if they don’t exist). Usually you won’t have to use this class directly.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(couchrest_database, design_document_name, view, list = nil, lib = nil, language = :javascript) ⇒ ViewQuery

Returns a new instance of ViewQuery.



6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/simply_couch/model/view/view_query.rb', line 6

def initialize(couchrest_database, design_document_name, view, list = nil, lib = nil, language = :javascript)
  @database = couchrest_database
  @design_document_name = design_document_name
  @view_name = view.keys[0]
  @map_function = view.values[0][:map]
  @reduce_function = view.values[0][:reduce]
  @lib = lib
  @language = language
  if list
    @list_function = list.values[0]
    @list_name = list.keys[0]
  end
end

Class Method Details

.__updated_viewsObject



36
37
38
39
# File 'lib/simply_couch/model/view/view_query.rb', line 36

def self.__updated_views
  @updated_views ||= {}
  @updated_views
end

.clear_cacheObject

mainly useful for testing where you drop the database between tests. only after clearing the cache design docs will be updated/re-created.



32
33
34
# File 'lib/simply_couch/model/view/view_query.rb', line 32

def self.clear_cache
  __updated_views.clear
end

Instance Method Details

#query_view!(parameters = {}) ⇒ Object



20
21
22
23
24
25
26
27
28
# File 'lib/simply_couch/model/view/view_query.rb', line 20

def query_view!(parameters = {})
  update_view unless view_has_been_updated?
  begin
    query_view parameters
  rescue CouchRest::NotFound => e
    update_view
    retry
  end
end