Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
require 'uuidtools' class Media < Application before :login_required before :localize_methods, :only => [:new] before :cleanse_empty_data_references, :only => [:create] provides :html, :only => [:create] # This default action (see router.rb) is just fodder to feed our redirect. # no one should be doing anything here except uploading. def index MERB_LOGGER.info('--BAD-URI') redirect 'http://api.jamlab.com/' end # GET /media/new def new @upid = UUID.random_create.to_s render end # POST /media # POST /media.xml def create @media = [params[:medium].delete(:data)].flatten @media.map! do |medium| Medium.new(medium.update(params[:medium])).to_hash end relay = MediaRelay.new(@media, :cookies => {_session_id_key => cookies[_session_id_key]}) @media = relay.response if relay.success? provides :xml, :yaml, :js, :plist case request.format when :html : redirect(base_url(params[:medium][:project_id])) when :js : redirect(finish_url(params[:medium][:project_id])) when :xml : success_headers(@media, :xml); @media.to_xml when :yaml : success_headers(@media, :yaml); @media.to_yaml when :plist : success_headers(@media, :plist);@media.to_plist end else provides :xml, :yaml, :plist session['flash'][:warning] = "#{relay.status} #{relay.reason}" if session["flash"] case request.format when :html : redirect request.env['HTTP_REFERER'] || Merb::Server.config[:jamlab_uri] when :xml : @media.to_xml when :yaml : @media.to_yaml when :plist : @media.to_plist end end end def progress only_provides :yaml, :js @upstatus = Mongrel::Uploads.check(params[:upload_id]) finishing = Mongrel::Uploads.instance_variable_get(:@counters) return if @upstatus.nil? && finishing && !finishing.empty? case request.format when yaml : @upstatus.to_yaml when :js : render_js end end protected def cleanse_empty_data_references params[:medium][:data].delete("") end def base_url(project_id) "http://#{Merb::Server.config[:jamlab_uri]}/projects/#{project_id}/versions" end def finish_url(project_id) "http://#{Merb::Server.config[:jamlab_uri]}/projects/#{project_id}/media/finish" end def success_headers(media,format) headers['Location'] = media.to_a.map{ |medium| location(medium,format) }.join(', ') @status = 201 end def location(medium,format=nil) "#{base_url(params[:medium][:project_id])}/#{medium.id}#{format ? ".#{format}" : ''}" end end
This paste will be private.
From the Design Piracy series on my blog: