Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
12 changes: 6 additions & 6 deletions lib/dolly/request.rb
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
module Dolly
module Request
def set_namespace name
@namespace = name
def set_db_namespace(name)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is a breaking change, why is the change being done?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

set_namespace makes me understand that the model will set the document namespace, the part of user/ not choose which database the model will connect to

@_db_namespace = name
end

def set_app_env env
def set_app_env(env)
@app_env = env
end

def connection
@connection ||= Connection.new(namespace, app_env)
@connection ||= Connection.new(db_namespace, app_env)
end

def namespace
@namespace ||= :default
def db_namespace
@_db_namespace ||= :default
end

def app_env
Expand Down
20 changes: 16 additions & 4 deletions lib/dolly/view_query.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,25 @@

module Dolly
module ViewQuery
def raw_view(doc, view_name, opts = {})
design = "_design/#{doc}/_view/#{view_name}"
def raw_view(design, view_name, opts = {})
include_docs = opts.delete(:include_docs)
include_docs ||= 'true'

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] }
def view_value(design, view_name, opts = {})
raw_view(design, view_name, opts)[:rows].flat_map { |result| result[:value] }
end

def collection_view(design, view_name, opts = {})
include_docs = opts.delete(:include_docs)
include_docs ||= 'true'

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