s3diff 0.1.0 → 0.1.1

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: 9214fc3b3d1057f64f54293b48168c5df0edf2c5
4
- data.tar.gz: 0464c764900078951eca13de55458dc636bc7bc7
3
+ metadata.gz: 2e40ffd6ec8145f05a3ded8e43eb042381898f81
4
+ data.tar.gz: e95b2172ceca0bc40cd249f02787e74a074ebcad
5
5
  SHA512:
6
- metadata.gz: d9c6e195752d3e88af9b7d63c939a7f21c5254021f7da052af69e1ba1a7a3d1edcad16488e89fd2c9051019d6e1ca22ca9a06640ccb3728b692b25e4ac2943f0
7
- data.tar.gz: 7136697d46c01d2796333d70b5019ca2565476095d50494345b9bdf2173d8505e4ffd53a565394e16d8102faf61af57cafd2d262c5672c84d94af0425c846032
6
+ metadata.gz: dab1c303df16276ad546c60cb6f55af8343d341ac167e61e7d7688185aafad3b84e26c60275191cf81572d5020c09be58847867a4e74ed62db22346b2ae4e483
7
+ data.tar.gz: fb4bb3c096a6961e167debd1f24ced1905d2dbf91c09ba16170f2022ab002c5c23de1a05023e1228a5685e635f0119a3dab38a11ed565664ee3adfcabb8f1caf
@@ -8,8 +8,16 @@ module S3diff
8
8
  @file2 = file_object(file2)
9
9
  end
10
10
 
11
+ def both_exist?
12
+ @both_exist ||= begin
13
+ puts "#{@file1.original_path} is not exist." unless @file1.exist?
14
+ puts "#{@file2.original_path} is not exist." unless @file2.exist?
15
+ @file1.exist? && @file2.exist?
16
+ end
17
+ end
18
+
11
19
  def same_etag?
12
- @file1.etag == @file2.etag
20
+ both_exist? && @file1.etag == @file2.etag
13
21
  end
14
22
 
15
23
  def same?
@@ -7,15 +7,35 @@ module S3diff
7
7
  end
8
8
 
9
9
  def etag
10
- Digest::MD5.file(@file_path).to_s
10
+ Digest::MD5.file(@file_path).to_s if exist?
11
11
  end
12
12
 
13
13
  def size
14
- File.size(@file_path)
14
+ File.size(@file_path) if exist?
15
15
  end
16
16
 
17
17
  def path
18
+ if exist?
19
+ original_path
20
+ else
21
+ cache_file.path
22
+ end
23
+ end
24
+
25
+ def original_path
18
26
  @file_path
19
27
  end
28
+
29
+ def exist?
30
+ File.exist?(@file_path)
31
+ end
32
+
33
+ private
34
+
35
+ def cache_file
36
+ @cache_file ||= begin
37
+ Tempfile.new("")
38
+ end
39
+ end
20
40
  end
21
41
  end
@@ -1,4 +1,5 @@
1
1
  require "tempfile"
2
+ require "ostruct"
2
3
 
3
4
  module S3diff
4
5
  class S3File
@@ -8,27 +9,39 @@ module S3diff
8
9
  end
9
10
 
10
11
  def etag
11
- head.etag.delete(%("))
12
+ head.etag.delete(%(")) if exist?
12
13
  end
13
14
 
14
15
  def size
15
- head.content_length
16
+ head.content_length if exist?
16
17
  end
17
18
 
18
19
  def path
19
20
  cache_file.path
20
21
  end
21
22
 
23
+ def original_path
24
+ @uri
25
+ end
26
+
27
+ def exist?
28
+ !head.nil?
29
+ end
30
+
22
31
  private
23
32
 
24
33
  def head
25
- @head ||= @s3c.head_object(@uri)
34
+ @head ||= begin
35
+ @s3c.head_object(@uri)
36
+ rescue Aws::S3::Errors::NotFound
37
+ nil
38
+ end
26
39
  end
27
40
 
28
41
  def cache_file
29
42
  @cache_file ||= begin
30
43
  f = Tempfile.new("")
31
- @s3c.get_object(@uri, f)
44
+ @s3c.get_object(@uri, f) if exist?
32
45
  f.flush
33
46
  f
34
47
  end
@@ -1,3 +1,3 @@
1
1
  module S3diff
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: s3diff
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - masa21kik