sn-revisions 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 008b8602beb04a57882d9e7f3e821fc13071b5b7
|
4
|
+
data.tar.gz: 0362024a93034631d5f8d5d33a9a1f93969bda5e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f8e9647c44c9ee6e38d6ba21a8d94624f048d10dc2ed6d9949dc845324ee926702a5ff950054c57c64a2b83f0ee30c3dcab6f90367509f2bbf750dc7f13cb580
|
7
|
+
data.tar.gz: 11ea6a08385908d96cc419bcbc04ae918897a37014e4d1dbabf7efa75ae11b9dbdb377fdbb00b01e7665ff5b7f4a40c20d81e010143b4d3450b2750f75b1a7ee
|
@@ -8,7 +8,6 @@ module Revisions
|
|
8
8
|
items.each do |item_hash|
|
9
9
|
item = current_user.items.find_or_create_by(:item_uuid => item_hash["uuid"])
|
10
10
|
item.add_revision(item_hash["content"], item_hash["enc_item_key"], item_hash["auth_hash"])
|
11
|
-
item.condense_history
|
12
11
|
if item.content_type == nil
|
13
12
|
item.content_type = item_hash["content_type"]
|
14
13
|
item.save
|
@@ -8,27 +8,37 @@ module Revisions
|
|
8
8
|
revision.content = content
|
9
9
|
revision.enc_item_key = item_key
|
10
10
|
revision.auth_hash = auth_hash
|
11
|
+
# revision.num = self.revisions.length > 0 && self.revisions.first.num ? (self.revisions.first.num + 1) : 0
|
11
12
|
revision.save
|
12
13
|
end
|
13
14
|
|
14
15
|
|
15
|
-
def
|
16
|
-
# revisions past 30 days are limited to
|
16
|
+
def prune_history
|
17
|
+
# revisions past 30 days are limited to min_revs revision per day
|
17
18
|
# any revision within 30 days is capped to 30-days_from_today revisions per day
|
18
19
|
# so if there are 50 revisions from 5 days ago, 50 - (30-5) = 25 revisions are allowed
|
19
20
|
days = 30
|
20
|
-
min_revs =
|
21
|
+
min_revs = 4
|
21
22
|
days.times do |days_from_today|
|
22
23
|
date = Time.now.utc.to_date - days_from_today
|
23
|
-
|
24
|
+
num_revs_target = days - days_from_today + min_revs # actual number kept may be a little more or less
|
24
25
|
revs = self.revisions.where(:created_at => date.midnight..date.end_of_day).pluck(:id)
|
25
|
-
if revs.length >
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
26
|
+
if revs.length > num_revs_target
|
27
|
+
keep_every_nth = (revs.length.to_f / (num_revs_target)).ceil
|
28
|
+
keep = [revs.length - 1]
|
29
|
+
|
30
|
+
(0..revs.length - keep_every_nth).step(keep_every_nth) do |n|
|
31
|
+
keep.push(n)
|
32
|
+
end
|
33
|
+
|
34
|
+
discard_ids = []
|
35
|
+
revs.length.times do |index|
|
36
|
+
if keep.include?(index) == false
|
37
|
+
discard_ids.push(revs[index])
|
38
|
+
end
|
31
39
|
end
|
40
|
+
|
41
|
+
Revision.destroy(discard_ids)
|
32
42
|
end
|
33
43
|
end
|
34
44
|
end
|
data/lib/revisions/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sn-revisions
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Standard Notes
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-02-
|
11
|
+
date: 2017-02-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|