Sha256: 340e3fe8a008f72cd7c0fbe400e0d486643e93e96e8601629213d557d594037d

Contents?: true

Size: 1.41 KB

Versions: 14

Compression:

Stored size: 1.41 KB

Contents

class TestingNote < ActiveRecord::Base

  before_create  :create_ticket_comment!
  before_update  :update_ticket_comment!
  before_destroy :destroy_ticket_comment!
  after_create { Houston.observer.fire "testing_note:create", self }
  after_update { Houston.observer.fire "testing_note:update", self }
  after_save   { Houston.observer.fire "testing_note:save", self }

  belongs_to :user
  belongs_to :ticket
  belongs_to :project

  VERDICTS = %w{works fails badticket none}

  validates :user, :presence => true
  validates :ticket, :presence => true
  validates :project, :presence => true
  validates :comment, :presence => true, :length => 1..1000
  validates :verdict, :presence => true, :inclusion => VERDICTS



  def to_comment
    TicketComment.new(
      user: user,
      body: "**#{verdict}** #{comment}",
      remote_id: remote_id )
  end



  def pass?
    verdict == "works"
  end

  def fail?
    verdict == "fails"
  end

  def first_fail?
    return false unless fail?
    first_fail = ticket.testing_notes_since_last_release.where(verdict: "fails").order("created_at ASC").first
    first_fail == nil || first_fail.id == self.id
  end



private

  def create_ticket_comment!
    remote_id = ticket.create_comment!(to_comment)
    self.remote_id = remote_id
  end

  def update_ticket_comment!
    ticket.update_comment!(to_comment)
  end

  def destroy_ticket_comment!
    ticket.destroy_comment!(to_comment)
  end

end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
houston-core-0.7.0.beta3 app/models/testing_note.rb
houston-core-0.7.0.beta2 app/models/testing_note.rb
houston-core-0.7.0.beta app/models/testing_note.rb
houston-core-0.6.3 app/models/testing_note.rb
houston-core-0.6.2 app/models/testing_note.rb
houston-core-0.6.1 app/models/testing_note.rb
houston-core-0.6.0 app/models/testing_note.rb
houston-core-0.5.6 app/models/testing_note.rb
houston-core-0.5.5 app/models/testing_note.rb
houston-core-0.5.4 app/models/testing_note.rb
houston-core-0.5.3 app/models/testing_note.rb
houston-core-0.5.2 app/models/testing_note.rb
houston-core-0.5.1 app/models/testing_note.rb
houston-core-0.5.0 app/models/testing_note.rb