Skip to content

Instantly share code, notes, and snippets.

@patrickberkeley
Forked from codebrew/assets.js.erb
Created October 12, 2012 15:21
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save patrickberkeley/3879730 to your computer and use it in GitHub Desktop.
Save patrickberkeley/3879730 to your computer and use it in GitHub Desktop.
javascript asset helper
App.assets = {
// Returns an object containing all of asset pipeline's image paths.
//
// Sample:
//
// {
// avatars/missing_avatar.png: "/assets/avatars/missing_avatar.png"
// chosen-sprite.png: "/assets/chosen-sprite.png"
// circle_green.png: "/assets/circle_green.png"
// circle_orange.png: "/assets/circle_orange.png"
// circle_red.png: "/assets/circle_red.png"
// circle_yellow.png: "/assets/circle_yellow.png"
// document.png: "/assets/document.png"
// }
//
images: {
<% AssetsUtil.images.each do |img| %>
"<%= img %>" : "<%= asset_path(img) %>",
<% end %>
},
// Return a formatted URL for an asset.
//
// Sample:
//
// "/assets/document/png."
//
path: function(name) {
// If the file is in our images object, pull the path from there.
if (this.images && this.images[name]) {
return this.images[name];
}
// Otherwise, create a generic asset path.
return '/assets/' + name;
}
}
module AssetsUtil
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.path('bookmarklet/add.png') %>">
<div>
@hcientist
Copy link

I put the assets_util.rb in my helpers directory.

@specialorange
Copy link

Any way to refresh the App.assets if the the Rails caching is not updating.....?

I am having to stop the server, clear the cache, and start the server after every creation, because it only loads at the start. Any way to call /serve this up again?

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