Skip to content
Extraits de code Groupes Projets
post.rb 1,94 ko
Newer Older
  • Learn to ignore specific revisions
  • maxwell's avatar
    maxwell a validé
      include ApplicationHelper 
    
    maxwell's avatar
    maxwell a validé
      include MongoMapper::Document
    
      include Diaspora::Webhooks
    
    Raphael's avatar
    Raphael a validé
      include Encryptable
    
    ilya's avatar
    ilya a validé
      xml_accessor :_id
    
      xml_accessor :person, :as => Person
    
    maxwell's avatar
    maxwell a validé
      key :person_id, ObjectId
    
    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!
    
    maxwell's avatar
    maxwell a validé
      after_save :send_to_view
    
      before_destroy :propagate_retraction
    
      after_destroy :destroy_comments, :remove_from_view
    
    maxwell's avatar
    maxwell a validé
      def self.stream
        Post.sort(:created_at.desc).all
      end
    
     def self.newest(person = nil)
        return self.last if person.nil?
    
    
        self.first(:person_id => person.id, :order => '_id desc')
    
       def self.my_newest
         self.newest(User.owner)
       end
    
        self.newest(Person.first(:email => email))
    
    ilya's avatar
    ilya a validé
    #ENCRYPTION
    
        before_validation :sign_if_mine
    
    Raphael's avatar
    Raphael a validé
        validates_true_for :creator_signature, :logic => lambda {self.verify_creator_signature}
        
        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
    
    Raphael's avatar
    Raphael a validé
        def signable_string
          signable_accessors.collect{|accessor| 
            (self.send accessor.to_sym).to_s}.join ';'
    
    ilya's avatar
    ilya a validé
        end
    
    ilya's avatar
    ilya a validé
      def log_inspection
    
    ilya's avatar
    ilya a validé
        Rails.logger.info self.inspect
      end
    
    ilya's avatar
    ilya a validé
      def log_save_inspection
        Rails.logger.info "After saving, object is:"
        log_inspection
      end
    
    ilya's avatar
    ilya a validé
    
    
    Raphael's avatar
    Raphael a validé
    protected
       def destroy_comments
    
        comments.each{|c| c.destroy}
      end
      
    
      def propagate_retraction
    
    maxwell's avatar
    maxwell a validé
      def send_to_view
    
        SocketsController.new.outgoing(self)
    
    maxwell's avatar
    maxwell a validé
      end
    
    maxwell's avatar
    maxwell a validé
      
    
        SocketsController.new.outgoing(Retraction.for(self))
    
    maxwell's avatar
    maxwell a validé