dis 1.0.6 → 1.0.7

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: 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