Skip to content

Instantly share code, notes, and snippets.

@codebrew
Created November 29, 2011 20:31
Show Gist options
  • Star 14 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save codebrew/1406349 to your computer and use it in GitHub Desktop.
Save codebrew/1406349 to your computer and use it in GitHub Desktop.
javascript asset helper
// helper to create proper asset paths if an asset host is configured
App.assets = {
assets : {
<% AssetsUtil.images.each do |img| %>
"<%= img %>" : "<%= asset_path(img) %>",
<% end %>
},
url : function(path) {
return window.ASSETS_URL ? window.ASSETS_URL + path : path;
},
asset_path : function(source) {
return this.url("/assets/"+source);
},
imageUrl : function(imageName) {
if(this.assets && this.assets[imageName]) return this.assets[imageName];
return this.asset_path(imageName);
},
}
module AssetsUtil
def self.assets_url
self.config["environments"][Rails.env]["assets"]
end
def self.server_host
self.config["environments"][Rails.env]["host"]
end
def self.config
@@config ||= YAML.load_file(File.join(Rails.root, 'config', 'assets.yml'))
@@config
end
def self.images
Dir.glob(Rails.root.join("app/assets/images/**/*.*")).map do |path|
path.gsub(Rails.root.join("app/assets/images/").to_s, "")
end
end
end
<div class="example">
<img src="<%= App.assets.imageUrl('bookmarklet/add.png') %>">
<div>
@hcientist
Copy link

where does the assets_util.rb belong?

@xentek
Copy link

xentek commented Jun 27, 2013

@thegreatmichael

(edited) If you save the file to lib/assets_util.rb, and add a config/initalizers/assets_util.rb that requires it (e.g. , `require 'lib/assets_util') you should be good to go.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment