marty 0.5.12 → 0.5.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 48826f7964d59aff4018ae9b307c6dae70260a1c
4
- data.tar.gz: 7e1d795a1dce7b7d59d3d942fff8e038611521a4
3
+ metadata.gz: 4f79a79cfdce773e4530e872d06e272617fcaa9e
4
+ data.tar.gz: f48be0761efff0640be9ac9d2402d99d9f2918dc
5
5
  SHA512:
6
- metadata.gz: e6ad62a87e3ff08491af408a941037837c0306e5ea9326ce705015458e054afc630c1eb0d452b6f25e4bbd1343b4c4d18f79fb4d3c2e4189ba9217747697055b
7
- data.tar.gz: b554240eabf456d57c32cbac53646404907e64eacbed9bc0c6534a08a0f4ee825a3ce3b80b6fa3c560d3586d0681af6be6d977c8a66c403a7b41a56df7505b21
6
+ metadata.gz: 9b897b88b9cba53aca91ac002021c13aedc9f666be21a98355c0911e7a97bb4c708c534637e57f955eeb3073aae41c008b6bf5146ff33a44ec7faf1a4faf9353
7
+ data.tar.gz: 4539977273f8848e235876209f1e1148267bc84cb5bbb5536ea623bcb40cc6c40a27bd69fa031008d5f2bae3cd34985d420ebc9f1c11fc3949d7be7a70f110ed
data/lib/marty.rb CHANGED
@@ -10,6 +10,7 @@ require 'marty/data_exporter'
10
10
  require 'marty/xl.rb'
11
11
  require 'marty/data_conversion'
12
12
  require 'marty/data_importer'
13
+ require 'marty/data_change'
13
14
  require 'marty/relation'
14
15
  require 'marty/promise_job'
15
16
  require 'marty/promise_proxy'
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Marty
2
- VERSION = "0.5.12"
2
+ VERSION = "0.5.13"
3
3
  end
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.12
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-12 00:00:00.000000000 Z
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~