# class Note

### Attributes

notify[RW]
notify_author[RW]

### Public Class Methods

create_status_change_note(noteable, author, status) click to toggle source

    # File app/models/note.rb, line 34
    def self.create_status_change_note(noteable, author, status)
      create({
        noteable: noteable,
        project: noteable.project,
        author: author,
        note: "_Status changed to #{status}_"
      }, without_protection: true)
    end

### Public Instance Methods

commit_author() click to toggle source

    # File app/models/note.rb, line 90
    def commit_author
      @commit_author ||=
        project.users.find_by_email(noteable.author_email) ||
        project.users.find_by_name(noteable.author_name)
    rescue
      nil
    end

downvote?() click to toggle source

Returns true if this is a downvote note, otherwise false is returned

    # File app/models/note.rb, line 106
    def downvote?
      note.start_with?('-1') || note.start_with?(':-1:')
    end

for_commit?() click to toggle source

    # File app/models/note.rb, line 82
    def for_commit?
      noteable_type == "Commit"
    end

for_diff_line?() click to toggle source

    # File app/models/note.rb, line 86
    def for_diff_line?
      line_code.present?
    end

noteable() click to toggle source

override to return commits, which are not active record

    # File app/models/note.rb, line 52
    def noteable
      if for_commit?
        project.commit(noteable_id)
      else
        super
      end
    # Temp fix to prevent app crash
    # if note commit id doesnt exist
    rescue
      nil
    end

notify_only_author?(user) click to toggle source

Check if we can notify commit author with email about our comment

If commit author email exist in project and commit author is not passed user we can send email to him

params:

    user - current user

return:

    Boolean

    # File app/models/note.rb, line 77
    def notify_only_author?(user)
      for_commit? && commit_author &&
        commit_author.email != user.email
    end

upvote?() click to toggle source

Returns true if this is an upvote note, otherwise false is returned

    # File app/models/note.rb, line 100
    def upvote?
      note.start_with?('+1') || note.start_with?(':+1:')
    end