Class: PolarBear::Review

Inherits:
Object
  • Object
show all
Defined in:
lib/polarbear/model/review.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(hash) ⇒ Review

Returns a new instance of Review.



18
19
20
21
# File 'lib/polarbear/model/review.rb', line 18

def initialize(hash)
  load_data(hash)
  @admin_review = Command::AdminReview.new
end

Instance Attribute Details

#creation_dateObject (readonly)

Returns the value of attribute creation_date.



13
14
15
# File 'lib/polarbear/model/review.rb', line 13

def creation_date
  @creation_date
end

#creatorObject (readonly)

Returns the value of attribute creator.



12
13
14
# File 'lib/polarbear/model/review.rb', line 12

def creator
  @creator
end

#diff_argsObject

Returns the value of attribute diff_args.



16
17
18
# File 'lib/polarbear/model/review.rb', line 16

def diff_args
  @diff_args
end

#idObject (readonly)

Returns the value of attribute id.



11
12
13
# File 'lib/polarbear/model/review.rb', line 11

def id
  @id
end

#participantsObject

Returns the value of attribute participants.



15
16
17
# File 'lib/polarbear/model/review.rb', line 15

def participants
  @participants
end

#phaseObject (readonly)

Returns the value of attribute phase.



10
11
12
# File 'lib/polarbear/model/review.rb', line 10

def phase
  @phase
end

#titleObject

Returns the value of attribute title.



14
15
16
# File 'lib/polarbear/model/review.rb', line 14

def title
  @title
end

Instance Method Details

#active?Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/polarbear/model/review.rb', line 23

def active?
  %w(Planning Inspection Rework).include?(@phase)
end

#add_git_diff(branch_a, branch_b) ⇒ Object



47
48
49
50
51
# File 'lib/polarbear/model/review.rb', line 47

def add_git_diff(branch_a, branch_b)
  raise 'must be a valid review' if @review_content[:id].nil?
  Utils::Executor.instance.execute_command("--no-browser --quiet addgitdiffs #{@review_content[:id]} #{branch_a} #{branch_b}")
  @diff_args = "#{branch_a} #{branch_b}"
end

#add_git_diff_with_args(diffargs) ⇒ Object



53
54
55
56
57
# File 'lib/polarbear/model/review.rb', line 53

def add_git_diff_with_args(diffargs)
  raise 'must be a valid review' if @review_content[:id].nil?
  Utils::Executor.instance.execute_command("--no-browser --quiet addgitdiffs #{@review_content[:id]} #{diffargs}")
  @diff_args = diffargs
end

#browseObject



43
44
45
# File 'lib/polarbear/model/review.rb', line 43

def browse
  Utils::Executor.instance.execute_command("browse --review #{@id}")
end

#cancel!Object



31
32
33
# File 'lib/polarbear/model/review.rb', line 31

def cancel!
  @admin_review.cancel(@id)
end

#create_it!Object



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/polarbear/model/review.rb', line 59

def create_it!
  can_create?

  options = PolarBear::Command::GlobalOptions.new
  batch = PolarBear::Command::Batch.new(options)

  batch.add_command(':admin_review_create', {:title => "#{@title}"}) unless @title.nil?
  batch.add_command(':admin_review_create/', '') if @title.nil?

  load_participants_in_batch(batch)

  batch.add_command(':admin_review_finish', {:review => 'last'})
  batch.add_command(':admin_review-xml', {:review => 'last'})

  update_review_from_xml(batch.execute)
end

#delete!Object



35
36
37
# File 'lib/polarbear/model/review.rb', line 35

def delete!
  @admin_review.delete(@id)
end

#next_phase!Object



39
40
41
# File 'lib/polarbear/model/review.rb', line 39

def next_phase!
  @admin_review.finish(@id)
end

#planning?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/polarbear/model/review.rb', line 27

def planning?
  %w(Planning).include?(@phase)
end