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