Skip to content

Commit

Permalink
Merge remote branch 'dedene/master' into dedene
Browse files Browse the repository at this point in the history
Conflicts:
	Gemfile.lock
	jammit-s3.gemspec
	lib/jammit/s3_uploader.rb
  • Loading branch information
Kliment Mamykin committed Apr 17, 2011
2 parents 35497a0 + 5b1a350 commit a283a24
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 1 deletion.
35 changes: 35 additions & 0 deletions lib/jammit-s3.rb
Expand Up @@ -7,3 +7,38 @@ def self.upload_to_s3!(options = {})
S3Uploader.new(options).upload
end
end

if defined?(Rails)
module Jammit
class JammitRailtie < Rails::Railtie
initializer "set asset host and asset id" do
config.before_initialize do
if Jammit.configuration[:use_cloudfront] && Jammit.configuration[:cloudfront_cname].present? && Jammit.configuration[:cloudfront_domain].present?
asset_hostname = Jammit.configuration[:cloudfront_cname]
asset_hostname_ssl = Jammit.configuration[:cloudfront_domain]
elsif Jammit.configuration[:use_cloudfront] && Jammit.configuration[:cloudfront_domain].present?
asset_hostname = asset_hostname_ssl = Jammit.configuration[:cloudfront_domain]
else
asset_hostname = asset_hostname_ssl = "#{Jammit.configuration[:s3_bucket]}.s3.amazonaws.com"
end

if Jammit.package_assets and asset_hostname.present?
puts "Initializing Cloudfront"
ActionController::Base.asset_host = Proc.new do |source, request|
if Jammit.configuration.has_key?(:ssl)
protocol = Jammit.configuration[:ssl] ? "https://" : "http://"
else
protocol = request.protocol
end
if request.protocol == "https://"
"#{protocol}#{asset_hostname_ssl}"
else
"#{protocol}#{asset_hostname}"
end
end
end
end
end
end
end
end
12 changes: 11 additions & 1 deletion lib/jammit/s3_uploader.rb
Expand Up @@ -17,6 +17,16 @@ def initialize(options = {})
@bucket_location = options[:bucket_location] || Jammit.configuration[:s3_bucket_location]
@cache_control = options[:cache_control] || Jammit.configuration[:s3_cache_control]
@acl = options[:acl] || Jammit.configuration[:s3_permission]
@use_cloud_front = options[:use_cloudfront] || Jammit.configuration[:use_cloudfront]
if @use_cloud_front
@changed_files = []
@cloudfront_id = options[:cloudfront_id] || Jammit.configuration[:cloudfront_id]
end

log "Using following config:"
log " - bucket: #{@bucket_name}"
log " - access_key: #{@access_key_id}"
log " - cloudfront_id: #{@cloudfront_id}"

@bucket = find_or_create_bucket
if Jammit.configuration[:use_cloudfront]
Expand Down Expand Up @@ -122,7 +132,7 @@ def find_or_create_bucket
def invalidate_cache(files)
paths = ""
files.each do |key|
log "adding #{key} to list of invalidation requests"
log "adding /#{key} to list of invalidation requests"
paths += "<Path>/#{key}</Path>"
end
digest = HMAC::SHA1.new(@secret_access_key)
Expand Down

0 comments on commit a283a24

Please sign in to comment.