# File lib/padrino-contrib/helpers/assets_compressor.rb, line 48
          def cache_asset(file, options={}, &block)
            began_at  = Time.now
            kind      = File.extname(file).sub(/\./, '').to_sym
            original  = Dir[File.join(settings.views, file).sub(/#{kind}$/, "*")][0]
            mtime     = File.mtime(original).to_i
            file      = file.sub(/#{kind}$/, "#{mtime}.#{kind}")
            path      = Padrino.root("public", uri_root_path(file))

            if !File.exist?(path)
              source = block.call

              if options[:compress]
                source = settings.compressor[kind].compress(source)
              end

              Dir.mkdir(File.dirname(path)) unless File.exist?(File.dirname(path))
              File.open(path, "w") { |f| f.write(source) }
              logger.debug "Compressed (%0.2fms) %s" % [Time.now-began_at, path] if defined?(logger)
            end

            redirect file
          end