Skip to content

Commit

Permalink
Merge pull request #162 from amco/add_missing_collection_methods
Browse files Browse the repository at this point in the history
Adds collection view and find all methods
  • Loading branch information
ErickFabian authored Mar 30, 2021
2 parents 7969d52 + 3eccdd5 commit 85fed75
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 2 deletions.
8 changes: 8 additions & 0 deletions lib/dolly/query.rb
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,14 @@ def find *keys
raise(Dolly::ResourceNotFound)
end

def find_all(*keys)
query_hash = { keys: namespace_keys(keys).map { |k| k.cgi_escape } }
return [] if query_hash[:keys].none?

keys_to_find_counter = query_hash[:keys].length
build_collection(query_hash).first_or_all(true)&.itself
end

def safe_find *keys
find *keys
rescue Dolly::ResourceNotFound
Expand Down
11 changes: 9 additions & 2 deletions lib/dolly/view_query.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,20 @@

module Dolly
module ViewQuery
def raw_view(doc, view_name, opts = {})
design = "_design/#{doc}/_view/#{view_name}"
def raw_view(design, view_name, opts = {})
design = "_design/#{design}/_view/#{view_name}"
connection.view(design, opts)
end

def view_value(doc, view_name, opts = {})
raw_view(doc, view_name, opts)[:rows].flat_map { |result| result[:value] }
end

def collection_view(design, view_name, opts = {})
opts.delete(:include_docs)
design = "_design/#{design}/_view/#{view_name}"
response = connection.view(design, opts)
Dolly::Collection.new(rows: response, options: opts)
end
end
end

0 comments on commit 85fed75

Please sign in to comment.