posix-fileutils 0.1.9 → 0.1.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NzBjYWRkOGIyMGNjZjU0MTczZjIzNzIyNGVjMzU4NThlYzc3ZjUwMg==
4
+ N2RjYTU3YWM2YjY4MTdiMGZjNjYxZWFmYWYzNzZiMDczYjQ5ZDQ2OQ==
5
5
  data.tar.gz: !binary |-
6
- ODliZjc0NTQwNjJiMjVjMGIzZDMzNTM3ZmRjZDNlNDA5NmViMmNkOA==
6
+ OThiNGQ5Njc1ZWE5MzFjMzQ3ODBhMGRiMTliODQ4NjJjNTcwODkwMQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- M2EwYjUwZWUxNzQ0OThmZDU2MTRiYWM1ZDNkM2UyZjg0NDUwZmY2ODZhYjg2
10
- ZTBmZWYzOTJmNTE5YTBmN2U1NTI4NTQwNjEyNmUwNjc5ZjMwMTYxZjdmNmUw
11
- M2Y4MDc2NTE3MGU3YmJlM2MyZDU4YTEwMDdkOTkyYzk0NWEyZDQ=
9
+ YzJhNDEyZGI1ODQxYmJmOTVlMTUwYzI1NDBhMmU2Yzk2ZGRhM2VkMTMwYjQ0
10
+ NzE4ODllNjhlMWJlNjUyZDUyMzczZjBhNTU4NjJmNzY2NDkxYjFlY2I2NGQ5
11
+ M2YxZTEyMzhhM2ExZGQ3YjNmZjEwOGI2Y2VmM2Y4YWQwNTczZmE=
12
12
  data.tar.gz: !binary |-
13
- ZTdhNjYzYjRmNWM5MjhiNWUwNjc3OGQ3MWMyMDYzNDYyMDIxOWY0ODUzMGY1
14
- ZDBjNmU4NWMzOGRmYTEzNzFhMGVjNzk3YWJmNmViNDcyNTAzMjIwMzA4NWZm
15
- NDVkMjk5M2ZmNjVkMDJjYzQ1YTkxMWE0OWJmMjVhYzIxYTBjNmU=
13
+ NDYyYjU0YmIxMGVjMzljOThkY2E4MDZkMzM4MjgxMDI3NjM4MGIwNjE4NjA1
14
+ ZWIyNmI0NmFlNWY1MGZjZWUzODAzM2IyZDVkNDhjZTU3NzRjMjQ0MTAxYWI2
15
+ YmIwMmUyY2Y2M2Y0YWIxYmUxYzhlZGE4OGMzMDc5MDIwZTVmNTM=
@@ -221,6 +221,44 @@ module Fs
221
221
  Pathname.new(`pwd`.chomp)
222
222
  end
223
223
 
224
+ def self.diff file1, file2, *opts
225
+ file1 = Pathname.new file1 unless file1.kind_of? Pathname
226
+ file2 = Pathname.new file2 unless file2.kind_of? Pathname
227
+
228
+ raise ArgumentError unless file1.directory? == file2.directory?
229
+
230
+ if file1.directory?
231
+ list1 = Dir["#{file1.to_s}/**/{*,.*}"]
232
+ list2 = Dir["#{file2.to_s}/**/{*,.*}"]
233
+
234
+ rellist1 = list1.map do |e| Pathname.new(e).relative_path_from file1 end
235
+ rellist2 = list2.map do |e| Pathname.new(e).relative_path_from file2 end
236
+
237
+ return false unless rellist1.to_set == rellist2.to_set
238
+
239
+ list1.each do |file|
240
+ file = Pathname.new file
241
+ ofile = file2 + file.relative_path_from(file1)
242
+
243
+ if file.directory?
244
+ return false if Dir["#{file.to_s}/{*,.*}"] == Dir["#{ofile.to_s}/{*,.*}"]
245
+
246
+ next
247
+ end
248
+
249
+ return false unless ofile.exist?
250
+ return false if ofile.directory?
251
+ return false unless Digest::SHA256.file(file) == Digest::SHA256.file(ofile)
252
+ end
253
+
254
+ return true
255
+ end
256
+
257
+ return false unless Digest::SHA256.file(file1) == Digest::SHA256.file(file2)
258
+
259
+ true
260
+ end
261
+
224
262
  end # module Fs
225
263
 
226
264
  # vim: sw=2 sts=2 ts=8:
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: posix-fileutils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.1.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - A. Levenkov