filey-diff 1.1.2 → 1.2.0

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d69bd737e5e7e76cac4dd58fa4b5be027d1622e0
4
+ data.tar.gz: 0bc0f5896d1ce23b132dfcce1dcad9e8e89e2606
5
+ SHA512:
6
+ metadata.gz: 1baf0d708088e4399c96aab9cf24460b86a97c0b1c9833785ecec020e318927eb417b551a3d2ddad63ac9fd21474e54e192a57a8b7f4bc11744cf3263a575d5e
7
+ data.tar.gz: 02215cc721dc9cd6e7733b68272c0b62c0ee76dbf0417a7a3a6ced5c0fc7f4a1830c689ce7a557c8610f1728e88d45c46d409abbfab10d3ceb36d5b9423700e7
data/changelog.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  This project is [Semantically Versioned](http://semver.org).
4
4
 
5
+ ## 1.2.0
6
+
7
+ * Improve performance by loading S3 objects in parallel
8
+
5
9
  ## 1.1.2
6
10
 
7
11
  * Co-operate with Ruby 2.0.0 automatic gzip decoding
data/filey-diff.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'filey-diff'
3
- s.version = '1.1.2'
3
+ s.version = '1.2.0'
4
4
 
5
5
  s.summary = "Compare two data sources that contain file-like objects"
6
6
  s.description =
@@ -8,31 +8,40 @@ module Filey
8
8
  private
9
9
 
10
10
  def do_internal_load
11
- @s3_bucket.objects.map { |s3_object|
12
- if (s3_object.key.include?'/')
13
- path = s3_object.key.scan(/(.*\/).*/).first.first
14
- name = s3_object.key.scan(/.*\/(.*)/).first.first
15
- else
16
- path = ''
17
- name = s3_object.key
18
- end
11
+ fileys = []
12
+ threads = @s3_bucket.objects.map { |s3_object|
13
+ Thread.new(s3_object) {
14
+ fileys << map_s3_object_to_filey(s3_object)
15
+ }
16
+ }
17
+ threads.each { |thread| thread.join }
18
+ fileys
19
+ end
19
20
 
20
- if (s3_object.head[:content_encoding] == "gzip")
21
- last_modified, md5 = last_modified_and_md5_from_gzipped(
22
- s3_object, path
23
- )
24
- else
25
- last_modified, md5 = last_modified_and_md5(s3_object)
26
- end
21
+ def map_s3_object_to_filey(s3_object)
22
+ if (s3_object.key.include?'/')
23
+ path = s3_object.key.scan(/(.*\/).*/).first.first
24
+ name = s3_object.key.scan(/.*\/(.*)/).first.first
25
+ else
26
+ path = ''
27
+ name = s3_object.key
28
+ end
27
29
 
28
- normalised_path = "./#{path}"
29
- Filey.new(
30
- normalised_path,
31
- name,
32
- last_modified,
33
- md5
30
+ if (s3_object.head[:content_encoding] == "gzip")
31
+ last_modified, md5 = last_modified_and_md5_from_gzipped(
32
+ s3_object, path
34
33
  )
35
- }
34
+ else
35
+ last_modified, md5 = last_modified_and_md5(s3_object)
36
+ end
37
+
38
+ normalised_path = "./#{path}"
39
+ Filey.new(
40
+ normalised_path,
41
+ name,
42
+ last_modified,
43
+ md5
44
+ )
36
45
  end
37
46
 
38
47
  def last_modified_and_md5(s3_object)
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: filey-diff
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
5
- prerelease:
4
+ version: 1.2.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Lauri Lehmijoki
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-06-16 00:00:00.000000000 Z
11
+ date: 2013-06-17 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rake
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rspec
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ~>
36
32
  - !ruby/object:Gem::Version
@@ -38,12 +34,11 @@ dependencies:
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ~>
44
39
  - !ruby/object:Gem::Version
45
40
  version: '2.11'
46
- description: ! "\n Find missing or outdated files.\n For example, compare your
41
+ description: "\n Find missing or outdated files.\n For example, compare your
47
42
  local file system to an AWS S3 bucket.\n "
48
43
  email: lauri.lehmijoki@iki.fi
49
44
  executables: []
@@ -69,33 +64,26 @@ files:
69
64
  - spec/spec_helper.rb
70
65
  homepage: http://github.com/laurilehmijoki/filey-diff
71
66
  licenses: []
67
+ metadata: {}
72
68
  post_install_message:
73
69
  rdoc_options: []
74
70
  require_paths:
75
71
  - lib
76
72
  required_ruby_version: !ruby/object:Gem::Requirement
77
- none: false
78
73
  requirements:
79
- - - ! '>='
74
+ - - '>='
80
75
  - !ruby/object:Gem::Version
81
76
  version: '0'
82
- segments:
83
- - 0
84
- hash: 4447757573038540080
85
77
  required_rubygems_version: !ruby/object:Gem::Requirement
86
- none: false
87
78
  requirements:
88
- - - ! '>='
79
+ - - '>='
89
80
  - !ruby/object:Gem::Version
90
81
  version: '0'
91
- segments:
92
- - 0
93
- hash: 4447757573038540080
94
82
  requirements: []
95
83
  rubyforge_project:
96
- rubygems_version: 1.8.25
84
+ rubygems_version: 2.0.3
97
85
  signing_key:
98
- specification_version: 3
86
+ specification_version: 4
99
87
  summary: Compare two data sources that contain file-like objects
100
88
  test_files:
101
89
  - spec/comparison_spec.rb