Sha256: e94122ce85ec005805a9fb1f40218ea857cc2a78be075ca883e66d7d3dd1dcb0
Contents?: true
Size: 1.45 KB
Versions: 1
Compression:
Stored size: 1.45 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
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
houston-core-0.5.0.beta1 | app/models/testing_note.rb |