uber-s3 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,12 +1,11 @@
1
1
  class UberS3
2
2
  class Object
3
3
  include Operation::Object::AccessPolicy
4
- include Operation::Object::CacheControl
5
4
  include Operation::Object::ContentDisposition
6
5
  include Operation::Object::ContentEncoding
7
6
  include Operation::Object::ContentMd5
8
7
  include Operation::Object::ContentType
9
- include Operation::Object::Expires
8
+ include Operation::Object::HttpCache
10
9
  include Operation::Object::Meta
11
10
  include Operation::Object::StorageClass
12
11
 
@@ -44,12 +43,13 @@ class UberS3
44
43
  gzip_content!
45
44
 
46
45
  # Standard pass through values
47
- headers['Cache-Control'] = cache_control
48
46
  headers['Content-Disposition'] = content_disposition
49
47
  headers['Content-Encoding'] = content_encoding
50
48
  headers['Content-Length'] = size.to_s
51
49
  headers['Content-Type'] = content_type
50
+ headers['Cache-Control'] = cache_control
52
51
  headers['Expires'] = expires
52
+ headers['Pragma'] = pragma
53
53
 
54
54
  headers.each {|k,v| headers.delete(k) if v.nil? || v.empty? }
55
55
 
@@ -0,0 +1,37 @@
1
+ module UberS3::Operation::Object
2
+ module HttpCache
3
+
4
+ def self.included(base)
5
+ base.send :extend, ClassMethods
6
+ base.send :include, InstanceMethods
7
+
8
+ base.instance_eval do
9
+ attr_accessor :cache_control, :expires, :pragma, :ttl
10
+ end
11
+ end
12
+
13
+ module ClassMethods
14
+ end
15
+
16
+ module InstanceMethods
17
+
18
+ # Helper method that will set the max-age for cache-control
19
+ def ttl=(seconds)
20
+ @ttl = seconds
21
+ self.cache_control = "public,max-age=#{seconds}"
22
+ end
23
+
24
+ # Expires can take a time or string
25
+ def expires=(val)
26
+ if val.is_a?(String)
27
+ self.expires = val
28
+ elsif val.is_a?(Time)
29
+ # RFC 1123 format
30
+ self.expires = val.strftime("%a, %d %b %Y %H:%I:%S %Z")
31
+ end
32
+ end
33
+
34
+ end
35
+
36
+ end
37
+ end
@@ -13,14 +13,14 @@ class UberS3
13
13
  self.body = options[:body]
14
14
  self.raw = options[:raw]
15
15
 
16
- check_for_errors!
16
+ success?
17
17
  end
18
18
 
19
19
  # TODO: can/should we normalize the keys..? downcase.. etc.?
20
20
  # def header=(header)
21
21
  # end
22
22
 
23
- def check_for_errors!
23
+ def success?
24
24
  return if status < 400 || body.to_s.empty?
25
25
 
26
26
  # Errors are XML
@@ -1,3 +1,3 @@
1
1
  class UberS3
2
- VERSION = '0.1.4'
2
+ VERSION = '0.1.5'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uber-s3
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,22 +9,22 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-10-21 00:00:00.000000000Z
12
+ date: 2011-11-11 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mime-types
16
- requirement: &70197560327260 !ruby/object:Gem::Requirement
16
+ requirement: &70176041499080 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: '1.16'
21
+ version: '1.17'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70197560327260
24
+ version_requirements: *70176041499080
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &70197560326480 !ruby/object:Gem::Requirement
27
+ requirement: &70176041498320 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70197560326480
35
+ version_requirements: *70176041498320
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec
38
- requirement: &70197560325160 !ruby/object:Gem::Requirement
38
+ requirement: &70176041496840 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: 2.7.0
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70197560325160
46
+ version_requirements: *70176041496840
47
47
  description: A simple & very fast S3 client supporting sync / async HTTP adapters
48
48
  email:
49
49
  - peter@nulayer.com
@@ -61,12 +61,11 @@ files:
61
61
  - lib/uber-s3/error.rb
62
62
  - lib/uber-s3/object.rb
63
63
  - lib/uber-s3/operation/object/access_policy.rb
64
- - lib/uber-s3/operation/object/cache_control.rb
65
64
  - lib/uber-s3/operation/object/content_disposition.rb
66
65
  - lib/uber-s3/operation/object/content_encoding.rb
67
66
  - lib/uber-s3/operation/object/content_md5.rb
68
67
  - lib/uber-s3/operation/object/content_type.rb
69
- - lib/uber-s3/operation/object/expires.rb
68
+ - lib/uber-s3/operation/object/http_cache.rb
70
69
  - lib/uber-s3/operation/object/meta.rb
71
70
  - lib/uber-s3/operation/object/storage_class.rb
72
71
  - lib/uber-s3/operation.rb
@@ -1,20 +0,0 @@
1
- module UberS3::Operation::Object
2
- module CacheControl
3
-
4
- def self.included(base)
5
- base.send :extend, ClassMethods
6
- base.send :include, InstanceMethods
7
-
8
- base.instance_eval do
9
- attr_accessor :cache_control
10
- end
11
- end
12
-
13
- module ClassMethods
14
- end
15
-
16
- module InstanceMethods
17
- end
18
-
19
- end
20
- end
@@ -1,20 +0,0 @@
1
- module UberS3::Operation::Object
2
- module Expires
3
-
4
- def self.included(base)
5
- base.send :extend, ClassMethods
6
- base.send :include, InstanceMethods
7
-
8
- base.instance_eval do
9
- attr_accessor :expires
10
- end
11
- end
12
-
13
- module ClassMethods
14
- end
15
-
16
- module InstanceMethods
17
- end
18
-
19
- end
20
- end