module RapperLite::Versioning

Asset versioning methods.

Public Instance Methods

needs_packaging?( type, name ) click to toggle source
# File lib/rapper_lite/versioning.rb, line 7
def needs_packaging?( type, name )
  return true unless File.exists?( self.destination_path( type, name ) )
  self.version( type, name ) != @definitions[type][name]["version"]
end

Protected Instance Methods

refresh_versions() click to toggle source
# File lib/rapper_lite/versioning.rb, line 24
def refresh_versions
  [:css, :js].each do |type|
    @definitions[type].each do |name, spec|
      next if self.config_key?( name )
      @definitions[type][name]["version"] = self.version( type, name )
    end
  end
end
version( type, name ) click to toggle source

MD5 version of the concatenated raw asset package.

# File lib/rapper_lite/versioning.rb, line 15
def version( type, name )
  source_paths = self.file_paths( type, name )
  destination_file = Tempfile.new( 'rapper' )
  self.join_files( source_paths, destination_file.path )
  version = Digest::MD5.file( destination_file.path ).to_s[0,7]
  destination_file.unlink
  version
end