dis 1.0.6 → 1.0.7

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: 769e16af4437ba86e74fcae272a4e7d893737cc1
4
- data.tar.gz: 64330af5cd3172d8f94804391bbbab85c8f87435
3
+ metadata.gz: f063aea5fca2c1baf077761de89c6fde85db6b1f
4
+ data.tar.gz: dc15a0aeceea3f78a95ec92c96ef528353ca5741
5
5
  SHA512:
6
- metadata.gz: 361ec8faf76e47ba5bb8185e4d34ea8f30667d395aee2530cf4956e021d3925d8f8196228506bfaa0080ef0a60d429f6915ceb67560be8cdde61e689749f3eb7
7
- data.tar.gz: 0edc37ad592b0c61c01ff984b801e954472913b716d74d78f1556cfb23845d78600c64d0a925a8cd53cd205f582e52e6cf66a993677df93901111da0f33a432e
6
+ metadata.gz: b4bde9efdc4391dbeed1fa5e2abfc1dfb443fde7c1841bf65064a3f83e227bcd5a866f5b5178dd812575ebc8bd8e801acd48221f12467f62a1660367d0eb2010
7
+ data.tar.gz: c25a646f50936750cf90087934dd20ce0988139a5701d6b6b2b04102737596ac8c86fab865b2e181100a7b9dd15a6ff95c58c9ae55d28b3d0569703abaadd65f
@@ -1,5 +1,5 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module Dis
4
- VERSION = '1.0.6'.freeze
4
+ VERSION = '1.0.7'.freeze
5
5
  end
@@ -11,6 +11,8 @@ namespace :dis do
11
11
 
12
12
  models = ENV['MODELS'].split(',').map(&:strip).map(&:constantize)
13
13
 
14
+ jobs = Set.new
15
+
14
16
  models.each do |model|
15
17
  puts "-- #{model.name} --"
16
18
 
@@ -19,21 +21,43 @@ namespace :dis do
19
21
  .select(content_hash_attr)
20
22
  .uniq
21
23
  .map { |r| r.send(content_hash_attr) }
24
+ global_missing = objects.dup
22
25
 
23
26
  puts "Unique objects: #{objects.length}"
24
27
 
25
28
  Dis::Storage.layers.each do |layer|
29
+ print "Checking #{layer.name}... "
26
30
  existing = objects
27
31
  .pmap { |hash| [hash, layer.exists?(model.dis_type, hash)] }
28
32
  .select(&:last)
29
33
  .map(&:first)
30
34
  missing = objects - existing
31
- puts "#{layer.name}: #{existing.length} (#{missing.length} missing)"
35
+ global_missing -= existing
36
+ puts "#{existing.length} existing, #{missing.length} missing"
37
+
38
+ next unless layer.delayed? #&& layer.writeable?
39
+
40
+ jobs += missing.pmap do |hash|
41
+ [model.dis_type, hash] if Dis::Storage.exists?(model.dis_type, hash)
42
+ end.compact
43
+ end
32
44
 
33
- puts "Missing objects:\n#{missing.inspect}" if missing.any?
45
+ if global_missing.any?
46
+ puts "\n#{global_missing.length} objects are missing from all layers:"
47
+ pp global_missing
34
48
  end
35
49
 
36
50
  puts
37
51
  end
52
+
53
+ if jobs.any?
54
+ print "#{jobs.length} objects can be transferred to delayed layers, " \
55
+ "queue now? (y/n) "
56
+ response = STDIN.gets.chomp
57
+ if response =~ /^y/i
58
+ puts "Queueing jobs..."
59
+ jobs.each { |type, hash| Dis::Jobs::Store.perform_later(type, hash) }
60
+ end
61
+ end
38
62
  end
39
63
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dis
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.6
4
+ version: 1.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Inge Jørgensen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-09 00:00:00.000000000 Z
11
+ date: 2016-11-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails