class Merb::Assets::UniqueAssetPath

Helper for creating unique paths to a file name Can increase speed for browsers that are limited to a certain number of connections per host for downloading static files (css, js, images…)

Public Class Methods

build(filename) click to toggle source

Builds the path to the file based on the name

Parameters

filename<String>

Name of file to generate path for

Returns

String

The path to the asset.

Examples

build("/javascripts/my_fancy_script.js")
# => "https://assets5.my-awesome-domain.com/javascripts/my_fancy_script.js"
# File lib/merb-assets/assets.rb, line 79
def build(filename)
  config = Merb::Plugins.config[:asset_helpers]
  #%{#{(USE_SSL ? 'https' : 'http')}://#{sprintf(config[:asset_domain],self.calculate_host_id(file))}.#{config[:domain]}/#{filename}}
  path = config[:use_ssl] ? 'https://' : 'http://'
  path << sprintf(config[:asset_domain],self.calculate_host_id(filename)) << "." if config[:asset_domain]
  path << config[:domain]
  path << "/" if filename.index('/') != 0
  path << filename
end

Protected Class Methods

calculate_host_id(filename) click to toggle source

Calculates the id for the host

# File lib/merb-assets/assets.rb, line 92
def calculate_host_id(filename)
  ascii_total = 0
  filename.each_byte {|byte|
    ascii_total += byte
  }
  (ascii_total % Merb::Plugins.config[:asset_helpers][:max_hosts] + 1)
end