module DynamicAssets::Controller

Public Instance Methods

show_javascript() click to toggle source
# File lib/dynamic_assets/controller.rb, line 13
def show_javascript
  render_asset :javascripts, params[:name], "text/javascript"
end
show_stylesheet() click to toggle source

Actions

# File lib/dynamic_assets/controller.rb, line 9
def show_stylesheet
  render_asset :stylesheets, params[:name], "text/css"
end

Private Instance Methods

cache_asset(asset) click to toggle source
# File lib/dynamic_assets/controller.rb, line 28
def cache_asset(asset)
  return unless Manager.cache? && params[:signature]

  response.cache_control[:public] = true
  response.cache_control[:max_age] = 365.days
  headers["Expires"] = (Time.now + 365.days).utc.httpdate
end
render_asset(type, name, mime_type) click to toggle source
# File lib/dynamic_assets/controller.rb, line 20
def render_asset(type, name, mime_type)
  asset = Manager.asset_reference_for_name type, name
  raise ActionController::RoutingError.new "No route matches \"#{request.path}\"" unless asset

  cache_asset asset
  render :layout => false, :text => asset.content(ViewContext.get(self)), :content_type => mime_type
end