Finalizing support for including hash codes in Design documents
This commit is contained in:
parent
706880fceb
commit
00a4cc7f3b
7 changed files with 25 additions and 94 deletions
|
@ -391,11 +391,9 @@ module CouchRest
|
|||
return self.result if result
|
||||
raise "Database must be defined in model or view!" if use_database.nil?
|
||||
|
||||
# Remove the reduce value if its not needed
|
||||
# Remove the reduce value if its not needed to prevent CouchDB errors
|
||||
query.delete(:reduce) unless can_reduce?
|
||||
|
||||
# Save the design doc for the current database. This should be efficient
|
||||
# and check for changes
|
||||
model.save_design_doc(use_database)
|
||||
|
||||
self.result = model.design_doc.view_on(use_database, name, query.reject{|k,v| v.nil?})
|
||||
|
|
|
@ -15,8 +15,16 @@ CouchRest::Design.class_eval do
|
|||
base.delete('_rev')
|
||||
result = nil
|
||||
flatten =
|
||||
lambda {|v|
|
||||
v.is_a?(Hash) ? v.flatten.map{|v| flatten.call(v)}.flatten : v.to_s
|
||||
lambda {|r|
|
||||
(recurse = lambda {|v|
|
||||
if v.is_a?(Hash)
|
||||
v.to_a.map{|v| recurse.call(v)}.flatten
|
||||
elsif v.is_a?(Array)
|
||||
v.flatten.map{|v| recurse.call(v)}
|
||||
else
|
||||
v.to_s
|
||||
end
|
||||
}).call(r)
|
||||
}
|
||||
Digest::MD5.hexdigest(flatten.call(base).sort.join(''))
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue