middleman-s3_sync 3.0.42 → 3.0.43

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: 03c51e34acdeb9466c168f86b1982584be99c302
4
- data.tar.gz: d7f990813e525f879873ac159f519cea1a896b80
3
+ metadata.gz: ec063de98b5edc03b6fee93905f98ff7369db7ec
4
+ data.tar.gz: 53b08ef2bbe4e17dec2f5166417e33747d525108
5
5
  SHA512:
6
- metadata.gz: bf77e601482c48d5c0d0ad73c933d2983501f7b790ce2c4a8dc73246f00c8c3d92f216e780aa5b8fd558fe5ad5fc45d0a63e9bcf4bec3a422bb31d36f5acfba5
7
- data.tar.gz: 49b2a445bf9a865fca7a70ad086c4c2c0184677dc2598d3d567e9a83381f9ad8a0050e08b791c0cfb962b2c35b6e4cc63945fba2237a5f65865b1e737a930bc0
6
+ metadata.gz: d550c40f73ed73b13f238ab93b3bd66c3aab1f1df6b0a02c9fb32aa8716c03098b1a0d421381742fa62541641cec5d76144d8af0500191b14525f3d31998fbde
7
+ data.tar.gz: b453c3dbbf7405a0e062adf09a5ca73c57cefc3f5104d74b700b653afc23612591d64c7fe3410913186958f23f35a00103aa8bf22622370c8b60f62ae0e00db0
data/.travis.yml CHANGED
@@ -6,6 +6,14 @@ rvm:
6
6
  - 2.1.5
7
7
  - 2.2.1
8
8
 
9
+ notifications:
10
+ webhooks:
11
+ urls:
12
+ - https://webhooks.gitter.im/e/e47a30963be3bcbe2df9
13
+ on_success: change # options: [always|never|change] default: always
14
+ on_failure: always # options: [always|never|change] default: always
15
+ on_start: false # default: false
16
+
9
17
  env:
10
18
  global:
11
19
  - secure: ! 'dQ/vYDmUZEW9LD8IyTRFoRFo24w2yJTYQHuAS24vfKToDZ0BO2/Tpq5lh0vb
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Middleman::S3Sync
2
2
 
3
- [![Code Climate](https://codeclimate.com/github/fredjean/middleman-s3_sync.png)](https://codeclimate.com/github/fredjean/middleman-s3_sync) [![Build Status](https://travis-ci.org/fredjean/middleman-s3_sync.png?branch=master)](https://travis-ci.org/fredjean/middleman-s3_sync)
3
+ [![Join the chat at https://gitter.im/fredjean/middleman-s3_sync](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/fredjean/middleman-s3_sync?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Code Climate](https://codeclimate.com/github/fredjean/middleman-s3_sync.png)](https://codeclimate.com/github/fredjean/middleman-s3_sync) [![Build Status](https://travis-ci.org/fredjean/middleman-s3_sync.png?branch=master)](https://travis-ci.org/fredjean/middleman-s3_sync)
4
4
 
5
5
  This gem determines which files need to be added, updated and optionally deleted
6
6
  and only transfer these files up. This reduces the impact of an update
@@ -1,4 +1,4 @@
1
- require 'fog'
1
+ require 'fog/aws/storage'
2
2
  require 'pmap'
3
3
  require 'digest/md5'
4
4
  require 'middleman/s3_sync/version'
@@ -8,11 +8,14 @@ require 'middleman/s3_sync/status'
8
8
  require 'middleman/s3_sync/resource'
9
9
  require 'middleman-s3_sync/extension'
10
10
  require 'ruby-progressbar'
11
+ require 'thread'
11
12
 
12
13
  module Middleman
13
14
  module S3Sync
14
15
  class << self
15
16
  include Status
17
+ @@bucket_lock = Mutex.new
18
+ @@bucket_files_lock = Mutex.new
16
19
 
17
20
  def sync(options)
18
21
  @app = ::Middleman::Application.server.inst
@@ -40,11 +43,13 @@ module Middleman
40
43
  end
41
44
 
42
45
  def bucket
43
- @bucket ||= begin
44
- bucket = connection.directories.get(s3_sync_options.bucket, :prefix => s3_sync_options.prefix)
45
- raise "Bucket #{s3_sync_options.bucket} doesn't exist!" unless bucket
46
- bucket
47
- end
46
+ @@bucket_lock.synchronize do
47
+ @bucket ||= begin
48
+ bucket = connection.directories.get(s3_sync_options.bucket, :prefix => s3_sync_options.prefix)
49
+ raise "Bucket #{s3_sync_options.bucket} doesn't exist!" unless bucket
50
+ bucket
51
+ end
52
+ end
48
53
  end
49
54
 
50
55
  protected
@@ -53,8 +58,7 @@ module Middleman
53
58
  end
54
59
 
55
60
  def connection
56
- @connection ||= Fog::Storage.new({
57
- :provider => 'AWS',
61
+ @connection ||= Fog::Storage::AWS.new({
58
62
  :aws_access_key_id => s3_sync_options.aws_access_key_id,
59
63
  :aws_secret_access_key => s3_sync_options.aws_secret_access_key,
60
64
  :region => s3_sync_options.region,
@@ -94,15 +98,21 @@ module Middleman
94
98
  end
95
99
 
96
100
  def remote_paths
97
- @remote_paths ||= bucket_files.map(&:key)
101
+ @remote_paths ||= if s3_sync_options.delete
102
+ bucket_files.map(&:key)
103
+ else
104
+ []
105
+ end
98
106
  end
99
107
 
100
108
  def bucket_files
101
- @bucket_files ||= [].tap { |files|
102
- bucket.files.each { |f|
103
- files << f
109
+ @@bucket_files_lock.synchronize do
110
+ @bucket_files ||= [].tap { |files|
111
+ bucket.files.each { |f|
112
+ files << f
113
+ }
104
114
  }
105
- }
115
+ end
106
116
  end
107
117
 
108
118
  def create_resources
@@ -1,5 +1,5 @@
1
1
  module Middleman
2
2
  module S3Sync
3
- VERSION = "3.0.42"
3
+ VERSION = "3.0.43"
4
4
  end
5
5
  end
@@ -20,7 +20,7 @@ Gem::Specification.new do |gem|
20
20
 
21
21
  gem.add_runtime_dependency 'middleman-core', '>= 3.0.0'
22
22
  gem.add_runtime_dependency 'unf'
23
- gem.add_runtime_dependency 'fog', '>= 1.25.0'
23
+ gem.add_runtime_dependency 'fog-aws', '>= 0.1.1'
24
24
  gem.add_runtime_dependency 'map'
25
25
  gem.add_runtime_dependency 'pmap'
26
26
  gem.add_runtime_dependency 'ruby-progressbar'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: middleman-s3_sync
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.42
4
+ version: 3.0.43
5
5
  platform: ruby
6
6
  authors:
7
7
  - Frederic Jean
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-03-04 00:00:00.000000000 Z
12
+ date: 2015-03-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: middleman-core
@@ -40,19 +40,19 @@ dependencies:
40
40
  - !ruby/object:Gem::Version
41
41
  version: '0'
42
42
  - !ruby/object:Gem::Dependency
43
- name: fog
43
+ name: fog-aws
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
46
  - - ">="
47
47
  - !ruby/object:Gem::Version
48
- version: 1.25.0
48
+ version: 0.1.1
49
49
  type: :runtime
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
53
  - - ">="
54
54
  - !ruby/object:Gem::Version
55
- version: 1.25.0
55
+ version: 0.1.1
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: map
58
58
  requirement: !ruby/object:Gem::Requirement