Skip to content

Instantly share code, notes, and snippets.

@benmcredmond
Created May 2, 2011 13:08
Show Gist options
  • Save benmcredmond/951587 to your computer and use it in GitHub Desktop.
Save benmcredmond/951587 to your computer and use it in GitHub Desktop.
post '/new' do
begin
paste = save_paste(params)
redirect "/#{paste.id}"
rescue ArgumentError, RuntimeError => e
liquid :new, :locals => {
:author => params[:author],
:desc => params[:desc],
:raw => params[:raw],
:error => e.message
}
end
end
def save_paste(params)
raise ArgumentError, "Paste is empty" if(params[:raw].empty? || params[:raw].nil?)
paste = Paste.new
params[:submitted] = Time.now
[:author, :desc, :raw, :submitted].each do |i|
paste.send("#{i}=".to_sym, params[i]) unless (params[i].empty?)
end
raise RuntimeError, "Error saving paste" unless paste.save
paste
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment