middleman-s3_sync 3.0.6 → 3.0.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -13,6 +13,9 @@ end
13
13
  module Middleman
14
14
  module S3Sync
15
15
  class << self
16
+ LONG_TIME = 315360000 # 10 years
17
+ DONT_CACHE = ['html'] # types of files to exclude from browser cache
18
+
16
19
  def sync
17
20
  puts "Gathering local files."
18
21
 
@@ -62,15 +65,34 @@ module Middleman
62
65
  file = s3_files.get(f)
63
66
  file.body = File.open("#{options.build_dir}/#{f}")
64
67
  file.public = true
68
+ file.content_type = MIME::Types.of(f).first
69
+ ext = File.extname(f)[1..-1]
70
+
71
+ unless DONT_CACHE.include? ext
72
+ file.cache_control = "public, max-age=#{LONG_TIME}"
73
+ file.expires = CGI.rfc1123_date(Time.now + LONG_TIME)
74
+ end
75
+
65
76
  file.save
66
77
  else
67
78
  puts "Creating #{f}"
68
- file = bucket.files.create({
79
+ file_hash = {
69
80
  :key => f,
70
81
  :body => File.open("#{options.build_dir}/#{f}"),
71
82
  :public => true,
72
- :acl => 'public-read'
73
- })
83
+ :acl => 'public-read',
84
+ :content_type => MIME::Types.of(f).first
85
+ }
86
+
87
+ # Add cache-control headers
88
+ ext = File.extname(f)[1..-1]
89
+ unless DONT_CACHE.include? ext
90
+ file_hash.merge!({
91
+ :cache_control => "public, max-age=#{LONG_TIME}",
92
+ :expires => CGI.rfc1123_date(Time.now + LONG_TIME)
93
+ })
94
+ end
95
+ file = bucket.files.create(file_hash)
74
96
  end
75
97
  end
76
98
  else
@@ -1,5 +1,5 @@
1
1
  module Middleman
2
2
  module S3Sync
3
- VERSION = "3.0.6"
3
+ VERSION = "3.0.7"
4
4
  end
5
5
  end
@@ -6,7 +6,7 @@ require 'middleman-s3_sync/version'
6
6
  Gem::Specification.new do |gem|
7
7
  gem.name = "middleman-s3_sync"
8
8
  gem.version = Middleman::S3Sync::VERSION
9
- gem.authors = ["Frederic Jean"]
9
+ gem.authors = ["Frederic Jean", "Will Koehler"]
10
10
  gem.email = ["fred@fredjean.net"]
11
11
  gem.description = %q{Only syncs files that have been updated to S3.}
12
12
  gem.summary = %q{Tries really, really hard not to push files to S3.}
metadata CHANGED
@@ -2,17 +2,17 @@
2
2
  name: middleman-s3_sync
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 3.0.6
5
+ version: 3.0.7
6
6
  platform: ruby
7
7
  authors:
8
8
  - Frederic Jean
9
+ - Will Koehler
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
- date: 2013-02-28 00:00:00.000000000 Z
13
+ date: 2013-03-21 00:00:00.000000000 Z
13
14
  dependencies:
14
15
  - !ruby/object:Gem::Dependency
15
- type: :runtime
16
16
  version_requirements: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
@@ -27,8 +27,8 @@ dependencies:
27
27
  - - ! '>='
28
28
  - !ruby/object:Gem::Version
29
29
  version: 3.0.0
30
- - !ruby/object:Gem::Dependency
31
30
  type: :runtime
31
+ - !ruby/object:Gem::Dependency
32
32
  version_requirements: !ruby/object:Gem::Requirement
33
33
  none: false
34
34
  requirements:
@@ -43,8 +43,8 @@ dependencies:
43
43
  - - ! '>='
44
44
  - !ruby/object:Gem::Version
45
45
  version: '0'
46
- - !ruby/object:Gem::Dependency
47
46
  type: :runtime
47
+ - !ruby/object:Gem::Dependency
48
48
  version_requirements: !ruby/object:Gem::Requirement
49
49
  none: false
50
50
  requirements:
@@ -59,8 +59,8 @@ dependencies:
59
59
  - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
+ type: :runtime
62
63
  - !ruby/object:Gem::Dependency
63
- type: :development
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  none: false
66
66
  requirements:
@@ -75,6 +75,7 @@ dependencies:
75
75
  - - ! '>='
76
76
  - !ruby/object:Gem::Version
77
77
  version: '0'
78
+ type: :development
78
79
  description: Only syncs files that have been updated to S3.
79
80
  email:
80
81
  - fred@fredjean.net
@@ -106,7 +107,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
106
107
  - !ruby/object:Gem::Version
107
108
  segments:
108
109
  - 0
109
- hash: 4207882760766588596
110
+ hash: -892703647475452173
110
111
  version: '0'
111
112
  required_rubygems_version: !ruby/object:Gem::Requirement
112
113
  none: false
@@ -115,7 +116,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
115
116
  - !ruby/object:Gem::Version
116
117
  segments:
117
118
  - 0
118
- hash: 4207882760766588596
119
+ hash: -892703647475452173
119
120
  version: '0'
120
121
  requirements: []
121
122
  rubyforge_project: