]> git.openstreetmap.org Git - rails.git/blobdiff - app/models/diary_comment.rb
Simplify a number of object model methods
[rails.git] / app / models / diary_comment.rb
index aaf48be4fdcc8c9f200b41efceabfc74e8058f09..9d29f52b78e9be2a00762df206a3e1824835e0af 100644 (file)
@@ -4,4 +4,30 @@ class DiaryComment < ActiveRecord::Base
 
   validates_presence_of :body
   validates_associated :diary_entry
+
+  after_initialize :set_defaults
+  after_save :spam_check
+
+  def body
+    RichText.new(read_attribute(:body_format), read_attribute(:body))
+  end
+
+  def digest
+    md5 = Digest::MD5.new
+    md5 << diary_entry_id.to_s
+    md5 << user_id.to_s
+    md5 << created_at.xmlschema
+    md5 << body
+    md5.hexdigest
+  end
+
+private
+
+  def set_defaults
+    self.body_format = "markdown" unless self.attribute_present?(:body_format)
+  end
+
+  def spam_check
+    user.spam_check
+  end
 end