diff options
author | Azul <azul@leap.se> | 2014-07-07 10:12:53 +0200 |
---|---|---|
committer | Azul <azul@leap.se> | 2014-07-12 09:14:23 +0200 |
commit | cc1666d9832415058bf0b22bb5912e432261af4f (patch) | |
tree | 9dddf4d76fd7a9b1e5b2ab1d64ec6b6e65ccb551 /lib/extensions/couchrest.rb | |
parent | 0e9c41a286b49b5ce52abcf0e014668d0167bbae (diff) |
Identity view cert_fingerprints_by_expiry
Also move complex identity views into js designs.
Includes test.
Here's how you would query it from outside rails:
```
$ curl
'localhost:5984/identities/_design/Identity/_view/cert_fingerprints_by_expiry?startkey="2014-07-05"'
{"total_rows":4,"offset":1,"rows":[
{"id":"6c9091d4f13eaeaa6062c9d0528fd34d","key":"2014-07-05","value":"fingerprint"},
{"id":"6f3aa93828b4f6978d551f2623b9d103","key":"2014-07-05","value":"fingerprint"},
{"id":"b6cafacfa65042679691cd5065fb19e3","key":"2014-07-07","value":"fp"}
]}
```
Note that the expiry will be used as the key. So you should use the
current data (or yesterday) as the startkey to get all fingerprints that
have not expired yet.
The fingerprint itself is in the value. No need to include docs.
Diffstat (limited to 'lib/extensions/couchrest.rb')
-rw-r--r-- | lib/extensions/couchrest.rb | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/extensions/couchrest.rb b/lib/extensions/couchrest.rb index df83c9f..290cd32 100644 --- a/lib/extensions/couchrest.rb +++ b/lib/extensions/couchrest.rb @@ -15,13 +15,19 @@ module CouchRest end class DesignMapper - def load_views(dir) + DEFAULT_REDUCE = <<-EOJS + function(key, values, rereduce) { + return sum(values); + } + EOJS + def load_views(dir, reduce=DEFAULT_REDUCE) Dir.glob("#{dir}/*.js") do |js| name = File.basename(js, '.js') file = File.open(js, 'r') + reduce = view name.to_sym, - :map => file.read, - :reduce => "function(key, values, rereduce) { return sum(values); }" + map: file.read, + reduce: reduce end end end |