Module: CloudfrontAssetHost
- Defined in:
- lib/cloudfront_asset_host.rb,
lib/cloudfront_asset_host/uploader.rb,
lib/cloudfront_asset_host/css_rewriter.rb
Defined Under Namespace
Modules: CssRewriter, Uploader
Class Method Summary
collapse
Class Method Details
.asset_host(source = nil, request = nil) ⇒ Object
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
# File 'lib/cloudfront_asset_host.rb', line 56
def asset_host(source = nil, request = nil)
host = cname.present? ? "http://#{self.cname}" : "http://#{self.bucket_host}"
if source && request && CloudfrontAssetHost.gzip
gzip_allowed = CloudfrontAssetHost.gzip_allowed_for_source?(source)
user_agent = request.['User-Agent'].to_s
gzip_accepted = !(user_agent =~ /^Mozilla\/4/) || user_agent =~ /\bMSIE/
gzip_accepted &&= request.['Accept-Encoding'].to_s.include?('gzip')
if gzip_accepted && gzip_allowed
host << "/#{CloudfrontAssetHost.gzip_prefix}"
else
host << "/#{CloudfrontAssetHost.plain_prefix}"
end
else
host << "/#{CloudfrontAssetHost.plain_prefix}"
end
host
end
|
.bucket_host ⇒ Object
88
89
90
|
# File 'lib/cloudfront_asset_host.rb', line 88
def bucket_host
"#{self.bucket}.s3.amazonaws.com"
end
|
.cname ⇒ Object
80
81
82
83
84
85
86
|
# File 'lib/cloudfront_asset_host.rb', line 80
def cname
if @@cname.is_a? Proc
@@cname.call
else
@@cname
end
end
|
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
# File 'lib/cloudfront_asset_host.rb', line 37
def configure
self.bucket = nil
self.cname = nil
self.key_prefix = ""
self.s3_config = "#{RAILS_ROOT}/config/s3.yml"
self.enabled = false
self.gzip = true
self.gzip_extensions = %w(js css)
self.gzip_prefix = "gz"
yield(self)
if properly_configured?
enable!
end
end
|
.gzip_allowed_for_source?(source) ⇒ Boolean
104
105
106
107
|
# File 'lib/cloudfront_asset_host.rb', line 104
def gzip_allowed_for_source?(source)
extension = source.split('.').last
CloudfrontAssetHost.gzip_extensions.include?(extension)
end
|
.key_for_path(path) ⇒ Object
100
101
102
|
# File 'lib/cloudfront_asset_host.rb', line 100
def key_for_path(path)
key_prefix + md5sum(path)[0..8]
end
|