marty 0.5.12 → 0.5.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/marty.rb +1 -0
- data/{app/models → lib}/marty/data_change.rb +37 -0
- data/lib/marty/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4f79a79cfdce773e4530e872d06e272617fcaa9e
|
4
|
+
data.tar.gz: f48be0761efff0640be9ac9d2402d99d9f2918dc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9b897b88b9cba53aca91ac002021c13aedc9f666be21a98355c0911e7a97bb4c708c534637e57f955eeb3073aae41c008b6bf5146ff33a44ec7faf1a4faf9353
|
7
|
+
data.tar.gz: 4539977273f8848e235876209f1e1148267bc84cb5bbb5536ea623bcb40cc6c40a27bd69fa031008d5f2bae3cd34985d420ebc9f1c11fc3949d7be7a70f110ed
|
data/lib/marty.rb
CHANGED
@@ -176,4 +176,41 @@ class Marty::DataChange
|
|
176
176
|
klass.where(change_q, t0, t1, t0, t1).
|
177
177
|
order("group_id, created_dt").group_by(&:group_id)
|
178
178
|
end
|
179
|
+
|
180
|
+
######################################################################
|
181
|
+
|
182
|
+
# Given a Mcfly class_name, find all of the obsoleted Mcfly objects
|
183
|
+
# which are referenced by live (non-obsoleted) class instances.
|
184
|
+
delorean_fn :dead_refs, sig: 2 do
|
185
|
+
|ts, class_name|
|
186
|
+
|
187
|
+
klass = class_name.constantize
|
188
|
+
|
189
|
+
return unless Mcfly.has_mcfly?(klass)
|
190
|
+
|
191
|
+
ts = Mcfly.normalize_infinity(ts)
|
192
|
+
col_types = Marty::DataConversion.col_types(klass)
|
193
|
+
|
194
|
+
mcfly_cols = col_types.map { |attr, h|
|
195
|
+
Hash === h && Mcfly.has_mcfly?(h[:assoc_class]) && h || nil
|
196
|
+
}.compact
|
197
|
+
|
198
|
+
mcfly_cols.each_with_object({}) {
|
199
|
+
|h, res|
|
200
|
+
|
201
|
+
fk = h[:foreign_key]
|
202
|
+
attr = fk.to_s.sub(/_id$/, '').to_sym
|
203
|
+
ref_table = h[:assoc_class].table_name
|
204
|
+
|
205
|
+
arr = klass.joins(attr).
|
206
|
+
where("#{klass.table_name}.obsoleted_dt >= ?", ts).
|
207
|
+
where("#{klass.table_name}.created_dt < ?", ts).
|
208
|
+
where("#{ref_table}.obsoleted_dt < ? OR #{ref_table}.created_dt >= ?", ts, ts).
|
209
|
+
all
|
210
|
+
|
211
|
+
arr = arr.map {|obj| Marty::DataExporter.export_attrs(klass, obj, [fk])}
|
212
|
+
|
213
|
+
res[fk] = arr unless arr.empty?
|
214
|
+
}
|
215
|
+
end
|
179
216
|
end
|
data/lib/marty/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: marty
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arman Bostani
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2015-10-
|
15
|
+
date: 2015-10-13 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: pg
|
@@ -395,7 +395,6 @@ files:
|
|
395
395
|
- app/models/marty/api_auth.rb
|
396
396
|
- app/models/marty/api_auth.rb~
|
397
397
|
- app/models/marty/base.rb
|
398
|
-
- app/models/marty/data_change.rb
|
399
398
|
- app/models/marty/data_change.rb~
|
400
399
|
- app/models/marty/enum.rb
|
401
400
|
- app/models/marty/enum.rb~
|
@@ -450,6 +449,7 @@ files:
|
|
450
449
|
- lib/marty.rb~
|
451
450
|
- lib/marty/content_handler.rb
|
452
451
|
- lib/marty/content_handler.rb~
|
452
|
+
- lib/marty/data_change.rb
|
453
453
|
- lib/marty/data_conversion.rb
|
454
454
|
- lib/marty/data_exporter.rb
|
455
455
|
- lib/marty/data_exporter.rb~
|