Skip to content
Extraits de code Groupes Projets
post.rb 1,18 ko
Newer Older
maxwell's avatar
maxwell a validé
  require 'lib/encryptable'
maxwell's avatar
maxwell a validé
  include MongoMapper::Document
  include ApplicationHelper 
  include Diaspora::Webhooks
Raphael's avatar
Raphael a validé
  include Encryptable
  include Diaspora::Socketable
ilya's avatar
ilya a validé
  xml_accessor :_id
  xml_accessor :person, :as => Person
maxwell's avatar
maxwell a validé
  key :person_id, ObjectId
  key :user_refs, Integer, :default => 0 
ilya's avatar
ilya a validé

  many :comments, :class_name => 'Comment', :foreign_key => :post_id
  belongs_to :person, :class_name => 'Person'
maxwell's avatar
maxwell a validé
  
  cattr_reader :per_page
  @@per_page = 10
    
maxwell's avatar
maxwell a validé
  timestamps!
Raphael's avatar
Raphael a validé
  after_destroy :destroy_comments
  def self.instantiate params
    self.create params
  end

ilya's avatar
ilya a validé
#ENCRYPTION
  xml_accessor :creator_signature
  key :creator_signature, String
  
  def signable_accessors
    accessors = self.class.roxml_attrs.collect{|definition| 
      definition.accessor}
    accessors.delete 'person'
    accessors.delete 'creator_signature'
    accessors
  end
  def signable_string
    signable_accessors.collect{|accessor| 
      (self.send accessor.to_sym).to_s}.join ';'
  end
ilya's avatar
ilya a validé
  
Raphael's avatar
Raphael a validé
protected
   def destroy_comments
Raphael's avatar
Raphael a validé
    comments.each{|c| c.destroy}
  end
  
   def propogate_retraction
     self.person.owner.retract(self)
   end