Mercurial > zeropaste
changeset 176:a9dba6a3008b
Initial work to add paste deletion.
author | Edho Arief <edho@myconan.net> |
---|---|
date | Fri, 01 Feb 2013 22:24:08 +0700 |
parents | e4a39071d132 |
children | d310a716207b |
files | app/models/paste.rb db/migrate/20130201150322_add_key_to_paste.rb db/schema.rb |
diffstat | 3 files changed, 14 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- 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
--- /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
--- 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