libis-tools 1.0.2 → 1.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/lib/libis/tools/cli/reorg.rb +6 -6
- data/lib/libis/tools/extend/array.rb +15 -0
- data/lib/libis/tools/extend/hash.rb +3 -6
- data/lib/libis/tools/extend/symbol.rb +8 -0
- data/lib/libis/tools/version.rb +1 -1
- data/spec/command_spec.rb +2 -2
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 90860bd5c61913c592d7dd212e9ac49cde403217295a2abebe96bc15413a8421
|
4
|
+
data.tar.gz: 0037ce1b2ddf54ff80862648c6a596398c6326e88a399148d2df7f4c81a4f0fd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 98b63d9c943f7eaf01014ade5c3a1ec94f659c1b8920198d6705a074f4f76d440911fc3b0c7298a178c1a41f52d7b7d3f2b6f1b4a4e9aea02a748f8f85a02763
|
7
|
+
data.tar.gz: 4b712432c22a54e44939d076aff84bf1d1628bdfb99efdf7dbb9c1f9e90597ac98e62331767e2f1f2e7c00dcd3849d72998fb6100fc468afce137682db352394
|
@@ -262,13 +262,13 @@ module Libis
|
|
262
262
|
next if file_name =~ /^\.\.?$/
|
263
263
|
entry = File.join(File.absolute_path(base_dir), file_name)
|
264
264
|
unless File.file?(entry)
|
265
|
-
|
265
|
+
prompt.say "Skipping directory #{entry}." unless @report
|
266
266
|
write_report(entry, '', '', 'Directory - skipped.')
|
267
267
|
count[:skipped_dir] += 1
|
268
268
|
next
|
269
269
|
end
|
270
270
|
unless file_name =~ parse_regex
|
271
|
-
|
271
|
+
prompt.say "Skipping file #{file_name}. File name does not match expression." unless @report
|
272
272
|
write_report(entry, '', '', 'Mismatch - skipped.')
|
273
273
|
count[:unmatched_file] += 1
|
274
274
|
next
|
@@ -278,7 +278,7 @@ module Libis
|
|
278
278
|
target_dir = File.dirname(target)
|
279
279
|
target_dir = File.join(base_dir, target_dir) unless target_dir[0] == '/'
|
280
280
|
unless target_dir_list.include?(target_dir)
|
281
|
-
|
281
|
+
prompt.say "-> Create directory '#{target_dir}'" unless @report
|
282
282
|
FileUtils.mkpath(target_dir) unless dummy_operation
|
283
283
|
target_dir_list << target_dir
|
284
284
|
end
|
@@ -289,7 +289,7 @@ module Libis
|
|
289
289
|
if compare_entry(entry, target_path)
|
290
290
|
remark = 'Duplicate - skipped.'
|
291
291
|
count[:duplicate] += 1
|
292
|
-
|
292
|
+
prompt.error "Duplicate file entry: #{entry}." unless @report
|
293
293
|
else
|
294
294
|
# puts "source: #{File.mtime(entry)} #{'%11s' % Filesize.new(File.size(entry)).pretty} #{entry}"
|
295
295
|
# puts "target: #{File.mtime(target_path)} #{'%11s' % Filesize.new(File.size(target_path)).pretty} #{target_path}"
|
@@ -299,7 +299,7 @@ module Libis
|
|
299
299
|
count[:update] += 1
|
300
300
|
else
|
301
301
|
remark = 'Duplicate - rejected.'
|
302
|
-
|
302
|
+
prompt.error "ERROR: #{entry} exists with different content." unless @report
|
303
303
|
count[:reject] += 1
|
304
304
|
end
|
305
305
|
end
|
@@ -308,7 +308,7 @@ module Libis
|
|
308
308
|
count[:move] += 1
|
309
309
|
end
|
310
310
|
if action
|
311
|
-
|
311
|
+
prompt.say "-> #{file_operation} '#{file_name}' to '#{target}'" unless @report
|
312
312
|
case file_operation
|
313
313
|
when 'move'
|
314
314
|
FileUtils.move(entry, File.join(target_dir, target_file), force: true)
|
@@ -0,0 +1,15 @@
|
|
1
|
+
|
2
|
+
# Extension class for Array
|
3
|
+
class Array
|
4
|
+
|
5
|
+
# Removes all empty entries
|
6
|
+
def cleanup
|
7
|
+
self.delete_if { |v| v.nil? || (v.respond_to?(:empty?) ? v.empty? : false) }
|
8
|
+
end unless method_defined? :cleanup
|
9
|
+
|
10
|
+
# Removes all empty entries recursively in the array and each Hash in it
|
11
|
+
def recursive_cleanup
|
12
|
+
cleanup.each { |v| v.recursive_cleanup if Array === v || Hash === v }
|
13
|
+
end unless method_defined? :recursive_cleanup
|
14
|
+
|
15
|
+
end
|
@@ -10,11 +10,8 @@ class Hash
|
|
10
10
|
|
11
11
|
# Removes all hash entries for which value.empty? is true. Performed recursively.
|
12
12
|
def recursive_cleanup
|
13
|
-
|
14
|
-
|
15
|
-
v.nil? || (v.respond_to?(:empty?) ? v.empty? : false)
|
16
|
-
end
|
17
|
-
self.delete_if &delete_proc
|
13
|
+
cleanup
|
14
|
+
each { |_, v| v.recursive_cleanup if Array === v || Hash === v }
|
18
15
|
end unless method_defined? :recursive_cleanup
|
19
16
|
|
20
17
|
# Merges two hashes, but does so recursively.
|
@@ -66,7 +63,7 @@ class Hash
|
|
66
63
|
end unless method_defined? :key_strings_to_symbols!
|
67
64
|
|
68
65
|
# Return new Hash with all keys converted to symbols.
|
69
|
-
# @param [Hash]
|
66
|
+
# @param [Hash] options valid options are:
|
70
67
|
# * recursive : perform operation recursively
|
71
68
|
# * upcase : convert all keys to upper case
|
72
69
|
# * downcase : convert all keys to lower case
|
@@ -0,0 +1,8 @@
|
|
1
|
+
# Symbol monkey patch to allow map(&:method) to take arguments. Allows: [2,3].map(&:+.(10)) # => [12,13]
|
2
|
+
# See: https://stackoverflow.com/questions/23695653/can-you-supply-arguments-to-the-mapmethod-syntax-in-ruby
|
3
|
+
# for more information,
|
4
|
+
class Symbol
|
5
|
+
def call(*args, &block)
|
6
|
+
->(caller, *rest) { caller.public_send(self, *rest, *args, &block) }
|
7
|
+
end
|
8
|
+
end
|
data/lib/libis/tools/version.rb
CHANGED
data/spec/command_spec.rb
CHANGED
@@ -30,7 +30,7 @@ describe 'Command' do
|
|
30
30
|
result = Libis::Tools::Command.run('ls', '-1')
|
31
31
|
|
32
32
|
output = result[:out]
|
33
|
-
expect(output.size).to eq
|
33
|
+
expect(output.size).to eq entries.size
|
34
34
|
expect(output.sort).to match entries
|
35
35
|
expect(result[:err]).to eq []
|
36
36
|
expect(result[:status]).to eq 0
|
@@ -42,7 +42,7 @@ describe 'Command' do
|
|
42
42
|
result = Libis::Tools::Command.run('ls', '-1', '-a', '-p')
|
43
43
|
|
44
44
|
output = result[:out]
|
45
|
-
expect(output.size).to eq
|
45
|
+
expect(output.size).to eq entries.size + 2
|
46
46
|
expect(output[0]).to eq './'
|
47
47
|
expect(output[1]).to eq '../'
|
48
48
|
expect(output[2..-1].sort).to match entries
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: libis-tools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kris Dekeyser
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-10-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -332,6 +332,7 @@ files:
|
|
332
332
|
- lib/libis/tools/config_file.rb
|
333
333
|
- lib/libis/tools/csv.rb
|
334
334
|
- lib/libis/tools/deep_struct.rb
|
335
|
+
- lib/libis/tools/extend/array.rb
|
335
336
|
- lib/libis/tools/extend/empty.rb
|
336
337
|
- lib/libis/tools/extend/hash.rb
|
337
338
|
- lib/libis/tools/extend/kernel.rb
|
@@ -339,6 +340,7 @@ files:
|
|
339
340
|
- lib/libis/tools/extend/roo.rb
|
340
341
|
- lib/libis/tools/extend/string.rb
|
341
342
|
- lib/libis/tools/extend/struct.rb
|
343
|
+
- lib/libis/tools/extend/symbol.rb
|
342
344
|
- lib/libis/tools/logger.rb
|
343
345
|
- lib/libis/tools/mets_dnx.rb
|
344
346
|
- lib/libis/tools/mets_file.rb
|
@@ -398,8 +400,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
398
400
|
- !ruby/object:Gem::Version
|
399
401
|
version: '0'
|
400
402
|
requirements: []
|
401
|
-
|
402
|
-
rubygems_version: 2.5.1
|
403
|
+
rubygems_version: 3.0.3
|
403
404
|
signing_key:
|
404
405
|
specification_version: 4
|
405
406
|
summary: LIBIS toolbox.
|