<commit_before>class Album 
  require 'lib/diaspora/webhooks'
  include MongoMapper::Document
  include ROXML
  include Diaspora::Webhooks
  include Encryptable

  xml_reader :name
  xml_reader :person, :as => Person
  xml_reader :_id
  key :name, String

  belongs_to :person, :class_name => 'Person'
  many :photos, :class_name => 'Photo', :foreign_key => :album_id

  timestamps!

  validates_presence_of :name, :person

  before_destroy :destroy_photos
  after_save :notify_people
  before_destroy :propagate_retraction
  
  def self.instantiate params
    self.create params
  end

  def self.mine_or_friends(friend_param, current_user)
    if friend_param
      Album.find_by_person_id(current_user.friend_ids)
    else
      current_user.person.albums
    end
  end
  
  def prev_photo(photo)
    n_photo = self.photos.where(:created_at.lt => photo.created_at).sort(:created_at.desc).first
    n_photo ? n_photo : self.photos.sort(:created_at.desc).first
  end

  def next_photo(photo)
    p_photo = self.photos.where(:created_at.gt => photo.created_at).sort(:created_at.asc).first<commit_msg>DG IZ; find_all_by instead of find_by<commit_after>class Album 
  require 'lib/diaspora/webhooks'
  include MongoMapper::Document
  include ROXML
  include Diaspora::Webhooks
  include Encryptable

  xml_reader :name
  xml_reader :person, :as => Person
  xml_reader :_id
  key :name, String

  belongs_to :person, :class_name => 'Person'
  many :photos, :class_name => 'Photo', :foreign_key => :album_id

  timestamps!

  validates_presence_of :name, :person

  before_destroy :destroy_photos
  after_save :notify_people
  before_destroy :propagate_retraction
  
  def self.instantiate params
    self.create params
  end

  def self.mine_or_friends(friend_param, current_user)
    if friend_param
      Album.find_all_by_person_id(current_user.friend_ids)
    else
      current_user.person.albums
    end
  end
  
  def prev_photo(photo)
    n_photo = self.photos.where(:created_at.lt => photo.created_at).sort(:created_at.desc).first
    n_photo ? n_photo : self.photos.sort(:created_at.desc).first
  end

  def next_photo(photo)
    p_photo = self.photos.where(:created_at.gt => photo.created_at).sort(:created_at.asc).first
{'fraction_non_alphanumeric': 0.09290843806104129, 'fraction_numerical': 0.0, 'mean_word_length': 4.257075471698113, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 15, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 6}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4290005', 'n_tokens_mistral': 793, 'n_tokens_neox': 757, 'n_words': 150}