# HG changeset patch # User Edho Arief # Date 1359732248 -25200 # Node ID a9dba6a3008b74e0d7d2b0a6727d7d49bf733c9f # Parent e4a39071d1326f127a392c17685405ef0ee25fb5 Initial work to add paste deletion. diff -r e4a39071d132 -r a9dba6a3008b app/models/paste.rb --- a/app/models/paste.rb Thu Jan 31 02:20:55 2013 +0700 +++ b/app/models/paste.rb Fri Feb 01 22:24:08 2013 +0700 @@ -3,13 +3,18 @@ before_validation :paste_limit before_validation :convert_newlines before_validation :set_paste_hash - validates :paste, :paste_hash, :ip, :presence => true + before_validation :set_paste_key + validates :paste, :paste_hash, :key, :ip, :presence => true validates :paste, :length => { :maximum => 1_000_000 } def set_paste_hash self.paste_hash = Digest::SHA512.hexdigest("#{paste}\n") end + def set_paste_key + self.key ||= SecureRandom.hex(4) + end + def convert_newlines self.paste = self.paste.to_s.gsub("\r\n", "\n").gsub("\r", "\n") end diff -r e4a39071d132 -r a9dba6a3008b db/migrate/20130201150322_add_key_to_paste.rb --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/db/migrate/20130201150322_add_key_to_paste.rb Fri Feb 01 22:24:08 2013 +0700 @@ -0,0 +1,5 @@ +class AddKeyToPaste < ActiveRecord::Migration + def change + add_column :pastes, :key, :string + end +end diff -r e4a39071d132 -r a9dba6a3008b db/schema.rb --- a/db/schema.rb Thu Jan 31 02:20:55 2013 +0700 +++ b/db/schema.rb Fri Feb 01 22:24:08 2013 +0700 @@ -1,3 +1,4 @@ +# encoding: UTF-8 # This file is auto-generated from the current state of the database. Instead # of editing this file, please use the migrations feature of Active Record to # incrementally modify your database, and then regenerate this schema definition. @@ -10,7 +11,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20120905074204) do +ActiveRecord::Schema.define(:version => 20130201150322) do create_table "pastes", :force => true do |t| t.string "ip", :limit => 50, :null => false @@ -18,6 +19,7 @@ t.string "paste_hash", :limit => 150, :null => false t.datetime "created_at", :null => false t.datetime "updated_at", :null => false + t.string "key" end add_index "pastes", ["ip", "paste_hash"], :name => "index_pastes_on_ip_and_hash", :unique => true