foresth-cloudfront_asset_host 1.0.4 → 1.0.6
Sign up to get free protection for your applications and to get access to all the features.
- data/README.markdown +14 -9
- data/VERSION +1 -1
- data/cloudfront_asset_host.gemspec +1 -1
- data/lib/cloudfront_asset_host.rb +11 -7
- data/lib/cloudfront_asset_host/css_rewriter.rb +1 -1
- metadata +3 -3
data/README.markdown
CHANGED
@@ -26,7 +26,7 @@ Include the gem in your app's `environment.rb` or `Gemfile`.
|
|
26
26
|
|
27
27
|
### Dependencies
|
28
28
|
|
29
|
-
The gem relies on `
|
29
|
+
The gem relies on `gzip` utility. Make sure it is available locally and on your servers.
|
30
30
|
|
31
31
|
### Configuration
|
32
32
|
|
@@ -34,6 +34,12 @@ Make sure your s3-credentials are stored in _config/s3.yml_ like this:
|
|
34
34
|
|
35
35
|
access_key_id: 'access_key'
|
36
36
|
secret_access_key: 'secret'
|
37
|
+
|
38
|
+
or with environment specified:
|
39
|
+
|
40
|
+
production:
|
41
|
+
access_key_id: 'access_key'
|
42
|
+
secret_access_key: 'secret'
|
37
43
|
|
38
44
|
Create an initializer to configure the plugin _config/initializers/cloudfront_asset_host.rb_
|
39
45
|
|
@@ -45,10 +51,11 @@ Create an initializer to configure the plugin _config/initializers/cloudfront_as
|
|
45
51
|
|
46
52
|
# Extended configuration
|
47
53
|
CloudfrontAssetHost.configure do |config|
|
48
|
-
config.bucket
|
49
|
-
config.cname
|
50
|
-
config.key_prefix
|
51
|
-
config.
|
54
|
+
config.bucket = "bucketname" # required
|
55
|
+
config.cname = "assets.domain.com" # if you have a cname configured for your distribution or bucket
|
56
|
+
config.key_prefix = "app/" # if you share the bucket and want to keep things separated
|
57
|
+
config.plain_prefix = "" # prefix for paths to uncompressed files
|
58
|
+
config.s3_config = "#{RAILS_ROOT}/config/s3.yml" # Alternative location of your s3-config file
|
52
59
|
|
53
60
|
# gzip related configuration
|
54
61
|
config.gzip = true # enable gzipped assets (defaults to true)
|
@@ -57,6 +64,8 @@ Create an initializer to configure the plugin _config/initializers/cloudfront_as
|
|
57
64
|
|
58
65
|
config.enabled = true if Rails.env.production? # only enable in production
|
59
66
|
end
|
67
|
+
|
68
|
+
The _cname_ config option also accepts Proc or string with the "%d" parameter (e.g. "http://assets%d.example.com" for multiple hosts).
|
60
69
|
|
61
70
|
## Usage
|
62
71
|
|
@@ -73,10 +82,6 @@ When using in combination with SASS and/or asset_packager it is recommended to g
|
|
73
82
|
|
74
83
|
Feel free to fork the project and send pull-requests.
|
75
84
|
|
76
|
-
## Known Limitations
|
77
|
-
|
78
|
-
- Does not delete old assets
|
79
|
-
|
80
85
|
## Compatibility
|
81
86
|
|
82
87
|
Tested on Rails 2.3.5 with SASS and AssetPackager plugins
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.6
|
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{foresth-cloudfront_asset_host}
|
8
|
-
s.version = "1.0.
|
8
|
+
s.version = "1.0.6"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Menno van der Sman"]
|
@@ -34,7 +34,7 @@ module CloudfrontAssetHost
|
|
34
34
|
mattr_accessor :gzip_prefix
|
35
35
|
|
36
36
|
# Key-prefix under which to store plain (unzipped) assets
|
37
|
-
|
37
|
+
mattr_accessor :plain_prefix
|
38
38
|
|
39
39
|
# Which extensions are likely to occur in css files
|
40
40
|
mattr_accessor :image_extensions
|
@@ -58,7 +58,7 @@ module CloudfrontAssetHost
|
|
58
58
|
|
59
59
|
yield(self)
|
60
60
|
|
61
|
-
if properly_configured?
|
61
|
+
if properly_configured? && enabled
|
62
62
|
enable!
|
63
63
|
end
|
64
64
|
end
|
@@ -100,11 +100,15 @@ module CloudfrontAssetHost
|
|
100
100
|
end
|
101
101
|
|
102
102
|
def enable!
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
103
|
+
ActionController::Base.asset_host = Proc.new { |source, request| CloudfrontAssetHost.asset_host(source, request) }
|
104
|
+
ActionView::Helpers::AssetTagHelper.send(:alias_method_chain, :rewrite_asset_path, :cloudfront)
|
105
|
+
ActionView::Helpers::AssetTagHelper.send(:alias_method_chain, :rails_asset_id, :cloudfront)
|
106
|
+
end
|
107
|
+
|
108
|
+
def disable!
|
109
|
+
ActionController::Base.asset_host = nil
|
110
|
+
ActionView::Helpers::AssetTagHelper.send(:alias_method, :rewrite_asset_path, :rewrite_asset_path_without_cloudfront)
|
111
|
+
ActionView::Helpers::AssetTagHelper.send(:alias_method, :rails_asset_id, :rails_asset_id_without_cloudfront)
|
108
112
|
end
|
109
113
|
|
110
114
|
def key_for_path(path)
|
@@ -34,7 +34,7 @@ module CloudfrontAssetHost
|
|
34
34
|
|
35
35
|
if path.present? && File.exists?(path)
|
36
36
|
key = CloudfrontAssetHost.key_for_path(path) + path.gsub(Rails.public_path, '')
|
37
|
-
"url(#{CloudfrontAssetHost.asset_host}/#{key})"
|
37
|
+
"url(#{CloudfrontAssetHost.asset_host(url)}/#{key})"
|
38
38
|
else
|
39
39
|
puts "Could not extract path: #{path}"
|
40
40
|
asset_link
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foresth-cloudfront_asset_host
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 1.0.
|
9
|
+
- 6
|
10
|
+
version: 1.0.6
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Menno van der Sman
|