Class: Slipcover::Query
- Inherits:
-
Object
- Object
- Slipcover::Query
- Defined in:
- lib/slipcover/query.rb
Instance Attribute Summary collapse
-
#design_document ⇒ Object
readonly
Returns the value of attribute design_document.
-
#view_name ⇒ Object
readonly
Returns the value of attribute view_name.
Instance Method Summary collapse
- #all(opts = {}) ⇒ Object
- #database ⇒ Object
- #escape(value) ⇒ Object
- #escape_key?(key) ⇒ Boolean
- #http_adapter ⇒ Object
-
#initialize(design_document, view_name) ⇒ Query
constructor
A new instance of Query.
- #repackage(opts) ⇒ Object
- #url ⇒ Object
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_document ⇒ Object (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_name ⇒ Object (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 |
#database ⇒ Object
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
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_adapter ⇒ Object
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 |
#url ⇒ Object
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 |