Module: Loveseat::DesignDocument
- Defined in:
- lib/loveseat/design_document.rb,
lib/loveseat/design_document/dsl.rb,
lib/loveseat/design_document/support.rb,
lib/loveseat/design_document/view_row.rb
Defined Under Namespace
Classes: DSL, Support, ViewRow
Class Method Summary
collapse
Class Method Details
.all(db) ⇒ Object
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# File 'lib/loveseat/design_document.rb', line 9
def self.all(db)
resource = db._all_docs
response, body = resource.get(:query => {:startkey => "_design/".to_json,
:endkey => "_design/\ufff0".to_json,
:include_docs => true})
response.value
body['rows'].map do |row|
klass = Document.resolve(row['id'])
support = Document.registry[klass]
support.from_hash(row['doc'])
end
end
|
.generate_id(klass) ⇒ Object
41
42
43
|
# File 'lib/loveseat/design_document.rb', line 41
def self.generate_id(klass)
"_design/#{klass.name}"
end
|
.setup(klass, options = {}, &block) ⇒ Object
5
6
7
|
# File 'lib/loveseat/design_document.rb', line 5
def self.setup(klass, options = {}, &block)
Document.setup(klass, { :support => Support.new(klass, options) }, &block)
end
|
.view(db, design_document, name, options = {}) ⇒ Object
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
# File 'lib/loveseat/design_document.rb', line 23
def self.view(db, design_document, name, options = {})
resource = Rest::DesignDocument.new(db, design_document.name)
view_resource = resource._view(name)
keys = options.delete(:keys)
response, body = if keys
view_resource.post(:query => options, :body => {:keys => keys}.to_json)
else
view_resource.get(:query => options)
end
response.value
body['rows'].map do |row|
ViewRow.from_hash(row)
end
end
|