Class: Slipcover::Query

Inherits:
Object
  • Object
show all
Defined in:
lib/slipcover/query.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(design_document, view_name) ⇒ Query

Returns a new instance of Query.



5
6
7
8
# File 'lib/slipcover/query.rb', line 5

def initialize(design_document, view_name)
  @design_document = design_document
  @view_name = view_name
end

Instance Attribute Details

#design_documentObject (readonly)

Returns the value of attribute design_document.



3
4
5
# File 'lib/slipcover/query.rb', line 3

def design_document
  @design_document
end

#view_nameObject (readonly)

Returns the value of attribute view_name.



3
4
5
# File 'lib/slipcover/query.rb', line 3

def view_name
  @view_name
end

Instance Method Details

#all(opts = {}) ⇒ Object



21
22
23
24
25
26
# File 'lib/slipcover/query.rb', line 21

def all(opts={})
  get(url, repackage(opts))[:rows].map{ |row|
    doc_data = opts[:include_docs] ? row["doc"] : row
    Document.new(database.name, doc_data.symbolize_keys)
  }
end

#databaseObject



36
37
38
# File 'lib/slipcover/query.rb', line 36

def database
  design_document.database
end

#escape(value) ⇒ Object



40
41
42
# File 'lib/slipcover/query.rb', line 40

def escape(value)
  URI.escape(value.inspect)
end

#escape_key?(key) ⇒ Boolean

Returns:

  • (Boolean)


44
45
46
# File 'lib/slipcover/query.rb', line 44

def escape_key?(key)
  [:key, :keys, :startkey, :startkey_docid, :endkey, :endkey_docid, :stale].include?(key.to_sym)
end

#http_adapterObject



10
11
12
# File 'lib/slipcover/query.rb', line 10

def http_adapter
  @http_adapter ||= HttpAdapter.new
end

#repackage(opts) ⇒ Object



28
29
30
31
32
33
34
# File 'lib/slipcover/query.rb', line 28

def repackage(opts)
  opts = opts.dup

  opts.each do |key, value|
    opts[key] = escape(value) if escape_key?(key)
  end
end

#urlObject



17
18
19
# File 'lib/slipcover/query.rb', line 17

def url
  "#{design_document.url}/_view/#{view_name}" # todo adapter takes opts and converts to query string
end