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