Sha256: bee340faf7349b10b2092715b8243a275490949f3209ad759ceb751dc1f229fb

Contents?: true

Size: 1.44 KB

Versions: 6

Compression:

Stored size: 1.44 KB

Contents

require 'changeset'

class Ticket
  include Comparable
  attr_reader :referenceNumber, :changesets
  attr_accessor :wcBasePath, :releaseBranch
  
  def initialize(ref, initial_changesets = [], wc_base_path=SvnCommands::DIGG_DEFAULT_WC_PATH, release_branch="9.4")
    @referenceNumber = Integer(ref)
    @changesets = Set.new()
    self.wcBasePath = wc_base_path
    self.releaseBranch = release_branch
    self.addChangesets(initial_changesets)
  end
  
  def addChangesets(toAdd = [])
    toAdd.each { |changeset| self.addChangeset(changeset) }
  end
  
  def addChangeset(changesetToAdd)
    if changesetToAdd.kind_of? Changeset
      @changesets << changesetToAdd
    elsif changesetToAdd.kind_of? Integer
      @changesets << Changeset.new(changesetToAdd, self.wcBasePath, self.releaseBranch)
    end
  end
  
  def affectedModules(modulePath="LOLz/trunk")
    @changesets.inject(Set.new) { | memo, changeset|
      affectedModules = changeset.affectedModules(modulePath)
      memo.merge(affectedModules) unless affectedModules.empty?
      memo
    }
  end
  
  def to_s(include_changesets=true)
    if include_changesets && !changesets.empty? 
      changeset_string = (changesets.map {|cs| cs.to_s}).join(", ")
      "##{referenceNumber} (#{changeset_string})"
    else
      "##{referenceNumber}"
    end
  end
  
  def <=>(other)
    self.referenceNumber <=> other.referenceNumber
  end
  
  def eql?(other)
    self.referenceNumber == other.referenceNumber
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
motomike-bnr_tools-0.0.2 lib/bnr_tools/ticket.rb
motomike-bnr_tools-0.0.3 lib/bnr_tools/ticket.rb
motomike-bnr_tools-0.0.4 lib/bnr_tools/ticket.rb
motomike-bnr_tools-0.0.5 lib/bnr_tools/ticket.rb
motomike-bnr_tools-0.0.6 lib/bnr_tools/ticket.rb
motomike-bnr_tools-0.0.7 lib/bnr_tools/ticket.rb