1
+ # Delta a list of changes on Jupiter after a given date
2
+ # base on https://github.com/ualbertalib/jupiter/pull/3626/files
3
+
4
+
5
+ class ChangesReport
6
+
7
+ def initialize ( output_directory , date )
8
+ @date = date
9
+ @output_file = output_directory + "#{ date } _changes.csv"
10
+ end
11
+
12
+ def perform ( )
13
+ CSV . open ( @output_file , 'wb' ) do |csv |
14
+ csv << [ 'type' , 'id' , 'changed at' , 'event' , 'delta' ]
15
+ PaperTrail ::Version . where ( created_at : @date ..) . find_each do |row |
16
+ # change delta for Item & Thesis type converting end result
17
+ # to DSpace/Scholaris key/value by extending the linked method
18
+ # test if the key exsists in the object_changes and creating a new
19
+ # structure in a new column listing the Scholaris key/value pairs to update
20
+ # https://gist.github.com/lagoan/839cf8ce997fa17b529d84776b91cdac#file-export_collections_csv-rb-L181-L196
21
+ csv << [ row . item_type , row . item_id , row . created_at , row . event , row . object_changes ]
22
+ end
23
+ end
24
+
25
+ i = Item . updated_on_or_after ( @date ) . count
26
+ t = Thesis . updated_on_or_after ( @date ) . count
27
+ cl = Collection . updated_on_or_after ( @date ) . count
28
+ cm = Community . updated_on_or_after ( @date ) . count
29
+ summary = "#{ i } items, #{ t } theses, #{ cl } collections and #{ cm } communities were created or modified."
30
+ puts ( summary )
31
+
32
+ end
33
+
34
+ end
35
+
36
+ ChangesReport . new ( "/tmp/" , Date . new ( 2005 , 8 , 8 ) ) . perform ( )
0 commit comments