view app/models/paste.rb @ 32:59ef6698fa0d

Rescue from not unique error by redirecting to previously pasted paste.
author Edho Arief <edho@myconan.net>
date Mon, 10 Sep 2012 04:14:31 +0700
parents a8cdf1f45446
children ba29d6394863
line wrap: on
line source

class Paste < ActiveRecord::Base
  attr_accessible :paste
  before_validation :convert_newlines
  before_validation :set_paste_hash
  validates :paste, :paste_hash, :ip, :presence => true
  validates :paste, :length => { :maximum => 1_000_000 }

  def set_paste_hash
    self.paste_hash = Digest::SHA512.hexdigest("#{paste}\n")
  end

  def convert_newlines
    self.paste = self.paste.gsub("\r\n", "\n").gsub("\r", "\n")
  end

  def self.fix_all
    self.all.each do |p|
      p.save
    end
  end
end